https://github.com/ilankri/flap
A toy compiler from a functional programming language to MIPS assembly and Java bytecode (mirrored from https://gitlab.com/ilankri/flap)
https://github.com/ilankri/flap
compiler functional-programming jvm mips programming-language school-project
Last synced: 4 months ago
JSON representation
A toy compiler from a functional programming language to MIPS assembly and Java bytecode (mirrored from https://gitlab.com/ilankri/flap)
- Host: GitHub
- URL: https://github.com/ilankri/flap
- Owner: ilankri
- Created: 2022-04-09T15:00:28.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-04-15T19:55:30.000Z (over 3 years ago)
- Last Synced: 2025-03-15T09:14:35.049Z (8 months ago)
- Topics: compiler, functional-programming, jvm, mips, programming-language, school-project
- Language: OCaml
- Homepage:
- Size: 8.43 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Initial projects
## Links
* http://moule.informatique.univ-paris-diderot.fr:8080/Yann/compilation-m1-2016
* http://moule.informatique.univ-paris-diderot.fr:8080/letouzey/compilation-m2
## Members
* Yung-Kun Hsieh
* Belaid Lagha
* Idir Lankri
# Overview of features
## Fully implemented
* Typechecker for Hopix
* Compiler from Hopix to Hobix
* Compiler from Hobix to Fopix
* Compiler from Fopix to Retrolix
* Compiler from Retrolix to MIPS assembly language
## To be implemented
* Register allocation
* Type inference for Hopix
* Various optimizations like efficient compilation of pattern matching
or tail call optimization
# How to test the generated code
Run `./docker-run.sh -mips foo.hopix` each time you want to compile and
execute `foo.hopix` to MIPS in a Docker container.