Our great sponsors
-
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.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Absolutely. For a non-exhaustive list of other languages written in Rust, there is https://github.com/alilleybrinker/langs-in-rust. If you are looking for libraries to help you along the way, check out https://github.com/Kixiron/rust-langdev.
As mentioned in other comments, type system features like algebraic data types (that Rust has) are really helpful. If you want a small-but-real example of a compiler in Rust (with an optimizer etc) then the starlark-rust compiler is good.
Absolutely. For a non-exhaustive list of other languages written in Rust, there is https://github.com/alilleybrinker/langs-in-rust. If you are looking for libraries to help you along the way, check out https://github.com/Kixiron/rust-langdev.
Such as OCaml. Incidentally, the first versions of Rust itself were written in OCaml. You can also find a ton of examples in this domain.
The best parsing (for hand coding) https://github.com/segeljakt/pratt
Nice error messages (for YOUR lang) https://github.com/brendanzab/codespan or https://docs.rs/ariadne/0.1.3/ariadne/
There are also libs that can be used for some tasks like parsing https://lib.rs/parsing and code generation like cranelift https://docs.rs/cranelift/0.76.0/cranelift/ and llvm https://github.com/TheDan64/inkwell
Related posts
- A language like C, but with a borrow-checker
- Ask HN: Which language will you try for this year's Advent of Code and why?
- Does modern implementation use tagged pointers/values?
- "Linear style" and the spectrum of zero-cost to memory safety overhead
- How Should Compilers Explain Problems to Developers? (Pdf, 2018)