An interpreter for the FALSE language — possibly the fastest in the world.
- Supports all language features;
- Written in Rust;
- Up to 38 times more performant than false-js (see benchmarks below). If you are aware of any faster implementations, please let me know!
Test | false-js | rfalse | difference |
---|---|---|---|
Primes, n=1999 | 4392 ms | 168 ms | ~26x |
Fibonacci, n=33 | 37597 ms | 987 ms | ~38x |
Fibonacci, n=25 | 802 ms | 21 ms | ~38x |
Experimental VM:
Test | rfalse-vm2 | false-js | solkin/false-vm |
---|---|---|---|
Primes, n=1999 | 102 ms | 4392 ms (~43x slower) | 154 ms (~1.5x slower) |
Fibonacci, n=33 | 435 ms | 37597 ms (~86x slower) | 504 ms (~1.16x slower) |
Fibonacci, n=25 | 9 ms | 802 ms (~89x slower) | 11 ms (~1.2x slower) |
cargo run --release -- examples/hello.false
In no filename is given, stdin will be used instead.
Experimental feature. WASM performance is about 2x worse than native build.
First, compile the WASM files:
wasm-pack build --release --target web
After that, run a webserver. For example:
python3 -m http.server 8000 -d .
Navigate to http://localhost:8000 and open the console.
Run linter:
cargo clippy
Run tests:
cargo test
Run benchmarks:
cargo bench --bench perf
GNU LGPL v3
- FALSE home page
- FALSE page on Esolangs — the closest thing we have to a language reference
- Archived language reference, was very hard to find
- FALSE article on Russian Wikipedia which contains some useful explanations; funny enough, there's no English version
Other notable implementations:
- Awesome FALSE interpreter by Igor Solkin
- false-js by Ian Osgood
- JavaScript FALSE interpreter by Anthony Morphett