53 lines
1008 B
Markdown
53 lines
1008 B
Markdown
# MiniC Compiler
|
|
LAB4 (simple code generation), MIF08 / CAP 2023-24
|
|
|
|
# Authors
|
|
|
|
Augustin LUCAS
|
|
|
|
# Contents
|
|
|
|
# Test design
|
|
|
|
# Design choices
|
|
|
|
Booleans are implemented as integers behind the scenes, but type-checking before compilation disables any casting mechanism.
|
|
As for the previous lab, the Fortran-like for-loop extension has been implemented.
|
|
|
|
# Known bugs
|
|
|
|
# Checklists
|
|
|
|
A check ([X]) means that the feature is implemented
|
|
and *tested* with appropriate test cases.
|
|
|
|
## Code generation
|
|
|
|
- [x] Number Atom
|
|
- [x] Boolean Atom
|
|
- [x] Id Atom
|
|
- [x] Additive expression
|
|
- [x] Multiplicative expression
|
|
- [x] UnaryMinus expression
|
|
- [x] Or expression
|
|
- [x] And expression
|
|
- [x] Equality expression
|
|
- [x] Relational expression (! many cases -> many tests)
|
|
- [x] Not expression
|
|
|
|
## Statements
|
|
|
|
- [x] Prog, assignements
|
|
- [x] While
|
|
- [x] Cond Block
|
|
- [x] If
|
|
- [x] Nested ifs
|
|
- [x] Nested whiles
|
|
|
|
## Allocation
|
|
|
|
- [x] Naive allocation
|
|
- [x] All in memory allocation
|
|
- [ ] Massive tests of memory allocation
|
|
|