Syllabus
COP-5621 Compiler Construction

Table of Contents

COP-5621 Compiler Construction

  • Spring 2022
  • Section 1
  • University of Central Florida
  • Prerequisite(s): COP-4020 and COT-4210

Personnel

Office Hours

  • Thursday 4pm-6pm
  • No office hours during the weeks of 01/11 and 03/08
  • By appointment

Course Schedule

  • MW 3:00-4:15PM ENG1 O383
  • 01/10/2022-05/03/2022
  • Final exam period: 04/25 (1pm-3:50pm)
  • No class: 01/17, 03/07, 03/09

Course Description

In this course, we will cover classic compiler design and implementation. First, we will brainstorm a simple language and briefly cover the formal specification of a programming language. Then, we will delve into designing and implementing a compiler for the language. This consists of the traditional phases of a compiler that take the input source code through front-end language processing to back-end machine code generation. The remainder of the course will cover special topics related to modern compiler-related research.

Course Organization

Schedule

# Date Monday Wednesday
1 01/10 Course overview and setup Language design brainstorming
2 01/17 (no class) Operational semantics
3 01/24 Operational semantics Operational semantics
4 01/31 Grammars ANTLR setup
5 02/07 Parsing algorithms ASTs and tree traversals
6 02/14 Type specification Type checking
7 02/21 Backend overview Intermediate code generation
8 03/28 Intermediate code generation Peephole optimizations
Break 03/07 (no class) (no class)
9 03/14 Machine code generation Machine code generation
10 03/21 Review; personal project overview Paper reading primer
11 04/28 Special topics Special topics
12 04/04 Special topics Special topics
13 04/11 Special topics Special topics
14 04/18 Special topics Special topics
Final 04/25 Presentations Presentations (1pm-3:50pm)

Structure

  • Compiler Development (two-thirds of course)
    • Language design and specificaton
      • Language design brainstorming
      • Operational semantics overview
      • Operational semantics, defining the language
      • Operational semantics, defining the language (cont.)
    • Front-end
      • Grammars
      • ANTLR setup
      • Parsing algorithms
      • ASTSs and tree traversal
      • Type specification
      • Type checking implementation
    • Back-end
      • Overview
      • Intermediate code generation
      • Intermediate code generation (cont.)
      • Peephole optimization
      • Machine code generation
      • Machine code generation (cont.)
  • Special topics (one-third of course)

Recommended Texts

  • Compilers: Principles, Techniques, & Tools, Second Edition by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. Addison Wesley, 2007.
  • Formal Semantics of Programming Languages by Glynn Winskel, 1993.
  • The Practice of Programming by Brian W. Kernighan and Rob Pike, 1999.
  • Advanced Compiler Design and Implementation by Steven Muchnich. Morgan Kaufman, 1997.
  • Modern Compiler Implementation in C by Andrew Appel. Cambridge University Press, 1998.
  • The Definitive ANTLR 4 Reference Second Edition by Terence Parr, 2013.

Other Useful Course Material

Coursework

  • 25% Quizzes for attendance
    • Very brief quiz per class that double as attendance
    • Two unexplainable absences dropped
  • 25% Homework, readings, and class participation
    • Periodic exercises for homework or readings
    • In-class discussion for participation
  • 25% Compiler project
    • Complete compiler for simple language
    • Implemented on your own
  • 25% Personal project
    • Select and implement your own project
    • Present it at end of semester

Grading

  • Unless otherwise notified, all coursework (assignments, projects, readings, presentations, etc) should be done individually.
  • Letter grades: A >= 90%, B+ >= 87%, B >= 80%, C+ >= 77%, C >= 70%, D >= 60%, F < 60%. (minuses may be used in some cases)

Unauthorized Assistance with Coursework

Receiving a work product (e.g., a homework paper or code submitted in response to an assignment) from other individuals (other students in the course, former students, tutors, etc.) is considered "Unauthorized assistance". Giving such a work product to other individuals, either willfully or through negligence, is considered "Helping another violate academic behavior standards." Copying a work product from submissions from past semesters, or copying from an online repository is considered "Plagiarism." You are allowed to discuss class materials and high level concepts related to the assignment with others. However, you must work individually when creating the work product. For programming assignments, you must design algorithms, data structures, and develop code individually. Any violation to the above is considered Academic Integrity Violation. Students found to be in violation of academic integrity will be reported to the Office of Integrity and Ethical Development, in addition to receiving a zero grade on their assignments. Following the report, The Office may conduct hearing, and if found in violation, a student may receive penalties, up to and including dismissal from the university. Unless stated explicitly as team/group assignments, students should assume that assignments are to be performed individually, or ask the instructor for explicit clarification.

Core Policy Statements

Academic Integrity

