Compiler Design Lectures & Labs - 1 MSE
 

| Description | News | Lectures | Exams | Lab assignments | Lab activity | Bibliography |

Description

The lectures are about basic compiling techniques presented in the red dragon book. In the laboratory of this course we will implement a compiler for an object-oriented language called MiniJava. The compiler will be built using the JavaCC parser generator. The semantical analysis is based on the Visitor design pattern. Finally, the parser will generate Java byte code following the Java virtual machine specification.

News

  • [2012.01.08 11:49am] on 12.01.2012 and 19.01.2012 at 08:00am in room B418b we will have the final exam
  • [2012.01.08 11:48am] on 09.01.2012 and 16.01.2012 at 06:00pm in room B418b we will have the exam preparations
  • [2011.12.20 10:29am] during the exam preparation meetings you can present your remaining lab assignments
  • [2011.12.20 10:28am] exam and exam preparation dates are all set

Lectures

Timetable: Tuesday from 10:00am to 12:00am on October, November, December 2011 in room B418b

0300. Lexical Analysis Overview pptx ppt pdf

0301. The Role of the Lexical Analyzer pptx ppt pdf

0306. Finite Automata pptx ppt pdf

0307. From Regular Expression to Automata pptx ppt pdf

0308. Design of a Lexical Analyzer Generator pptx ppt pdf

0309. Optimization of a DFA-based Pattern Matchers pptx ppt pdf

0310. Summary pptx ppt pdf

0400. Syntax Analysis Overview pptx ppt pdf

0401. Introdution pptx ppt pdf

0402. Context-Free Grammars pptx ppt pdf

0403. Writing a Grammar pptx ppt pdf

0404. Top-Down Parsing pptx ppt pdf

0405. Bottom-Up Parsing pptx ppt pdf

0406. Introduction to LR Parsing pptx ppt pdf

Exams

  • preparation for the first exam on 09.01.2012 at 06:00pm in room B418b
  • first exam on 12.01.2012 at 08:00am in room B418b
  • preparation for the second exam on 16.01.2012 at 06:00pm in room B418b
  • second exam on 19.01.2012 at 08:00am in room B418b

Laboratory Assignments

Timetable: Mondays at 08:00am-10:00am on October, November, December 2011 in room B418b

1. Automatic Generation of Lexical and Syntactical Analyzer [ro]

2. The Visitor Design Pattern [ro]

3. Automatic Generation of Abstract Syntax Tree and Visitor Design Pattern [ro]

4. Domain Analysis [ro]

5. Type Checking [ro]

6. The "class" Binary File Format [ro]

Laboratory Activity

Bibliography

[1] Andrew Appel - Modern Compiler Implementation in Java, 2nd edition, 2002.
[2] Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman and Monica S. Lam - Compilers: Principles, Techniques, and Tools, Second Edition, 2006.
[3] Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides - Design Patterns: Elements of Reusable Object-Oriented Software, 1995.
[4] Oracle Corporation - JavaCC Parser Generator, http://java.net/projects/javacc/downloads
[5] Tim Lindholm, Frank Yellin - The Java Virtual Machine Specification, Second Edition.