rust-hosted-langs / book

Licence: other
Writing Interpreters in Rust: a Guide

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to book

poireau
Poireau: a sampling allocation debugger
Stars: ✭ 76 (-49.33%)
Mutual labels:  allocator
bhl
bhl is a strictly typed programming language specifically tailored for gameplay logic scripting.
Stars: ✭ 20 (-86.67%)
Mutual labels:  interpreted-programming-language
MemoryPool
simple memory pool / thread safe / minimized context switching / Memory managed in 4 levels / Requirements(Windows xp~ / Visualstudio 2015)
Stars: ✭ 14 (-90.67%)
Mutual labels:  allocator
mmtk-core
Memory Management ToolKit
Stars: ✭ 205 (+36.67%)
Mutual labels:  garbage-collection
SparForte
Bourne shell, template engine, scripting language mission-critical, scalable projects. Based a ISO standard proven effective for large, mission-critical projects, SparForte is designed for fast development while, at the same time, providing easier designing, maintenance and bug removal. About 120.000 lines of code.
Stars: ✭ 47 (-68.67%)
Mutual labels:  interpreted-programming-language
wasm
fast wasm modules
Stars: ✭ 37 (-75.33%)
Mutual labels:  allocator
core.horse64.org
THIS IS A MIRROR, CHECK https://codeberg.org/Horse64/core.horse64.org
Stars: ✭ 3 (-98%)
Mutual labels:  garbage-collection
gogo
Go to MIPS compiler, written in Go. Course project for Compiler Design (CS335).
Stars: ✭ 25 (-83.33%)
Mutual labels:  garbage-collection
mimalloc-rust
The Best and Highest-Leveled and Newest bingding for MiMalloc Ever Existed in Rust
Stars: ✭ 30 (-80%)
Mutual labels:  allocator
trsh
Project about minimizing costs in garbage collection in Montevideo, Uruguay, using Evolutionary Algorithms
Stars: ✭ 17 (-88.67%)
Mutual labels:  garbage-collection
LuaJIT-5.3.6
Lua 5.3.6 JIT && 多线程 垃圾回收
Stars: ✭ 173 (+15.33%)
Mutual labels:  garbage-collection
Own-Programming-Language-Tutorial
Репозиторий курса "Как создать свой язык программирования"
Stars: ✭ 95 (-36.67%)
Mutual labels:  interpreted-programming-language
kamon-system-metrics
Kamon System Metrics
Stars: ✭ 22 (-85.33%)
Mutual labels:  garbage-collection
Ramudroid
Ramudroid, autonomous solar-powered robot to clean roads, realtime object detection and webrtc based streaming
Stars: ✭ 22 (-85.33%)
Mutual labels:  garbage-collection
cleanreg
A small tool to clean up Docker Registries (v2).
Stars: ✭ 48 (-68%)
Mutual labels:  garbage-collection
interview-refresh-java-bigdata
a one-stop repo to lookup for code snippets of core java concepts, sql, data structures as well as big data. It also consists of interview questions asked in real-life.
Stars: ✭ 25 (-83.33%)
Mutual labels:  garbage-collection
on-the-fly-gc
Concurrent mark-sweep garbage collector for accurate garbage collection of language runtimes in C++ 1x.
Stars: ✭ 25 (-83.33%)
Mutual labels:  garbage-collection
jaws
Jaws is an invisible programming language! Inject invisible code into other languages and files! Created for security research -- see blog post
Stars: ✭ 204 (+36%)
Mutual labels:  interpreted-programming-language
python-memory-management-course
Demo code exploring Python's memory models and collection algorithms from the Talk Python Training course.
Stars: ✭ 31 (-79.33%)
Mutual labels:  garbage-collection
rouziclib
This is my personal library of code that is common to my different projects (Photosounder, SplineEQ, Spiral and others)
Stars: ✭ 38 (-74.67%)
Mutual labels:  interpreted-programming-language

Writing Interpreters in Rust: a Guide

This is an online book covering the lower level topics involved in writing an interpreter in Rust including:

  • memory management: allocation and garbage collection
  • compiling: expressions, functions, closures
  • virtual machines: bytecode, instruction dispatch

Project vision

From CPython to Ruby's YARV, V8 and SpiderMonkey, GHC to the JVM, most language runtimes are written in C/C++.

We believe that Rust is eminently suitable for implementing languages and can provide significant productivity improvements over C and C++ while retaining the performance advantages and low level control of both.

While there are a number of languages implemented in Rust available now, in varying states of completeness - interpreters, AOT compilers and JIT-compiled - our vision is singular:

To create a well documented reference compiler and runtime, permissively licensed, such that you can fork and morph it into your own programming language.

That is, a platform for bootstrapping other languages, written in Rust. To that end, the implementation provided here is not intended to be feature complete and cannot possibly represent every variation of programming language or local optimization.

It is a lofty goal, and it certainly won't be the right approach for everybody. However, we hope it will help shift the landscape in favor of more memory-safe language implementations.

Getting involved

See CONTRIBUTING.md for licensing and how to get involved.

The contents

The rendered book can be read here while the accompanying source code can be browsed in this repository.

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].