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 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 Midterm sample questions

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 :