> For the complete documentation index, see [llms.txt](https://tomelam.gitbook.io/mashweb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tomelam.gitbook.io/mashweb/part-3-the-key-to-zen-a-nano-framework-for-sequential-programming/scheme-interpreters-in-javascript.md).

# Scheme Interpreters in JavaScript

## Some possibly good lists of Scheme interpreters in JavaScript:

1. [Scheme Web, Standardizing the Scheme web development stack, with their own SRFI](https://github.com/schemeweb)
2. [jashkenas list of Schemes that compile to JavaScript](https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS#lisp-scheme)
3. [a googling of: scheme interpreter javascript](https://www.google.com/search?q=scheme+interpreter+javascript)
4. [a googling of: scheme implementations](https://www.google.com/search?q=scheme+implementations)
5. [a googling of: scheme webassembly](https://www.google.com/search?q=scheme+webassembly)
6. [a googling of: javascript site:schemers.org](https://www.google.com/search?q=javascript+site)
7. [a googling of: scheme "asm.js"](https://www.google.com/search?q=scheme+%22asm.js%22)
8. [a googling of: scheme site:repl.it](https://www.google.com/search?q=scheme+site)
9. [a googling of: scheme online](https://www.google.com/search?q=scheme+online)
10. [a googling of: scheme webassembly](https://www.google.com/search?q=scheme+webassembly)
11. [a googling of: emscripten scheme](https://www.google.com/search?q=emscripten+scheme)
12. \[the list of implementations in Wikipedia's entry for Scheme (programming language)]\(<https://en.wikipedia.org/wiki/Scheme_(programming_language)#Implementations>)
13. \[Wikipedia's Category:Scheme (programming language) implementations]\(<https://en.wikipedia.org/wiki/Category:Scheme_(programming_language)_implementations>)
14. [Rosettacode.org's Category:Scheme Implementations](http://rosettacode.org/wiki/Category:Scheme_Implementations)
15. [Scheme Web Dev](https://web.scheme.org/)
16. [Scheme section of "languages that compile to JavaScript"](https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS#lisp-scheme)

## Some interesting reads about Scheme interpreters in JavaScript:

1. [Paper on Whalesong](https://cs.brown.edu/~sk/Publications/Papers/Published/yk-whalesong-racket-browser/paper.pdf)
2. [A performant scheme interpreter in asm.js, Noah Van Es, Jens Nicolay, Quentin Stievenart, Theo D’Hondt, Coen De Roover](https://www.semanticscholar.org/paper/A-performant-scheme-interpreter-in-asm.js-Es-Nicolay/fb309cb6b5b46923eaa25a22bdd9c01bbc4f1b27) - 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](http://isiarticles.com/bundles/Article/pre/pdf/126226.pdf) - PDF available as a free download
4. [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)](https://dl.acm.org/doi/10.1016/j.cl.2017.02.002)
5. [Schemeweb](https://github.com/schemeweb)
6. [Schemeweb mailing list](https://srfi-email.schemers.org/schemeweb/)

## Scheme Implementations for the browser

1. Whalesong and its predecessor, Moby
2. RacketScript
3. jsScheme (not maintained)
4. Biwascheme
5. Gambit
6. LIPS (<https://lips.js.org/>)
7. Gauche
8. Chibi Scheme (tiny library to use as an extension & scripting language in C programs; works on Emscripten)
9. Schism (compiler from Scheme to WebAssembly)
10. [a Scheme-to-Rust compiler built in Rust](https://medium.com/@seanchen/a-scheme-to-webassembly-compiler-part-0-d1ff2501565a) (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](https://arxiv.org/pdf/2010.01723)

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)
3. <http://www.larcenists.org/benchmarksAboutR7.html>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tomelam.gitbook.io/mashweb/part-3-the-key-to-zen-a-nano-framework-for-sequential-programming/scheme-interpreters-in-javascript.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
