THE UNIVERSITY of EDINBURGH

DEGREE REGULATIONS & PROGRAMMES OF STUDY 2011/2012
- ARCHIVE for reference only
THIS PAGE IS OUT OF DATE

University Homepage
DRPS Homepage
DRPS Search
DRPS Contact
DRPS : Course Catalogue : School of Informatics : Informatics

Undergraduate Course: Compiling Techniques (INFR09007)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Course typeStandard AvailabilityAvailable to all students
Credit level (Normal year taken)SCQF Level 9 (Year 3 Undergraduate) Credits10
Home subject areaInformatics Other subject areaNone
Course website http://www.inf.ed.ac.uk/teaching/courses/ct Taught in Gaelic?No
Course descriptionThis 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-requisitesNone
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
CentralLecture1-11 14:00 - 14:50
CentralLecture1-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
KeywordsNot entered
Contacts
Course organiserDr Nigel Goddard
Tel: (0131 6)51 3091
Email: Nigel.Goddard@ed.ac.uk
Course secretaryMiss Tamise Totterdell
Tel: 0131 650 9970
Email: t.totterdell@ed.ac.uk
Navigation
Help & Information
Home
Introduction
Glossary
Search DPTs and Courses
Regulations
Regulations
Degree Programmes
Introduction
Browse DPTs
Courses
Introduction
Humanities and Social Science
Science and Engineering
Medicine and Veterinary Medicine
Other Information
Timetab
Prospectuses
Important Information
 
© Copyright 2011 The University of Edinburgh - 16 January 2012 6:16 am