6 lessons
Capstone 1: choosing your compiler's tech stack
Deciding the language, build system, project layout, and dependencies for a real, from-scratch compiler project — with concrete justification for every choice.
Capstone 2: designing PocketLang's grammar and rules
Writing PocketLang's complete formal grammar, checking it for LL(1)-friendliness by hand, and defining its full type system and scoping rules before writing any implementation code.
Capstone 3: implementing PocketLang's lexer and parser
A complete, working lexer and recursive descent parser for PocketLang's full grammar, including the function/call disambiguation the design lesson flagged.
Capstone 4: semantic analysis and code generation for functions
Extending symbol tables and type checking to handle multiple functions and calls, then generating three-address code for the complete fibonacci program.
Capstone 5: optimizing and executing PocketLang, for real
Running the Module 7 optimization pipeline on generated TAC, then building a complete stack-based virtual machine that actually executes it and prints real output.
Capstone 6: testing, packaging, and where to go from here
A complete per-phase test suite for PocketLang, packaging it as a usable CLI tool, and a concrete roadmap for extending it well beyond this course.