Schism is an experimental compiler that translates Scheme programs into WebAssembly, allowing Scheme code to execute in both browser environments and server platforms like Node.js. Developed initially by Google researchers, the project was designed to explore the intersection of functional programming and WebAssembly’s low-level efficiency. Schism supports a subset of the R6RS Scheme standard and is self-hosting, meaning that the compiler itself is written in and compiled by Schism. Its architecture demonstrates advanced compiler design techniques such as staged compilation and snapshot-based bootstrapping. The project focuses on leveraging WebAssembly’s experimental capabilities, including reference types and tail calls, to test the limits of language portability and runtime performance. Though no longer actively maintained, Schism remains a valuable example of how high-level languages can be mapped to WebAssembly and offers insights into language implementation.
Features
- Experimental compiler translating Scheme programs into WebAssembly
- Self-hosting design that compiles and runs its own compiler
- Supports a subset of the R6RS Scheme standard for compatibility
- Uses staged bootstrapping from precompiled snapshots for development consistency
- Integrates with experimental WebAssembly features like tail calls and reference types
- Includes a lightweight in-browser playground for testing Scheme code interactively