So about the right way to write an interpreter

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • slang-v2

    Simple scripting language interpreter

  • In the meantime, https://github.com/mkhan45/slang-v2 is pretty simple. I'll answer any questions you might have about it if you PM me. It starts with the scanner and then goes to the parser and is evaluated from there, so the reading order by module would probably be scanner -> parser -> statement -> eval.

  • blip

    a programming language (by salmmanfred)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • crafting-interpreters-rs

    Crafting Interpreters in Rust

  • cranelift-jit-demo

    JIT compiler and runtime for a toy language, using Cranelift

  • As for LLVM, I'm not sure if there are any tutorials but I would really advise writing a bytecode interpreter first, unless you already have some grasp of assembly. However, this repository: https://github.com/bytecodealliance/cranelift-jit-demo is really great for learning cranelift which is essentially an LLVM alternative.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts