All Projects → shuhei → Cymbal

shuhei / Cymbal

Licence: mit
Yet another Rust implementation of the Monkey language from "Writing an Interpreter in Go" and "Writing a Compiler in Go"

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Cymbal

Umka Lang
Umka: a statically typed embeddable scripting language
Stars: ✭ 308 (+528.57%)
Mutual labels:  compiler, interpreter, virtual-machine
Quickjs
The official repo is at bellard/quickjs.
Stars: ✭ 1,429 (+2816.33%)
Mutual labels:  compiler, interpreter, virtual-machine
Ph7
An Embedded Implementation of PHP (C Library)
Stars: ✭ 422 (+761.22%)
Mutual labels:  compiler, interpreter, virtual-machine
Go.vm
A simple virtual machine - compiler & interpreter - written in golang
Stars: ✭ 178 (+263.27%)
Mutual labels:  compiler, interpreter, virtual-machine
Swift Lispkit
Interpreter framework for Lisp-based extension and scripting languages on macOS and iOS. LispKit is based on the R7RS standard for Scheme. Its compiler generates bytecode for a virtual machine. LispKit is fully implemented in Swift 5.
Stars: ✭ 228 (+365.31%)
Mutual labels:  compiler, interpreter, virtual-machine
Cub
The Cub Programming Language
Stars: ✭ 198 (+304.08%)
Mutual labels:  compiler, interpreter, virtual-machine
Lioness
The Lioness Programming Language
Stars: ✭ 155 (+216.33%)
Mutual labels:  compiler, interpreter, virtual-machine
Openj9
Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Stars: ✭ 2,802 (+5618.37%)
Mutual labels:  compiler, interpreter, virtual-machine
V8
The official mirror of the V8 Git repository
Stars: ✭ 18,808 (+38283.67%)
Mutual labels:  compiler, interpreter, virtual-machine
U6a
Implementation of Unlambda, an esoteric programming language.
Stars: ✭ 46 (-6.12%)
Mutual labels:  compiler, interpreter
Red
Red is a next-generation programming language strongly inspired by Rebol, but with a broader field of usage thanks to its native-code compiler, from system programming to high-level scripting and cross-platform reactive GUI, while providing modern support for concurrency, all in a zero-install, zero-config, single 1MB file!
Stars: ✭ 4,725 (+9542.86%)
Mutual labels:  compiler, interpreter
Webassemblyjs
Toolchain for WebAssembly
Stars: ✭ 566 (+1055.1%)
Mutual labels:  compiler, interpreter
Renjin
JVM-based interpreter for the R language for the statistical analysis.
Stars: ✭ 466 (+851.02%)
Mutual labels:  compiler, interpreter
Neko
The Neko Virtual Machine
Stars: ✭ 447 (+812.24%)
Mutual labels:  interpreter, virtual-machine
Hashlink
A virtual machine for Haxe
Stars: ✭ 523 (+967.35%)
Mutual labels:  interpreter, virtual-machine
Minic Hosting
A simple stack-based virtual machine that runs C in the browser.
Stars: ✭ 628 (+1181.63%)
Mutual labels:  compiler, virtual-machine
Tiny Compiler
A tiny evaluator and compiler of arithmetic expressions.
Stars: ✭ 680 (+1287.76%)
Mutual labels:  compiler, interpreter
Enso
Hybrid visual and textual functional programming.
Stars: ✭ 5,238 (+10589.8%)
Mutual labels:  compiler, interpreter
Pl Compiler Resource
程序语言与编译技术相关资料(持续更新中)
Stars: ✭ 578 (+1079.59%)
Mutual labels:  compiler, virtual-machine
Ring
Innovative and practical general-purpose multi-paradigm language
Stars: ✭ 716 (+1361.22%)
Mutual labels:  compiler, virtual-machine

Cymbal

Yet another Rust implementation of the Monkey language from "Writing an Interpreter in Go" and "Writing a Compiler in Go."

CircleCI

Development

Start REPL:

# Run in eval mode to directly evaluate AST
cargo run -- repl
# or
cargo run -- repl --eval

# Run in compile mode to compile AST into bytecode and execute it on VM
cargo run -- repl --compile

Build:

cargo build

Test:

cargo test

Benchmark with recursive fibonacci:

cargo run --release -- benchmark --eval
cargo run --release -- benchmark --compile

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].