Skip to content

Scheme Interpreters in JavaScript

Tom Elam edited this page Mar 25, 2021 · 20 revisions

Some possibly good lists of Scheme interpreters in JavaScript:

  1. Scheme Web, Standardizing the Scheme web development stack, with their own SRFI
  2. a googling of: scheme interpreter javascript
  3. a googling of: scheme implementations
  4. a googling of: scheme webassembly
  5. a googling of: javascript site:schemers.org
  6. a googling of: scheme "asm.js"
  7. a googling of: scheme site:repl.it
  8. a googling of: scheme online
  9. a googling of: scheme webassembly
  10. a googling of: emscripten scheme
  11. the list of implementations in Wikipedia's entry for Scheme (programming language)
  12. Wikipedia's Category:Scheme (programming language) implementations
  13. Rosettacode.org's Category:Scheme Implementations
  14. Scheme Web Dev

Some interesting reads about Scheme interpreters in JavaScript:

  1. A performant scheme interpreter in asm.js, Noah Van Es, Jens Nicolay, Quentin Stievenart, Theo D’Hondt, Coen De Roover - PDF available as a free download
  2. Implementing a performant scheme interpreter for the web in asm.js, Noah Van Es, Jens Nicolay, Quentin Stievenart, Theo D’Hondt, Coen De Roover - PDF available as a free download
  3. Implementing a performant scheme interpreter for the web in asm.js, Noah Van Es, Jens Nicolay, Quentin Stievenart, Theo D’Hondt, Coen De Roover (ACM citation)

Scheme Implementations for the browser

  1. Whalesong and its predecessor
  2. RacketScript
  3. jsScheme (not maintained)
  4. Biwascheme
  5. Gambit
  6. Gauche
  7. Chibi Scheme (tiny library to use as an extension & scripting language in C programs; works on Emscripten)
  8. Schism (compiler from Scheme to WebAssembly)
  9. a Scheme-to-Rust compiler built in Rust (with step-by-step implementation details by a first-time Schemer)

(Others to be added when I have time.)


WTF?

  1. Wasm/k: Delimited Continuations for WebAssembly

Useful?

  1. https://github.com/swank-js/swank-js
  2. https://socket.io/ (used by swank-js and maybe useful to us in other ways)