Outline
- The date and structure of the first class will be announced.
Location & Times
- The classes are Wednesdays and Fridays 12:30 - 1:50. Classes are neither recorded nor streamed.
- My office hour is Wednesdays 2 - 3; I am also generally available after the Friday class.
Prerequisites
Undergraduate courses in
- Compiler Construction, like McMaster's COMPSCI 3TB3
- Computer Architecture, covering Computer Architecture: A Quantitative Approach by Hennessy and Patterson
- Programming Languages, like McMaster's COMPSCI 3MI3
Students without those prerequisites may still take this course, but will be asked to make up the material. This requires extra work.
Course Objectives
The course covers selected techniques in compiler construction that are established, but typically not covered in undergraduate courses, as well as emerging techniques. As compiler construction is a highly specialized topic, this course prepares students for both development and research. Some lectures and assignments are in traditional format; the emphasis is on indepedent research and presentation. Research and presentation skills will be practiced. Student will work with a minimal language and accompanying compiler designed for teaching as well as large existing compilers.
Required Reading
- Course Notes
- at jhub4tb3.cas.mcmaster.ca (not online yet)
- More to be announced
- ...
Further Reading
- Donald Knuth, Literate Programming, Computer Journal, 1984.
- Justin Zobel, Writing for Computer Science, 3rd edition. Springer-Verlag, 2014. Author's page with related books.
- How to give a great research talk (See also the "Other resources" tab)
- McMaster University's Guide for the Preparation of Theses
- William Strunk, E. B. White. The Elements of Style. Macmillan, fourth edition, 2000. (McMaster Campus Store has copies)
- The Chicago Manual of Style. University of Chicago Press, seventeenth edition, 2017.
- The Meriam-Webster online dictionary and thesaurus
Tentative List of Topics
- Advanced parsing techniques
- Correctness of compilation
- Compilation of classes, inheritance, dynamic binding
- Compilation of generic types and dependent types
- Implementation of maps, strings, sets, sequences, inductive types, etc.
- Separate compilation
- Register code generation and optimization
- Implementation of concurrency
- Garbage collection and memory compaction
- Intermediate representations
- Safety of execution
- Verifying compilers
Alterations might take place as the course progresses.
Format and Attendance
- The lecture will be informal and interactive based on the instructor's Jupyter notebooks and other souces.
- The assignments have to be completed in the first half of the course.
- You are asked to present one assigned project in the second half of the course; details will be communicated.
- You are expected to attend all lectures and participate actively.
- If you miss one lecture without explanation, you will be asked to withdraw from the course.
Tentative Evaluation
- 3 Assignments, 20% each.
- Project with Presentation, 40%.
- If you MSAF any grade component, you get an extension.
Material and Fees
- The course notes are freely available on the JupyterHub server. They can either be used remotely or can be downloaded. While you only need a web browser to access the course notes, it is recommended that you install Jupyter and extensions on your computer for offline reading of the course notes. All software used in this course is freely available.
- You are asked to bring a laptop computer for your project presentation. Since the course notes are electronic and interactive, you may use your computer in the lectures, provided that you are not distractive to those around you.
Bibliographies
On-line Elements
This course uses on-line elements (e-mail, Teams, JupyterHub). Students should be aware that, when they access the electronic components of a course using these elements, private information such as first and last names, user names for the McMaster e-mail accounts, and program affiliation may become apparent to all other students in the same course. The available information is dependent on the technology used. Continuation in a course that uses on-line elements will be deemed consent to this disclosure. If you have any questions or concerns about such disclosure please discuss this with the course instructor.
Academic Dishonesty
- Assignments are to be completed individually; they must constitute your own work and references to all used resources must be given. Details are announced with each assignment.
- Academic dishonesty consists of misrepresentation of deception or by other fraudulent means and can result in serious consequences, e.g. the grade of zero on all assignments, loss of credit with a notation on the transcript (notation reads: "Grade of F is assigned for academic dishonesty"), and/or suspension or expulsion from the university.
- It is your responsibility to understand what constitutes academic dishonesty. For information on the various kinds of academic dishonesty please refer to the Academic Integrity Policy, specifically Appendix 3. The following illustrates only three forms of academic dishonesty:
- Submission of work that is fully or partly copied from someone else, or making your work available for copying to others.
- Submission of work that has been fully or partly obtained from other sources like the Internet.
- Copying or using unauthorized aids in tests and examinations.
- All submitted assignments are always checked for similarities.
Conduct Expectations
- As a McMaster graduate student, you have the right to experience, and the responsibility to demonstrate, respectful and dignified interactions within all of our living, learning and working communities. These expectations are described in the Code of Student Rights & Responsibilities (the “Code”). All students share the responsibility of maintaining a positive environment for the academic and personal growth of all McMaster community members, whether in person or online.
- It is essential that students be mindful of their interactions online, as the Code remains in effect in virtual learning environments. The Code applies to any interactions that adversely affect, disrupt, or interfere with reasonable participation in University activities. Student disruptions or behaviours that interfere with university functions on online platforms (e.g. use of Avenue 2 Learn, WebEx or Zoom for delivery), will be taken very seriously and will be investigated. Outcomes may include restriction or removal of the involved students’ access to these platforms.
Academic Accomodation of Students with Disabilities
Academic Accomodation for Religious, Indigienous, or Spiritual Observances (RISO)
Students requiring academic accommodation based on religious, indigenous or spiritual observances should follow the procedures set out in the RISO policy. Students should submit their request to their Faculty Office normally within 10 working days of the beginning of term in which they anticipate a need for accommodation or to the Registrar's Office prior to their examinations. Students should also contact their instructors as soon as possible to make alternative arrangements for classes, assignments, and tests.
Copyright and Recording
- Students are advised that lectures, demonstrations, performances, and any other course material provided by an instructor include copyright protected works. The Copyright Act and copyright law protect every original literary, dramatic, musical and artistic work, including lectures by University instructors
- The recording of lectures, tutorials, or other methods of instruction may occur during a course. Recording may be done by either the instructor for the purpose of authorized distribution, or by a student for the purpose of personal study. Students should be aware that their voice and/or image may be recorded by others during the class. Please speak with the instructor if this is a concern for you.
Extreme Circumstances
The University reserves the right to change the dates and deadlines for any or all courses in extreme circumstances (e.g., severe weather, labour disruptions, etc.). Changes will be communicated through regular McMaster communication channels, such as McMaster Daily News, A2L and/or McMaster email.
|