CS540: Language Processors (Spring 2020)
1 Course Basics
1.1 Meeting Time and Location:
- Monday/Wednesday 9-10:15am, Blueridge Hall 129
1.2 Instructor: Dr. Yutao Zhong
- Email: yzhong (at) gmu (dot) edu
- Office: Engineering Building 4433
1.3 Course Content
This course will cover the theoretical and implementation aspects of
language processing. Emphasis will be on the techniques and the
issues that arise in the design and construction of compilers. There
are several substantial programming assignments associated
with this course. Main topics of the course include:
- Compiler design
- Lexical analysis
- Syntax analysis - grammars, LL(1) parsers, LR(1) parsers
- Semantic processing
- Code generation and optimization
1.4 Course Outcomes
At the end of this course, students should
- 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
- Be able to write regular expressions and finite state automata
for languages, be able to use tools to automatically generate
- 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
- Be able to describe the storage system and explain the
implementation of high-level language features like function
- Be able to explain the major problems and solutions of code
generation; be able to implement code generator from
- Be able to explain important optimization schemes; be able to
describe and apply data-flow analysis.
1.5 Prerequisites: C or better in CS310/CS330/CS367
Students are expected to be acquainted with formal models and
languages(CS330), computer systems and assembly languages(CS367),
and data structures(CS310). Students should have strong
programming skills with at least one language in C/C++/Java.
- Required - Compilers:
Principles, Techniques and Tools, Aho, Lam, Sethi,
and Ullman (aka Dragon book), 2/E, Addison-Wesley, August, 2006.
- Recommended - lex & yacc,
Levine, Mason, and Brown, published by O'Reilly, 2nd Edition,
October 1992. Errata
1.7 Other Useful Resources:
Course schedule, announcements, lecture slides, discussion,
contacts, and office hours. Follow the link to
Grades release and assignments submission.
Cutoffs will be applied without rounding.
Cutoffs will be in the vicinity of: A: >90%, B: >80%, C:
- All projects must be done on an individual basis unless stated
- All project grades are normalized and each contributes to your
final grade evenly.
- Incorrect/broken submissions:
- Turning in the wrong files will likely result in a zero.
- Code that doesn't compile/run will likely get a very low
score. It specifically MUST compile/run on zeus.vse.gmu.edu.
- Late Policy:
- Up to 48 hours late work accepted. Each day late
drops the highest possible score by 25%.
- Each student gets two "Emergency Day" tokens,
which are automatically used by late submissions to
avoid the 25% penalty.
- Unused emergency-tokens will be worth 0.25% bonus to a
student's overall grade at the semester's end.
- Blackboard being unavailable is not an excuse for turning
in a late assignment; in the rare situation that the website
is somehow unavailable or giving the student an error, the
student MUST email their submission to their GTA before the
deadline, otherwise it will be considered late.
- Catastrophic computer failure will not be cause for an
extension. Use a backup service such as DropBox (or any
cloud service), emailing yourself, making multiple rounds of
submissions to Blackboard, whatever it takes.
- Exams are closed book unless specified otherwise by
- They will be entirely paper and pencil - no computers.
- All students must have their GMU identification available on
- Early or Late/Makeup Exams require exceptional circumstances
(as judged by the professor) and must be arranged in advance.
Vacation plans are not exceptional circumstances.
- If you miss an exam due to a university-accepted excused
absence (such as an illness or car accident the day and time of
the exam), you must notify your professor within 24 hours of
your absence to make arrangements for a makeup, and bring
approved documentation with you when you take the make-up exam.
Failure to follow either of these policies will result in a
zero. We may elect to allow the final exam to count the extra
amount to give you a sort of do-over; we also reserve the right
to give oral makeup exams in lieu of written.
- The final will not be given early. You are starting the course
with knowledge of the schedule (see GMU's Final Exam Calendar
for the latest schedule, updated as weather events require).
2.4 Discussion board
- Students are encouraged to use the discussion board, Piazza,
to ask and answer questions.
- No sharing answers to homework assignments on the discussion
- Under no circumstances should code be posted publicly to the
discussion board. Students can post questions and code
privately, although the instructor reserves the right to make
any post public, so that other students can see the responses.
- Contested Grades: Contesting of grades on any/all
submissions must be requested within one week of receiving the
grade (on BlackBoard). No grade changes will be considered
subsequent to that deadline.
- There will be no make-up or extra-credit assignments at the
end of the semester; your grade should be a measure of your
- IN (Incomplete) policy as indicated in the catalog will be
strictly adhered to. You must provide the necessary back-up
documentation (e.g. medical certificate) for your application to
be considered favorably. In all circumstances, the written
request, with all the back up documentation, must be received
before the final exam week.
3 Honor Code
All students are expected to abide by the GMU Honor Code.
This policy is rigorously enforced. The computer science
department has an CS Honor Code
Policies that you are subject to particularly for our course.
Cheating on any assignment will be prosecuted and result in a
notification of the Honor Committee as outlined in the GMU Honor
Code. Sharing, collaboration, or looking at
any code, algorithm, or solutions of assignments that is not
your own (or outside the group for group assignments), including
resources from Internet, is considered cheating.
We take the honor code quite seriously. Any attempts at copying
or sharing code, algorithms, or other violations of the honor code
simply will not be tolerated. We use automated software to flag
suspicious cases, and then review them to find the cases that must
be submitted to the Office of Academic Integrity. The penalty for
cheating will always be far worse than a zero grade, to ensure
it's not worth taking the chance. Confirmed cases of cheating
almost always translate into course failure.
4 Learning Disabilities
Students with a learning disability or other condition
(documented with GMU's Office of
Disability Services) that may impact academic performance
should speak with the professor ASAP to discuss
5 Campus Resources