CS440-002: Compilers (Fall 2025) 
    
    
    1 Course Basics
    1.1 Meeting Time and Location:
    
      - Monday/Wednesday 9-10:15am, Planetary Hall 124
        
      
 
    
    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
      
      Upon completion of this course, students should 
    
      - Be able to demonstrate a comprehensive understanding of
        compilation, including its major phases, foundational theory,
        and common features.
 
      - Be able to understand, define, and implement lexical rules for
        a programming language; be able to use Flex or similar tools to
        construct lexical analyzers.
 
      - Be able to understand, define and implement grammar rules for
        a programming language; be able to construct parsers using
        manual techniques like recursive descent and/or parser
        generators such as Yacc or Bison.
 
      - Be able to perform semantic analysis; be able to apply
        syntax-directed translation techniques to enforce semantic rules
        and generate intermediate code.
 
      - Be able to translate high-level programming constructs into
        low-level representations; be able to explain the key challenges
        and solutions for efficient code generation.
 
      - Be able to explain and apply optimization techniques to
        improve the generated code; be familiar with selected advanced
        topics and emerging trends in compiler design and
        implementation.
       
    
    
    1.5 Prerequisites: C or better in CS310/CS330/CS367
    
    This is a programming intensive course. Students should have strong
      programming skills with at least one language in C/C++/Java.
      Students are expected to be acquainted with formal models and
      languages(CS330), computer systems and assembly languages(CS367),
      and data structures(CS310). 
    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:
    
      
      - Canvas: Course schedule, announcements, lecture
        slides, assignments, and grades release. 
       
      - Piazza: Discussion forum. Follow the link on Canvas to
        sign up. 
 
      - Gradescope: Quizzes. Link to Gradescope site will be
        available from Canvas. 
 
    
    
    
    2 Grading
    2.1 Assessment
    
      
        
          Category 
           | 
          Percent 
           | 
        
        
          Coding projects 
           | 
          35% 
           | 
        
        
          Quizzes 
           | 
          10% 
           | 
        
        
          Participation 
           | 
          5% 
           | 
        
        
          Midterm 
           | 
          25%  
           | 
        
        
          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 Server).
 
        - 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/Canvas; 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 48 hours late, no
            exceptions.
 
          - Submitting an assignment late incurs a 25% ceiling
            penalty each day.
 
          
            - For submissions one day late without a token or two days
              late with only one token, your final score =
              min(raw_score, 75%).
 
            - For submissions two days late with no tokens, your final
              score = min(raw_score, 50%).
              
              
             
          
          - Each student gets three "Emergency Day" tokens,
            which are automatically used by late submissions. Up
              to two tokens can be applied to each project. 
 
          
            - Unused emergency-tokens have no grade value at
              the end of the semester.
              
              
             
          
          - Canvas/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 submissions 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 Canvas/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, cell phones, calculators, or other such resources are
        allowed.
        
      
 
      - 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 for missed midterms; 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. 
 
      -  Do not miss the Final Exam. This requires College Dean's
          Approval to make-up.
 
    
    
    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 Academic Standards (Honor Code)
      
    
      
        -  All students are expected to abide by the GMU Academic
            Standards Code. This policy is rigorously enforced.
          Violations will be prosecuted and result in a notification of
          the Academic Standards Office as outlined in the link above. 
         
        -  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.
          
        
 
        -  You are not allowed to use any code that are
            not your own for the assignments. 
         
        
          - This includes code from Internet. 
           
          - This includes code from any other student (including past
            students). 
 
          - Submitted work that is not your own is an academic
            standards violation and will be reported to the Academic
            Standards Office. 
 
        
        - You are not allowed to discuss any
          implementation (code) or design decisions with any other
          student.
 
        
          - This includes prior students.
 
          - Sharing your code / design with other students is an
            academic standards violation and will be reported to the
            Academic Standards Office. This includes includes posting
            your code to a website, like Piazza or GitHub public
            repository.
            
          
 
        
        - Generative-AI /LLM tools should not be used
          in this course as an assistant in projects, quizzes, or exams.
        
 
        
          - The use of AI writing/programming tools, such as Copilot,
            ChatGPT, Gemini, Claude, Grok, and other similar models are
            prohibited in this course and will be considered a violation
            of academic integrity.
 
          - The use of AI-enhanced IDEs, such as VisualStudio Code,
            Cursor, Augment, Aider, Windsurf, Cline, or any other editor
            that has AI-features enabled will be considered a violation
            of academic integrity.You can disable AI features in IDEs
            and then use those IDEs without any issues.
 
          - Use of such tools presents ethical and academic dishonesty
            issues, especially if the work is presented as your own.
            Again, submitted work that is not your own is an academic
            standards violation and will be reported to the Academic
            Standards Office. 
 
          - If you do use generative AI software, you will be
            responsible for any incorrect, biased, or unethical
            information that is submitted.  
           
        
        - 
          
          We take the honor code quite seriously. Any attempts at
          copying or sharing code, algorithms, or other violations of
          the academic standards 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 Academic
          Standards Office. The penalty for cheating will always be far
          worse than a zero grade, to ensure it's not worth taking the
          chance. Confirmed violations of the Academic Standards
            Code or the CS Honor Code are usually Level 2 violations
            which always result in course failure.  
 
      
     
    3.2 Privacy
    
      -  All course materials posted to Canvas 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,
        ethnic national origin, sex, disability, military status
        (including veteran status), sexual orientation, gender identity,
        gender expression, age, marital status, pregnancy status,
        genetic information, or any other identity category. If you
        encounter any barriers to your inclusion, please contact the
        professor.
        
        You can also get assistance by contacting GMU's
        
        Office of Access, Compliance, and Community
        
        (703-993-8730; https://oacc.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