CS 540 Language Processors - Spring 2013
Dr. Elizabeth White
Office: Engineering, Rm. 5315
email: firstname.lastname@example.org - put CS540 in subject line
Office Hours: Tues 3-4, Thurs 10:30-11:30 or by appt
This course will cover the theoretical and implementation aspects of language
processing. Emphasis will be on the design and construction of compilers.
There are several substantial programming assignments associated with this course. These assignments will be implemented in C, Java or C++ (student choice).
- Compiler Design
- Lexical Analysis
- Syntax Analysis - grammars, LL(1) parsers, LR(1) parsers
- Semantic Processing
- Code generation and optimization
- CS 310 - strong programming and data structure experience.
- CS 330 - study of formal languages, including regular and context free.
- CS 367 - experience with assembly language programming and will runtime systems.
- Compilers: Principles, Techniques and Tools, Aho, Lam, Sethi & Ullman, 2006 (2nd edition)
- lex & yacc, Levine et. al. (recommended)
- Other course materials, including slides, will be available on Blackboard
- There will be 4 programming assignments, together worth 45% of your grade (5% + 10% + 10% + 20%). The assignments get progressively larger and more complex over the semester.
These are to be individual efforts, meaning no sharing of code or
discussion of problem solution allowed with anyone but me or the TA.
Midterm exam, worth 25% of your grade
The final exam, worth 30% of your grade, will be commulative with the primary
emphasis (70-90%) on the material not tested in the midterm.
Both the final and midterm are closed book.
You must have a written
excuse (doctor's note, for example) to miss an exam. I reserve the right
to give oral makeup exams in lieu of written.
It has been my experience that time is the biggest determiner of your final
grade in this class. I suggest that you start assignments when I hand them
out. They often take more time than you think.
Note: This course will be taught with a distance options
You are expected to abide by the honor code. Programming assignments and
exams are individual efforts. Information on the university honor code
can be found at:
This semester I will probably be using similarity detection software to
assist me in finding honor code violations, should they occur.