https://github.com/wzh99/SimPL
  
  
    SJTU CS383 Project: SimPL Interpreter 
    https://github.com/wzh99/SimPL
  
        Last synced: 7 months 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 (over 5 years ago)
 - Default Branch: master
 - Last Pushed: 2020-06-23T08:14:46.000Z (over 5 years ago)
 - Last Synced: 2024-11-07T13:39:46.829Z (12 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