CSEN 1002 Advanced Computer Lab

Course Information

Abstract

  • This course provides a practical introduction to the implementation of compilers. The course is carried out as one programming project divided into four milestones. Each milestone will consist of one component of the compiler that will be built during the course. At the end of the course, the implemented compiler will be capable of generating executable code for the JVM or other possible machine architectures.

Outline

  • The lab problems include the following:

    • Lexical Analyzers:
      • Implementing a lexical analyzer manually from scratch.
      • Implementing a lexical analyzer using JLex.
    • Syntactic Analyzer:
      • Implementing a parser manually from scratch.
      • Implementing a parser using CUP.
    • Semantic Analyzer
      • Generate a syntax tree manually from scratch.
      • Generate a syntax tree using CUP.
    • Code Generator:
      • Generation of machine code (JVM or MIPS).
         

Objectives

  • By the end of his course, students will know how to implement lexical, syntactic and semantic analyzers, manually and using automation tools such as JLex and CUP. They will also have learnt or to implement a full compiler for the Decaf programming language.

RenewSession