COP-5621 Compiler Construction
Syllabus
Table of Contents
Course Information
- Spring 2023
- Section 1
- University of Central Florida
- Prerequisite(s): COP-4020 and COT-4210
Personnel
- Instructor: Paul Gazzillo paul.gazzillo@ucf.edu
Office Hours
- Asynchronously over slack
- By appointment
Course Meeting Times
- Attendance is required
- This is a small graduate class, which allows for discussion and student-driven pacing and augmentation of content.
- No online component is planned.
- MW 3:00-4:15PM ENG1 O383
- Semester: 01/09/2023-05/02/2023
- Final exam period: 04/26 (1pm-3:50pm)
- No class: 01/16, 03/13 and 03/15 (Spring break)
Course Description
In this course, we will cover classic compiler design and implementation as well as advanced topics in programming language analysis and implementation. This course goes beyond undergraduate compilers to provide students with a deeper understanding and facility for how programming languages features are designed, implemented, and automatically analyzed.
Course Schedule
# | Date | Monday | Wednesday |
---|---|---|---|
1 | 01/09 | Course overview and setup | Compilers overview |
2 | 01/16 | (no class) | Syntax and parser generators I |
3 | 01/23 | Syntax and parser generators II | Syntax and parser generators III |
4 | 01/30 | SimpleC language overview | Type checking I |
5 | 02/06 | Type checking II | Type checking III |
6 | 02/13 | Type checking IV | Code generation I |
7 | 02/20 | Code generation II | Classes and objects I |
8 | 02/27 | Classes and objects II | (no class) |
9 | 03/06 | Classes and objects III | Classes and objects IV |
Break | 03/13 | (no class) | (no class) |
10 | 03/20 | Static analysis I | Static analysis II |
11 | 03/27 | Static analysis III | Static analysis IV |
12 | 04/03 | Special topics: satisfiability | Special topics: configuration analysis |
13 | 04/10 | Special topics: functional languages I | Special topics: functional languages II |
14 | 04/17 | Guest lecture: Brent Pappas | Special topics |
Final | 04/24 | Special topics: history of programming languages | Presentations (1pm-3:50pm) |
The exact schedule may change slightly during the semester to improve pacing for students, accomodate student requests, etc.
Special topics will include topics on program transformation, analysis of configurable software, guest lectures, and topics based on a student interest.
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
- Michael Hicks, Program Analysis and Understanding
- Wes Weimer and Hannah Potter, Advanced Programming Languages
- Paul Gazzillo, Systems Software
Coursework
- 25% Quizzes for attendance
- Very brief quiz per class that doubles 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 the compiler for our simple language
- Implemented on your own
- 25% Personal project
- Select and implement your own project
- Turn it in and present near the end of the 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
- 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.
- 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.
- 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.
- Falsifying or misrepresenting the student’s own academic work.
- 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.
- Multiple Submissions: Submitting the same academic work for credit more than once without the express written permission of the instructor.
- Helping another violate academic behavior standards.
- 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.