Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/folyd/lox-lang
Lox language interpreter written in Rust
https://github.com/folyd/lox-lang
Last synced: about 1 month ago
JSON representation
Lox language interpreter written in Rust
- Host: GitHub
- URL: https://github.com/folyd/lox-lang
- Owner: Folyd
- License: mit
- Created: 2024-09-24T07:18:18.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-10-24T04:20:24.000Z (2 months ago)
- Last Synced: 2024-10-26T03:11:19.814Z (2 months ago)
- Language: Rust
- Size: 300 KB
- Stars: 15
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lox-lang
Lox language interpreter written in Rust
## Run
```kt
fun main() {
print "hello world!"
}main();
````cargo run example.lox`
## Test
`cargo test`
> Most of the test and benchmark files are copied from [Crafting Interpreters](https://github.com/munificent/craftinginterpreters) repository. The copyright for these belongs to Bob Nystrom and are copied here because their license allows it (MIT).
## Benchmark
![](./benchmark.svg)
### Rust (this interpreter)
```
$ python3 run_lox_benchmarks.py lox
Running benchmarks for lox... tests/benchmarks/lox
arithmetic.lox: 2.8146
binary_trees.lox: 6.4399
equality.lox: 3.6683
fib.lox: 2.1664
instantiation.lox: 2.7269
invocation.lox: 0.8192
method_call.lox: 0.5381
properties.lox: 1.1997
trees.lox: 9.0106
zoo.lox: 0.927
```### Python v3.12.3
```
$ python3 run_lox_benchmarks.py python
Running benchmarks for python... tests/benchmarks/python
arithmetic.py: 2.617
binary_trees.py: 2.5121
equality.py: 2.6572
fib.py: 1.3623
instantiation.py: 2.4031
invocation.py: 0.5649
method_call.py: 0.2729
properties.py: 0.9565
trees.py: 2.5539
zoo.py: 0.7307
```### Perl v5.34.1
```
$ python3 run_lox_benchmarks.py perl
Running benchmarks for perl... tests/benchmarks/perl
arithmetic.pl: 1.2259
binary_trees.pl: 7.158
equality.pl: 1.5235
fib.pl: 4.7082
instantiation.pl: 4.24
invocation.pl: 0.9832
method_call.pl: 1.11
properties.pl: 1.574
trees.pl: 12.1001
zoo.pl: 1.2363
```### Clox (Crafting Interpreters)
```
$ python3 run_lox_benchmarks.py clox
Running benchmarks for clox... tests/benchmarks/lox
arithmetic.lox: 0.749
binary_trees.lox: 3.8906
equality.lox: 2.0149
fib.lox: 1.0654
instantiation.lox: 1.8701
invocation.lox: 0.2706
method_call.lox: 0.1883
properties.lox: 0.4145
trees.lox: 2.6955
zoo.lox: 0.3104
```