- Notifications
You must be signed in to change notification settings - Fork0
wzh99/SimPL
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
In this project I implemented an interpreter for the programming language SimPL. Seereport for further details. SimPL is a simplified dialect of ML, which can be used for both functional and imperative programming.
In packageparser
, infrastructures for lexical and syntactical analysis are already provided. The parser parses the source program into AST representation. I implemented type checking and evaluation methods for all the AST nodes.
In packageinterpreter
, classInterpreter
serves as the program entry for the whole project. Besides, there are classes representing runtime environment and values in this packages. Library functions should also be defined in this package.
In packagetyping
resides classes representing types and typing environment. Substitution and unification methods should be implemented for all types, which form the basis of type inference.
- Garbage Collection
- Lazy Evaluation
- Mutually Recursive Combinator
- Infinite Stream