Design a simple dynamically-typed scripting language and build a just-in-time compiler for it. You will implement a recursive-descent parser, an AST-based bytecode compiler, and a JIT backend using LLVM that generates machine code at runtime with type specialization and inline caching.
The whole plan below is free to read: every milestone, its build steps, how to verify it, and which tasks and visualizations to use. Tracking your progress, the completion certificate and the graded tasks it links to need a plan.
Sign inEach milestone opens into the build order, a way to check your work, the tasks that drill its pieces, and the visualizations that show the machinery. Work top to bottom.
An interpreter that runs real programs, which the JIT will later have to match exactly.
A recursive fib(20) returns 6765 through the interpreter, and the disassembler output accounts for every instruction it executes.
There is no upload step. You build this on your own machine, in your own repository, and tick each milestone off here as it works. Finish all 5 and you get a certificate with a verification id; connect GitHub first and a gist artifact is created alongside it.