Introduction
1.
Project Overview
1.1.
Project structure
1.2.
Scheme features
1.3.
Implementation overview
1.4.
Running the interpreter
2.
Part 1: The Evaluator
2.1.
Problem 1 (100pts): Frame
2.2.
Problem 2 (150pts): @builtin
2.3.
Problem 3 (200pts): scheme_eval
2.4.
Problem 4 (200pts): define@1
2.5.
Problem 5 (150pts): 'quote
3.
Part 2: Procedures!
3.1.
Problem 6 (150pts): begin
3.2.
Problem 7 (200pts): lambda
3.3.
Problem 8 (200pts): child Frame!
3.4.
Problem 9 (200pts): apply lambda!
3.5.
Problem 10 (100pts): bind lambda!
3.6.
Problem 11 (200pts): dynamic scoping with mu
4.
Part 3: Special Forms, expr with thunks
4.1.
Problem 12 (150pts): and & or
4.2.
Problem 13 (150pts): cond
4.3.
Problem 14 (200pts): local binding with let
4.4.
Complete Checkpoint (200pts): tests.scm!
5.
Part 4: Write Some Scheme
5.1.
Problem 15 (200pts): enumerate
5.2.
Problem 16 (200pts): merge
6.
Extra Credit
6.1.
Problem 17 (200pts): optimize tail recursion!
7.
Optional: Manipulate Scheme code
7.1.
Optional 1 (10pts): let is sugar
7.2.
Optional 2 (10pts): define-macro
8.
Conclusion
Light (default)
Rust
Coal
Navy
Ayu
proj04: Scheme Interpreter
Optional: Manipulate Scheme code