University of Arizona, Department of Computer Science

CSc 453: Compilers and Systems Software

Spring 2016


Quick Links:   Assignments   |   μC language spec   |   Documentation & Tutorials   |   Piazza
Course Description This course covers the design and implementation of translator-oriented systems software, focusing in particular on compilers. Topics covered include lexical analysis, parsing, and syntax-directed code generation, as well as interpreters and just-in-time (JIT) compilers.

Note: This class has a significant programming component.

This paper discusses some of the reasons (there are more than one might think) why Compiler Design matters in a Computer Science education.

Course Objectives and Expected Learning Outcomes
  • An understanding of the implementation of C-like programming languages, including the process by which programs are compiled from source code to machine code and the relationship between constructs in the source code and entities in the executing program;
  • an understanding of syntax-directed translation between structured languages; and
  • the ability to design, build, test, and debug a large and complex piece of software using modern software development tools (e.g., flex, bison, make, gdb).
Prerequisites Courses: CSc 345 and CSc 352. CSc 372 is recommended.

Knowledge: Proficiency in programming using C. Familiarity with software development in a Unix/Linux environment, including tools such as editors, debuggers, make, etc.

Meeting Times and Places:
  • Lectures: MW 11:00am–12:15pm, in Gould-Simpson 906. These lectures focus on the conceptual underpinnings of the course.
  • Discussion section: Fri 12:00pm–1:15pm in Gould-Simpson 906. This meeting focuses on the practical details of the semester-long class project.
Textbook: [optional] T. Mogensen, Introduction to Compiler Design. A free version of this book is available online as Basics of Compiler Design.
Instructor
Saumya Debray
Email: debray at email dot arizona dot edu
Office: Gould-Simpson 735; phone: 621-4527
Office Hours:
MW12:30–2:00 pm; or by appointment
(I also have office hours on TuTh 1:30–3:00, but students from CSC 352 will have priority during this time.)
Teaching Assistant
Steven Brener
Email: stevenbrener at email dot arizona dot edu
Office: Gould-Simpson 934
Office Hours:
Mon12:30–2:00
Wed12:30–2:00
Thu2:00–3:00;
Fri1:30–4:30;
or by appointment.
General Information Class Policies
Grading Policies and Procedure
Course Topics
Documentation and Tutorials
Class Notes
Important Dates
Project General information
μC language spec
Assignments
Communication Announcements (and, more generally, communications) outside class hours will be made through Piazza. Please sign up for this class in Piazza if you have not done so already.

It is your responsibility to make sure that you are signed up for this class in Piazza and to read postings and announcements in a timely manner. Not doing so is not an acceptable reason for failing to meet any announced changes to specifications or deadlines.

Piazza: Signup link  |  Class link.

Accessibility and Accommodations It is the University's goal that learning experiences be as accessible as possible. If you anticipate or experience physical or academic barriers based on disability or pregnancy, please let me know immediately so that we can discuss options. You are also welcome to contact Disability Resources (520-621-3268) to establish reasonable accommodations. For additional information on Disability Resources and reasonable accommodations, please visit http://drc.arizona.edu/.

If you have reasonable accommodations, please plan to meet with me by appointment or during office hours to discuss accommodations and how my course requirements and activities may impact your ability to fully participate.

Please be aware that the accessible table and chairs in this room should remain available for students who find that standard classroom seating is not usable.

Code of Conduct The Arizona Board of Regents’ Student Code of Conduct, ABOR Policy 5-308 prohibits threats of physical harm to any member of the University community, including oneself (link).

Students are expected to adhere to the Computer Science Department's Code of Conduct, which is available here.

Student Code of Academic Integrity Students are encouraged to share intellectual views and discuss freely the principles and applications of course materials. However, graded work/exercises must be the product of independent effort unless otherwise instructed. Students are expected to adhere to the UA Code of Academic Integrity as described in the UA General Catalog (http://deanofstudents.arizona.edu/policies-and-codes/code-academic-integrity).

The class policy on academic integrity, including permissible and impermissible actions and penalties for violations, is available here.

Additional Resources for Students UA Non-discrimination and Anti-harassment policy: http://policy.arizona.edu/human-resources/nondiscrimination-and-anti-harassment-policy

Student Assistance and Advocacy information is available at: http://deanofstudents.arizona.edu/student-assistance/students/student-assistance.

Confidentiality of Student Records: http://www.registrar.arizona.edu/ferpa/ferpa-compliance


Note: Information contained in the course syllabus, other than the grade and absence policy, may be subject to change with advance notice, as deemed appropriate by the instructor.