CS 540 Language Processors - Fall 2014

    Dr. Elizabeth White
    Office: Engineering, Rm. 5315
    Phone: 993-1586
    email: white@gmu.edu - put CS540 in subject line
    Office Hours: Monday 4:30-5:30, Wednesday 1:30-2:30 or by appt

    Course Content

    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

    Pre-requisites

    • 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.

    Textbooks

    • 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

    Grading Policies

    • 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.

    Honor Code

    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:
    http://jiju.gmu.edu/catalog/apolicies/honor.html

    This semester I will probably be using similarity detection software to assist me in finding honor code violations, should they occur.