Compilers
CIS*4650 (W10)


Course Outline

General Information

Regular classes: January 11, 2010 to April 9, 2010
Final Exam: April 15, 2010 @ 1900h (MACK 227)

Instructor : David McCaughan (REYN 210 ext: 56467)
e-mail: dbm@uoguelph.ca
Office hours: by appointment (or see me after class)
Teaching Assistant : Saira Ahmad (REYN 212 ext: 54463)
e-mail: ahmads@uoguelph.ca
Office hours: F 1300-1500
Lectures : TTh 1600-1720 ROZH 108
Seminar : Th 1300--1350 ROZH 107
Discussion Forums : CIS Moodle Server
Web Page : http://www.usrlocal.ca/~dbm/teaching/CIS4650/


Overview

This course will provide an overview of programming language paradigms and formalism followed by a detailed study of the compilation process for a procedural language. Students will develop an understanding of compiler design by considering fundamental issues such as as parsing, building and manipulating intermediate representations of a program and code generation. These principles will be put into practice through the construction of a fully functioning compiler or interpreter for a small procedural language using widely available tools for compiler construction and a general purpose programming language. Assignments are designed to reinforce various concepts that are typically abstracted by tools during compiler construction in order to provide the student with a complete picture of the compiler design and implementation process.

Students entering this course are expected to have a solid grasp of modular programming and familiarity with assembly language and basic computer architecture (i.e. registers, memory organization, etc.). Experience with the development of a large software project such as that provided by CIS*3750 or CIS*3760 is also beneficial.

See calendar description for additional information (including prerequisites). Note that I do not consider CIS*3620 to be an important pre-requisite in order to succeed in this course.


Evaluation

NOTE:
Required Text

Alfred V. Aho, Monica S. Lam, Ravi Sethi and Jeffrey D. Ullman, Compilers: Principles, Techniques and Tools (2e). Addison-Wesley, 2006 (ISBN 0-321-48681-1).


Recommended Text

One of:


Academic Misconduct in Computing

It is the policy of this department to treat cases of academic misconduct seriously. This statement is intended to clarify our policies with regard to academic misconduct in courses taken in the Department of Computing and Information Science, and to clarify penalties for offenses as outlined in the document, Penalties for Academic Misconduct: Dean's Guidelines, dated February 13, 1996 (all factual information and quoted material herein is based on this document; students are free to review these guidelines by contacting the Dean's Office). It is policy that all suspected cases of academic misconduct are referred to the Chair of the department for consideration and referral to the Dean of the college.

The Dean's Guidelines identify four offenses: plagiarism, misrepresentation, examination cheating and impersonation. The most common forms of misconduct exhibited in Computing are misrepresentation, and to a lesser extend plagiarism.

Plagiarism: is the "verbatim copying or close paraphrasing of another person's work without full and formal acknowledgement". Specificially, this involves material from a book, research paper or other source being used without acceptable referencing of the source material. This includes the use of segment of code or non-standard algorithms that were obtained by a student from a third party source, and used without permission and/or proper references. Penalties for plagiarism range from 0 on the assignment in question for minor first offenses to debarment and expulsion for subsequent offenses.

Misrepresentation: refers to the submission of material created by someone other than the student. This includes the copying of another students' source code, in part or in whole, or submitting assignments from previous offerings of the course. The Dean's Guidelines make it clear that "A student producing work in the knowledge that it will be submitted by another student as that student's work is also subject to penalty". Misrepresentation is a very serious offense, with penalties ranging from 0 for the course "...if a student submits material created by someone other than the student, whether purchased or not, the intent being to pass off that work as one's own", to expulsion for subsequent offenses.

Examination Cheating and Impersonation are less common, however carry similarly serious penalties.

Note that we encourage students to collectively discuss design issues or strategies for problem solving related to assignments. What is expected however is that the written work and implementations resulting from these discussions be independently produced by each student. Note that both the student who gives their work to another student, or leaves work where others may find it, and the student who uses the work are implicated to varying degrees. Please take care not to leave your work around, or leave a workstation without logging off. It is ultimately your responsibility to protect the integrity of your own work.


Last Modified: 2009 / 03/ 29