Learn the essential parts of programming language design! Through creating a new programming language, you’ll learn how to break down a program into its necessary elements: first into tokens through lexical analysis, and then into a traversable abstract syntax tree composed of those tokens. You’ll also write an interpreter, and learn how to transpile your language to JavaScript to make it runnable.
Overview
Syllabus
- Introduction
- Compilers & Interpreters Overview
- Course Project
- Lexing: Lexical Analysis
- Identity Helpers & Lexer
- Lexing White Space & Parenthesis
- Lexing Numbers & Letters
- Lexing Characters & Strings
- Internal Representations & ASTs
- Steps to Build an AST
- Parsing Exercise
- Parsing Solution
- REPLs
- Adding the Standard Library
- Evaluating Expressions
- Looking Up Identifiers
- Adding to the Standard Library
- Building the REPL CLI
- Running Files from the CLI
- Generation & Babel generate
- Transformation: Visitor Pattern
- Implementing Traverse
- Testing Traverse
- Transform Practice
- Transpiling to JavaScript
- Transforming to Variable Declarations
- Variable Evaluation
- Transpiling Variable Declarations to JavaScript
- Parser Generators
- Wrapping Up
Taught by
Steve Kinney