Skip to content
/ ijava Public

Final Compiler Project from a subset of the Java language called imperative Java - Compilers Subject

Notifications You must be signed in to change notification settings

cyberaa/ijava

Repository files navigation

ijava

license.svg

Final Compiler Project from a subset of the Java language called imperative Java - Compilers Subject UC

Description

This project consists in the development of a compiler for the language iJava (imperative Java), which is a small subset of the Programming Language Java (v 5.0). Every iJava program consists of only one class with the respective method (main). However this class may have other methods or attributes, every single one of them are static and public as well.

This Project consists primarily on 3 phases. First we have created the Lexical Analysis using C and Lex; in the second phase, it has consisted on the creation of the Syntatic Analysis using yacc/bison to construct the Abstract Syntax Tree and consequently the Semantic Analysis with the construction of the Symbols Table and detection of Semantic Errors; in the third and final phase, we have generated the code in LLVM, resulting from this whole process.

Screenshots

  • Phase 1 (Lexical Analyzer)

  • Phase 2
    • Abstract Syntax Tree

    • Syntax Error Detection

    • Symbolic Table

    • Semantic Error Detection


  • Phase 3 (Code Generation)
    • LLVM

About

Final Compiler Project from a subset of the Java language called imperative Java - Compilers Subject

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published