Skip to content

In this series of posts, we will be building, in Rust, a super tiny programming language from scratch. We will do it end to end including basic VSCode integration support through a language server, and, even native code generation through LLVM

  1. 01 Introduction What is NTLC, and, what are we building exactly?
  2. 02 Lexer The lexer is the first step in the compilation process. It takes the source code and converts it into a stream of tokens.
  3. 03 Parser The parser is the second step in the compilation process. It takes the stream of tokens and converts it into an Abstract Syntax Tree (AST).
  4. 04 Type Checker The type checker is the third step in the compilation process. It takes the AST and checks that the types are correct.
  5. 05 Language Server Protocol The Language Server Protocol (LSP) is a protocol for enabling language features in text editors.
  6. 06 Code Generation The code generator is the fourth step in the compilation process. It takes the AST and converts it into LLVM IR.