Marks are out. You can serarch for your marks in the search box below. You are welcome to drop by to review your exam papers.

Note that due dates for A2-A5 are changed to synchronize with lab dates.

To get your marks, please enter your student ID:

Lecture slides and handouts

  1. Course overview (ppt) , PDF
  2. Course outline (pdf)
  3. Lexer (ppt) , PDF.
  4. Grammar ppt , PDF ,
  5. Tools for RE and Automata ppt
  6. Java cup ppt
  7. Midterm 1 review questions.
  8. Bottom up parsing PPT, PDF .
  9. Top down parsing ppt, PDF
  10. Attribute grammar PPT,
  11. Practical aspects of parsing, PDF.
  12. Sample exam and solution 2014 Midterm 2, 2014
  13. Sample exam and solution in 2004 doc file

Course Outline

This course covers both pragmatic and theoretical aspects of grammars, recognizers, and translators for computer languages. The theoretical aspect contains regular language, context free language, finite state machine, different paring techniques including recursive descent parsing, LL(1), SLR, LALR, and LR(1) parsing. The practical aspect contains automatic generation of scanners using a scanner generator JLex, automatic parser generation using parser generator JavaCUP, and language translation techniques. The prerequisites are 03-60-212, 03-60-140, 03-60-104, and 03-60-100. All the assignments will use Java, hence you should have a solid knowledge in Java programming. After this course, you will be able to understand grammars, write grammars, write parsers according to a grammar, and write a translator between different languages. Attendance in lectures and labs is very important to be successful in this course - students who do not attend lectures and labs generally score very low on exams and assignments. You must keep up with the material as the semester progresses.


We will follow Chpaters 1-5, and some of Chpaters 6 and 7 of the following book :