Skip to content

Jancd/create-your-own-lang-with-rust

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 installed
  2. Cloned this repository (follow the instructions in each chapter)
  3. LLVM v10.0 installed (Debina/Ubuntu or macOS) to run and test locally cargo test --tests

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

Content outline

  • Introduction
  • Crash course on Computing
  • Calculator language
    • Grammar, lexer and parser
    • AST and interpreter
    • JIT with LLVM
      • Basic add function example
      • AST traversal patterns
    • Exercises
    • VM, bytecode and interpreter
    • REPL
  • Jeslang
    • Static typing
    • Type inference
    • ...
  • Object system and OOP
  • Functional lang
  • (TENTATIVE) Module system and packaging
  • (TENTATIVE) Mini-standard library
  • Content resources

Donation

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

About

Create your own programming language with Rust (WIP)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 98.6%
  • CSS 1.4%