All Projects → ehsanmok → Create Your Own Lang With Rust

ehsanmok / Create Your Own Lang With Rust

Licence: other
Create your own programming language with Rust (WIP)

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Create Your Own Lang With Rust

Write You A Haskell
Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Stars: ✭ 3,064 (+1198.31%)
Mutual labels:  compiler, book
Craftinginterpreters
Repository for the book "Crafting Interpreters"
Stars: ✭ 4,298 (+1721.19%)
Mutual labels:  compiler, book
Pl Compiler Resource
程序语言与编译技术相关资料(持续更新中)
Stars: ✭ 578 (+144.92%)
Mutual labels:  compiler, book
Flint
The Flint Programming Language for Smart Contracts
Stars: ✭ 228 (-3.39%)
Mutual labels:  compiler
Program Blog
Practice, thinking and reading
Stars: ✭ 228 (-3.39%)
Mutual labels:  book
Mastering Spark Sql Book
The Internals of Spark SQL
Stars: ✭ 234 (-0.85%)
Mutual labels:  book
Api on rails
Learn best practices to build an API using Ruby on Rails 5/6
Stars: ✭ 236 (+0%)
Mutual labels:  book
Functional Light Js
Pragmatic, balanced FP in JavaScript. @FLJSBook on twitter.
Stars: ✭ 14,764 (+6155.93%)
Mutual labels:  book
Mond
A scripting language for .NET Core
Stars: ✭ 237 (+0.42%)
Mutual labels:  compiler
Jbook
Notes about programming, advices, algorithms and a lot of good stuff with Java
Stars: ✭ 233 (-1.27%)
Mutual labels:  book
The Elmish Book
A practical guide to building modern and reliable web applications in F# from first principles
Stars: ✭ 231 (-2.12%)
Mutual labels:  book
Rubyfu
Rubyfu, where Ruby goes evil!
Stars: ✭ 228 (-3.39%)
Mutual labels:  book
Gwion
🎵 strongly-timed musical programming language
Stars: ✭ 235 (-0.42%)
Mutual labels:  compiler
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 (-3.39%)
Mutual labels:  compiler
Kotlin For Android Developers
Companion App for the book
Stars: ✭ 2,624 (+1011.86%)
Mutual labels:  book
Advanced Go Programming Book
📚 《Go语言高级编程》开源图书,涵盖CGO、Go汇编语言、RPC实现、Protobuf插件实现、Web框架实现、分布式系统等高阶主题(完稿)
Stars: ✭ 16,436 (+6864.41%)
Mutual labels:  book
Abcd Animal Book
👶 Superbook: ABC's for babies!
Stars: ✭ 236 (+0%)
Mutual labels:  book
Jshistory Cn
🇨🇳 《JavaScript 二十年》中文版
Stars: ✭ 3,686 (+1461.86%)
Mutual labels:  book
Ts Llvm
TypeScript to LLVM compiler (abandoned)
Stars: ✭ 230 (-2.54%)
Mutual labels:  compiler
Java Testing With Spock
Code samples from the book "Java testing with Spock"
Stars: ✭ 232 (-1.69%)
Mutual labels:  book

Create your own programming language with Rust

Github Pages CI

This repository contains the codes and the contents for createlang.rs

Why am I writing this book?

The book arises from my frustration of not finding modern, clear and concise teaching materials that are readily accessible to beginners like me who wants to learn a bit on how to create their own programming language.

The following are my guidelines

"If you don't know how compilers work, then you don't know how computers work" 1

"If you can’t explain something in simple terms, you don’t understand it" 2

Requirements

Make sure you have

  1. Rust toolchain installed
  2. Cloned this repository (follow the instructions in each chapter)
  3. LLVM installed to run and test locally cargo test --tests
    • Easiest option is LLVM v10.0 (Debian/Ubuntu or macOS)
    • Otherwise, in Cargo.toml you'd need to change the inkwell = { ..., branch = "your-llvm-version" } with LLVM version on your system (output of llvm-config --version)

To build the book locally, navigate to the book subdirectory and follow the instructions in mdbook.

Roadmap

Checkout the roadmap to the 1st edition.

Donation

If you have found this project useful, please consider donating to any of the organizations below

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