Students should familiarize themselves with UCF’s Rules of Conduct at https://scai.sdes.ucf.edu/student-rules-of-conduct/. According to Section 1, “Academic Misconduct,” students are prohibited from engaging in

  1. Unauthorized assistance: Using or attempting to use unauthorized materials, information or study aids in any academic exercise unless specifically authorized by the instructor of record. The unauthorized possession of examination or course-related material also constitutes cheating.
  2. Communication to another through written, visual, electronic, or oral means: The presentation of material which has not been studied or learned, but rather was obtained through someone else’s efforts and used as part of an examination, course assignment, or project.
  3. Commercial Use of Academic Material: Selling of course material to another person, student, and/or uploading course material to a third-party vendor without authorization or without the express written permission of the university and the instructor. Course materials include but are not limited to class notes, Instructor’s PowerPoints, course syllabi, tests, quizzes, labs, instruction sheets, homework, study guides, handouts, etc.
  4. Falsifying or misrepresenting the student’s own academic work.
  5. Plagiarism: Using or appropriating another’s work without any indication of the source, thereby attempting to convey the impression that such work is the student’s own.
  6. Multiple Submissions: Submitting the same academic work for credit more than once without the express written permission of the instructor.
  7. Helping another violate academic behavior standards.
  8. Soliciting assistance with academic coursework and/or degree requirements.
  • Responses to Academic Dishonesty, Plagiarism, or Cheating

    Students should also familiarize themselves with the procedures for academic misconduct in UCF’s student handbook, The Golden Rule https://goldenrule.sdes.ucf.edu/. UCF faculty members have a responsibility for students’ education and the value of a UCF degree, and so seek to prevent unethical behavior and respond to academic misconduct when necessary. Penalties for violating rules, policies, and instructions within this course can range from a zero on the exercise to an “F” letter grade in the course. In addition, an Academic Misconduct report could be filed with the Office of Student Conduct, which could lead to disciplinary warning, disciplinary probation, or deferred suspension or separation from the University through suspension, dismissal, or expulsion with the addition of a “Z” designation on one’s transcript.

    Being found in violation of academic conduct standards could result in a student having to disclose such behavior on a graduate school application, being removed from a leadership position within a student organization, the recipient of scholarships, participation in University activities such as study abroad, internships, etc.

    Let’s avoid all of this by demonstrating values of honesty, trust, and integrity. No grade is worth compromising your integrity and moving your moral compass. Stay true to doing the right thing: take the zero, not a shortcut.

Course Accessibility Statement

The University of Central Florida is committed to providing access and inclusion for all persons with disabilities. Students with disabilities who need access to course content due to course design limitations should contact the professor as soon as possible. Students should also connect with Student Accessibility Services (SAS) http://sas.sdes.ucf.edu/ (Ferrell Commons 185, sas@ucf.edu, phone 407-823-2371). For students connected with SAS, a Course Accessibility Letter may be created and sent to professors, which informs faculty of potential course access and accommodations that might be necessary and reasonable. Determining reasonable access and accommodations requires consideration of the course design, course learning objectives and the individual academic and course barriers experienced by the student. Further conversation with SAS, faculty and the student may be warranted to ensure an accessible course experience. Campus Safety Statement

Emergencies on campus are rare, but if one should arise during class, everyone needs to work together. Students should be aware of their surroundings and familiar with some basic safety and security concepts.

In case of an emergency, dial 911 for assistance. Every UCF classroom contains an emergency procedure guide posted on a wall near the door. Students should make a note of the guide’s physical location and review the online version at http://emergency.ucf.edu/emergency_guide.html. Students should know the evacuation routes from each of their classrooms and have a plan for finding safety in case of an emergency. If there is a medical emergency during class, students may need to access a first-aid kit or AED (Automated External Defibrillator). To learn where those are located, see https://ehs.ucf.edu/automated-external-defibrillator-aed-locations. To stay informed about emergency situations, students can sign up to receive UCF text alerts by going to https://my.ucf.edu and logging in. Click on “Student Self Service” located on the left side of the screen in the toolbar, scroll down to the blue “Personal Information” heading on the Student Center screen, click on “UCF Alert”, fill out the information, including e-mail address, cell phone number, and cell phone provider, click “Apply” to save the changes, and then click “OK.” Students with special needs related to emergency situations should speak with their instructors outside of class. To learn about how to manage an active-shooter situation on campus or elsewhere, consider viewing this video (https://youtu.be/NIKYajEx4pk).

Campus Safety Statement for Students in Online-Only Courses

Though most emergency situations are primarily relevant to courses that meet in person, such incidents can also impact online students, either when they are on or near campus to participate in other courses or activities or when their course work is affected by off-campus emergencies. The following policies apply to courses in online modalities.

To stay informed about emergency situations, students can sign up to receive UCF text alerts by going to https://my.ucf.edu and logging in. Click on “Student Self Service” located on the left side of the screen in the toolbar, scroll down to the blue “Personal Information” heading on the Student Center screen, click on “UCF Alert”, fill out the information, including e-mail address, cell phone number, and cell phone provider, click “Apply” to save the changes, and then click “OK.” Students with special needs related to emergency situations should speak with their instructors outside of class.

Deployed Active Duty Military Students

Students who are deployed active duty military and/or National Guard personnel and require accommodation should contact their instructors as soon as possible after the semester begins and/or after they receive notification of deployment to make related arrangements. Make-Up Assignments for Authorized University Events or Co-curricular Activities

Students who represent the university in an authorized event or activity (for example, student-athletes) and who are unable to meet a course deadline due to a conflict with that event must provide the instructor with documentation in advance to arrange a make-up. No penalty will be applied. For more information, see the UCF policy at https://policies.ucf.edu/documents/4-401.pdf Religious Observances

Students must notify their instructor in advance if they intend to miss class for a religious observance. For more information, see the UCF policy at http://regulations.ucf.edu/chapter5/documents/5.020ReligiousObservancesFINALJan19.pdf.

Statement Regarding COVID-19

Please see the latest information at UCF's coronavirus information site.

Author: Paul Gazzillo

Created: 2022-01-18 Tue 01:50