CS440-001: Language Processors and Programming
Environments
(Fall 2023)
1 Course Basics
1.1 Meeting Time and Location:
- Monday/Wednesday 1:30-2:45pm,
Music/Theater Building 1005
1.2 Instructor: Dr. Yutao Zhong
- Email: yzhong (at) gmu (dot) edu
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
- Code 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
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.
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.
1.6 Textbook:
- Required - Compilers:
Principles, Techniques and Tools, Aho, Lam, Sethi,
and Ullman (aka Dragon book), 2/E, Addison-Wesley, August, 2006.
Errata Page.
- Recommended - lex
& yacc, Levine, Mason, and Brown, published by
O'Reilly, 2nd Edition, October 1992. Errata Page.
1.7 Other Useful Resources:
- Blackboard:
Course schedule, announcements, lecture slides, assignments,
and grades release.
- Piazza: Discussion forum. Follow the link on Blackboard
to sign up.
- Gradescope: Quizzes. Link will be available from
Blackboard.
2 Grading
2.1 Assessment
Category
|
Percent
|
Coding projects
|
40%
|
Quizzes
|
10%
|
Participation
|
5%
|
Midterm
|
20%
|
Final exam
|
25%
|
The following cutoffs will be applied without
rounding:
- A+ (>= 97.0%) A (>= 91.0%) A– (>= 89.0%)
- B+ (>= 87.0%) B (>= 80.0%) B– (>= 78.0%)
- C+ (>= 76.0%) C (>= 70.0%) C– (>= 68.0%)
- D (>= 60.0%)
- F (< 60.0%)
2.2 Projects
- All projects must be done on an individual basis unless stated
otherwise.
- All project grades are normalized and each contributes to your
final grade evenly.
- Incorrect/broken submissions:
- Code that doesn't compile/run will likely get a very low
score. It specifically MUST compile/run on zeus.cec.gmu.edu(Zeus).
- Turning in the wrong files or corrupted files will likely
result in a zero.
-
If you turn in the wrong files, the ONLY way you MIGHT receive
credit is by showing your professor a backup where the
modified date on the files is outside of
your control. Modified dates on personal computers
and/or public computers are NEVER accepted as proof
of work. Backups which WILL ALWAYS be considered are: backup
copy on zeus; prior submissions to Gradescope/Blackboard; or
emails to your Professor/GTA. Backups which MIGHT be accepted
include: emails from your GMU email to yourself, uploading to
certain backup services (such as OneDrive or a private GitHub
repo).
- Late Policy:
-
Projects can be turned in at most 24 hours late, no
exceptions.
- Submitting an assignment late incurs a 25% ceiling
penalty so that RecordedGrade = min(75%, RawGrade).
- Each student gets two "Emergency Day" tokens,
which are automatically used by late submissions to
avoid the 25% penalty. Only one token can be applied to
each project.
- Unused emergency-tokens will be worth 0.25% bonus to a
student's overall grade at the semester's end.
- Blackboard/Gradescope 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 OneDrive (or any
cloud service), emailing yourself, making multiple rounds of
submissions to Blackboard/Gradescope, whatever it takes.
2.3 Quizzes
- There will be weekly online quizzes for most of the weeks.
- The lowest quiz grade will be dropped.
- Late Policy: no late
submission accepted for quizzes.
2.4 Exams
- Exams are closed book unless specified otherwise by
instructor. They will be entirely paper and pencil - no
computers.
- All students must have their GMU identification available on
testing days.
- 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. 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).
- 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.
- Missing an exam due for any non-university-accepted reason
(such as not paying attention to when the exam is), will result
in a zero.
2.5 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
board.
- Under no circumstances should your code of assignments 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.
2.6 Other
- Contested Grades: Contesting of grades on any/all
submissions must be requested within one week of receiving the
grade. 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
semester-long progress.
- 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 Policies
3.1 Honor Code
- All students are expected to abide by the GMU Honor Code. This policy is
rigorously enforced. Cheating 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 or algorithm for the programming
projects that is not your own, including resources from
Internet, is considered cheating.
- The computer science department has an CS Honor Code Policies that you are
subject to particularly for our course. The document helps you
to understand how GMU honor code applies to programming and
CS, what constitutes cheating in the CS setting. It clarifies
some scenarios that are unique to our sorts of assignments.
Make sure you read and familiarize yourself with these rules.
- ChatGPT or other Generative-AI models may not be used in
this course as an assistant in projects, quizzes, or exams
unless otherwise specifically stated by the instructor.
-
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.
3.2 Privacy
- All course materials posted to Blackboard or other course
sites are private; by federal law, any materials that identify
specific students (via their name, voice, or image) must not be
shared with anyone not enrolled in this class.
- Video recordings of class meetings that include audio or
visual information from other students are private and must not
be shared.
- Live Video Conference Meetings (e.g. Collaborate or Zoom)
that include audio or visual information from other students
must be viewed privately and not shared with others.
3.3 Non-discrimination and Inclusiveness
- We are committed to providing an educational environment free
from any discrimination on the basis of race, color, religion,
national origin, sex, disability, veteran status, sexual
orientation, gender identity, gender expression, age, marital
status, pregnancy status, or genetic information. If you
encounter any barriers to your inclusion, please contact the
professor.
You can also get assistance by contacting GMU's Office of
Diversity, Equity and Inclusion (703-993-8730; cde@gmu.edu).
- Gender identity and pronoun use: If you wish, please share
your name and gender pronouns with us and we will attempt use
them to address you in class and via email.
3.4 Sexual Harassment, Sexual Misconduct, and Interpersonal
Violence
- All faculty members are designated "Responsible Employees",
and are required to report all disclosures of sexual assault,
interpersonal violence, and stalking to Mason’s Title IX
Coordinator per university policy 1412. If you wish to speak
with someone confidentially, please contact the Student Support
and Advocacy Center (703-380-1434) or Counseling and
Psychological Services (703-993-2380). You may also seek
assistance from Mason’s Title IX Coordinator (703-993-8730;
titleix@gmu.edu).
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 appropriate accommodations.
5 Campus Resources