BLOOD
Compiler
BLOOD
Project sheet
- Status
- Functional
- Scope
- Academic
- Start
- October 18th, 2020
- End
- April 20th, 2021
Technical sheet
- Fields
- Software engineering, project management, compiling, assembly
- Languages
- Java, ARM
- Framework
- ANTLR
- Tools
- Git, Latex
Basic Language Object-Oriented of Doom
BLOOD is a compiler carried out in a group of 4 for the eponymous programming language as part of the Language Translation module of Télécom Nancy. The BLOOD language specification comes from the Paris-Saclay University.
The lexical and syntactic analysis were used to elaborate the grammar and tree structure of the abstract syntax. The realized grammar was rendered LL(1) without backtracking. Test sets of different sizes have all been successfully performed.
The semantic analysis led to the generation of symbol tables and 41 different tested and functional semantic controls.
For more than a decade, Télécom Nancy students have been generating code in MicroPIUP/ASM, a pseudo-code assembler for the MicroPIUP simulator co-created by a retired Télécom Nancy teacher. We are the first group from Télécom Nancy (and the only group in our class) to migrate to VisUAL2, an ARM assembler and simulator closer to our expectations. All compilation projects after our class will be done in VisUAL2, so that all the following classes will use our project as a reference. At the request of the teaching staff, we have written the reference material for future code generation courses.
Implementations realized, tested and functional in code generation are: primitive integer and string types, variable declaration, simple and arithmetic assignments, logical operators, arithmetic expressions, string concatenation, conditional structures, output of integers and strings, heap allocation, classes and class descriptors, static and instance methods and their parameters and return values, class attributes and instance constructors.