Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wzh99/SimPL
SJTU CS383 Project: SimPL Interpreter
https://github.com/wzh99/SimPL
Last synced: about 1 month ago
JSON representation
SJTU CS383 Project: SimPL Interpreter
- Host: GitHub
- URL: https://github.com/wzh99/SimPL
- Owner: wzh99
- Created: 2020-03-08T08:39:18.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-06-23T08:14:46.000Z (over 4 years ago)
- Last Synced: 2024-08-01T19:47:00.579Z (4 months ago)
- Language: Java
- Size: 2.74 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-cs - @wzh99, 2020 Spring
README
# SimPL Interpreter
In this project I implemented an interpreter for the programming language SimPL. See [report](doc/simpl_report.md) for further details. SimPL is a simplified dialect of ML, which can be used for both functional and imperative programming.
## Project Structure
### Parser
In package `parser`, 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.
### Interpreter
In package `interpreter`, class `Interpreter` 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.
### Typing
In package `typing` resides classes representing types and typing environment. Substitution and unification methods should be implemented for all types, which form the basis of type inference.
## Bonus Features
* Garbage Collection
* Lazy Evaluation
* Mutually Recursive Combinator
* Infinite Stream