The Infrastructure for a new compilers class, building a compiler for a functional language.
- Test Format Spec
- Submission Grader
- Test Validator - accept no tests that fail against the reference implementation
- Test Grader - grade each student's tests against known faulty compilers
- Test Runner - run each student's code against our tests, and other students' tests
- Test Database - record student's valid test cases and how many other students' compilers fail to pass each test
- Per Language
- Specification
- Interpreter - the reference implementation (Includes a parser and IR data structures)
- Compiler
- Test Cases
- Faulty Compilers
- Languages
- Single Byte Numbers
-
- Arithmetic and Logic
-
- Multiplication and Division
-
- Comparison Operators
-
- If0
-
- Functions for Explicit Continuations
- Top Level Functions
- Automatic CPSing to ^
- Vector function and Malloc
- List Functions
- Closures
- ...