The project consists of following deliverables in the OCaml programming language:
• interpreter_bigstep: Interpreter of the language Arith in big-step evaluation semantics.
• interpreter_dynamic: Interpreter of the Lambda Calculus with dynamic scope and dynamic typing.
• interpreter: Interpreter of the language FPL with all the features we have seen up to the topic Exceptions included.
NOTE: The project consists of the following items, which must be done sequentially.
To switch to the next item, you need to pass all the tests prescribed for the previous items.
Refer to the below table for appropriate deliverables for all the features
Feature Deliverable
Syntax start interpreter_bigstep
Big-step semantics interpreter_bigstep completed
Small-step semantics start interpreter
Type systems continue on interpreter
Typed Lambda Calculus continue on interpreter
Dynamic Scoping start interpreter_dynamic
Dynamic Typing interpreter_dynamic completed
Recursion continue on interpreter
Exceptions interpreter completed
Note: Even if the deliverable folder name is same for the feature each feature code would be separate files in the respective folder.