Instructor: Prof. Jianguo Lu. email: jlu at u windsor. Office: LT 5111. Office hours: Tuesday and Thursday 12:00-2:00pm.
- TA office hours: Wednesday 10:00-11:30 (Di Li firstname.lastname@example.org), Tuesday 1:00-2:30(Adam Barron email@example.com) 3146 Erie Hall.
- Lecture time and place: Tuesday and Thursday 2:30-3:50 BB 113.
- Labs time and place: Wednesday: 11:30-3:50 (ER 3119)
Links for labs
- Lab 1: Regular expression in Grep ,
practice Regex Tester.
- Lab 2: work on A1
- Lab 3: Finish A1.
Tools for automata ,
- Lab 4: JLex installation instructions,
JLex lecture slides (pdf),
JavaCup installation instruction
- Calc example: calc.lex,
- Calc2 Example: calc2.lex,
- Recursive descent parser
links for assignments
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 :