Undergraduate Course: Compiling Techniques (INFR09007)
Course Outline
School | School of Informatics |
College | College of Science and Engineering |
Course type | Standard |
Availability | Available to all students |
Credit level (Normal year taken) | SCQF Level 9 (Year 3 Undergraduate) |
Credits | 10 |
Home subject area | Informatics |
Other subject area | None |
Course website |
http://www.inf.ed.ac.uk/teaching/courses/ct |
Taught in Gaelic? | No |
Course description | This course describes the phases of a modern programming language compiler with an emphasis on widely-used techniques. The course project will require students to implement fragments of a compiler for an imperative programming language. |
Entry Requirements (not applicable to Visiting Students)
Pre-requisites |
|
Co-requisites | |
Prohibited Combinations | |
Other requirements | Successful completion of Year 2 of an Informatics Single or Combined Degree, or equivalent by permission of the School.
This course has the following mathematics prerequisites:
1 - General background: integers/real numbers, set theory: union, intersection,...
2 - Graph theory, in particular, directed/undirected graphs, cyclic/acyclic graphs, labeled graphs, trees, subgraph isomorphism, graph colouring.
3 - Algebraic structures, in particular, lattices and join/meet. |
Additional Costs | None |
Information for Visiting Students
Pre-requisites | None |
Displayed in Visiting Students Prospectus? | Yes |
Course Delivery Information
|
Delivery period: 2011/12 Semester 2, Available to all students (SV1)
|
WebCT enabled: No |
Quota: None |
Location |
Activity |
Description |
Weeks |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
Central | Lecture | | 1-11 | | | | 14:00 - 14:50 | | Central | Lecture | | 1-11 | 14:00 - 14:50 | | | | |
First Class |
Week 1, Monday, 14:00 - 14:50, Zone: Central. AT LT3 |
Exam Information |
Exam Diet |
Paper Name |
Hours:Minutes |
|
|
Main Exam Diet S2 (April/May) | | 2:00 | | | Resit Exam Diet (August) | | 2:00 | | |
Summary of Intended Learning Outcomes
1 - Understanding of the processes involved in compilation, and knowledge of the techniques applied.
2 - Analysis of compilation tasks.
3 - Implementation of compilation algorithms. |
Assessment Information
Written Examination 75
Assessed Assignments 25
Oral Presentations 0
Assessment
Two practical compiler exercises.
If delivered in semester 1, this course will have an option for semester 1 only visiting undergraduate students, providing assessment prior to the end of the calendar year. |
Special Arrangements
None |
Additional Information
Academic description |
Not entered |
Syllabus |
*Introduction: structure of a compiler.
*Lexical analysis: tokens, regular expressions, Lex.
*Parsing: context-free grammars, predictive and LR parsing, Yacc.
*Abstract syntax: semantic actions, abstract parse trees.
*Semantic analysis: symbol tables, bindings, type-checking.
*Stack frames: representation and abstraction.
*Intermediate code: representation trees, translation.
*Basic blocks and traces: canonical trees and conditional branches.
*Instruction selection: algorithms for selection, RISC and CISC.
*Liveness analysis: solution of dataflow equations.
*Register allocation: colouring by simplification, coalescing.
*Advanced Topics
Relevant QAA Computing Curriculum Sections: Compilers and Syntax Directed Tools |
Transferable skills |
Not entered |
Reading list |
* Andrew W. Appel, Modern Compiler Implementation, Cambridge University Press, 1998. Three versions of this book are available which present code fragments from the compiler in the languages C, Standard ML and Java. Students should use whichever version of the book they prefer.
* Alfred V. Aho, Ravi Sethi, Jeffrey D, Ullman, Compilers: Principles, Techniques and Tools. Addison Wesles, 1986.
* Steven Muchnick, Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997
* Reinhard, Wilhelm, Dieter Maurer, Compiler Design. Addison Wesley, 1995.
* Charles N. Fischer, Richard J. LeBlank, Jr., Crafting a Compiler in C. Benjamin/Cummings, 1991.
* Keith Cooper, Linda Torczon, Engineering a Compiler, Morgan Kaufmann
|
Study Abroad |
Not entered |
Study Pattern |
Lectures 18
Tutorials 0
Timetabled Laboratories 0
Non-timetabled assessed assignments 30
Private Study/Other 52
Total 100 |
Keywords | Not entered |
Contacts
Course organiser | Dr Nigel Goddard
Tel: (0131 6)51 3091
Email: Nigel.Goddard@ed.ac.uk |
Course secretary | Miss Tamise Totterdell
Tel: 0131 650 9970
Email: t.totterdell@ed.ac.uk |
|
© Copyright 2011 The University of Edinburgh - 16 January 2012 6:16 am
|