BLOOD

Compiler

BLOOD

Project sheet

Status
Functional
Scope
Academic
Start
October 18th, 2020
End
April 20th, 2021

Technical sheet

Fields
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.


Discover more projects

Made with hearth and who may interest you