NTLC — Neo Typed Lambda Calculus
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
-
Introduction
What is NTLC, and, what are we building exactly?
-
Lexer
The lexer is the first step in the compilation process. It takes the source code and converts it into a stream of tokens.
-
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).
-
Type Checker
The type checker is the third step in the compilation process. It takes the AST and checks that the types are correct.
-
Language Server Protocol
The Language Server Protocol (LSP) is a protocol for enabling language features in text editors.
-
Code Generation
The code generator is the fourth step in the compilation process. It takes the AST and converts it into LLVM IR.