Introduction
Project Structure
1.
Project Overview
1.1.
Scheme Features
1.2.
Implementation Overview
1.3.
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 (200pts)
7.
Optional: Manipulate Scheme code
7.1.
Optional 1: let is sugar
7.2.
Optional 2: define-macro
8.
Project Submission
9.
Debugging Guide
Light (default)
Rust
Coal
Navy
Ayu
proj04: Scheme
Optional: Manipulate Scheme code