CS 440 Language Processors - Spring 2015
Dr. Elizabeth White
Office: Engineering, 5315
Course meets Tuesdays 4:30-7:10, Art and Design, Rm. 2026
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
- Be able to compare compiled and interpreted execution models, outlining the relative merits of each
- Be able to describe the phases of program translation from source code to executable code and the files produced by these phases
- Be able to write regular expressions and finite state automata for languages, be able to use tools to automatically generate scanners.
- Understand the definition of grammars; be able to write grammar for context-free languages; be able to manually write recursive-descent parsers; be able to transform grammars and use automatic tools to generate bottom-up parsers.
- Be able to construct and maintain symbol table; be able to process declarations and scopes; understand the type system and type checking.
- Be able to describe the storage system and explain the implementation of high-level language features like function calls.
- Be able to explain the major problems and solutions of code generation; be able to implement code generator from intermediate code.
- Be able to explain important optimization schemes; be able to describe and apply data-flow analysis.
There will be 3 programming assignments, together worth 50% (15 + 15 + 20) of your grade.
These are to be individual efforts, meaning no sharing of code or
discussion of problem solution allowed with anyone but me or the TA. Late programming assignments
will be penalized 20% for each day late.
- Homework (10% of your grade) will be assigned periodically. Homework may be done individually or in groups. Late homework will
be accepted with the following penalties: 1 day = 10%, 2 days = 30%, 3 days = 60%, 4 days = not accepted
There will be two exams during the semester, each worth 20% of your grade.
All exams 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.
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 in the here.
This semester I will probably be using similarity detection software to
assist me in finding honor code violations, should they occur.
The Office of Disability Services (ODS) is available to serve all students with disabilities, including those with cognitive (e.g., learning, psychological, and closed head injury), sensory, mobility, and other physical impairments.