THE UNIVERSITY of EDINBURGH

DEGREE REGULATIONS & PROGRAMMES OF STUDY 2017/2018

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

Undergraduate Course: Compiling Techniques (INFR10065)

Course Outline
SchoolSchool of Informatics CollegeCollege of Science and Engineering
Credit level (Normal year taken)SCQF Level 10 (Year 3 Undergraduate) AvailabilityAvailable to all students
SCQF Credits20 ECTS Credits10
SummaryThis 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 a complete compiler from scratch for a simple programming language, targeting a real machine assembly such as MIPS. Students will also learn about implementing a compiler pass in a
real compiler framework.

This 20 credit course replaces Compiling Techniques (INFR10053) - 10 credit version.
Course description * Introduction: structure of a compiler
* Lexical analysis: tokens, regular expressions, Lex
* Parsing: context-free grammars, predictive and LR parsing
* 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
* Real assembly language: ARM or MIPS
* Advanced Topics may include: automatic parallelisation, popular
open-source compilers: GCC, LLVM


This 20 credit course replaces Compiling Techniques (INFR10053) - 10 credits.
Entry Requirements (not applicable to Visiting Students)
Pre-requisites Co-requisites
Prohibited Combinations Students MUST NOT also be taking Compiling Techniques (INFR10053)
Other requirements This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser.
Information for Visiting Students
Pre-requisitesSee above.
High Demand Course? Yes
Course Delivery Information
Academic year 2017/18, Available to all students (SV1) Quota:  None
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 200 ( Lecture Hours 33, Seminar/Tutorial Hours 11, Programme Level Learning and Teaching Hours 4, Directed Learning and Independent Learning Hours 152 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Additional Information (Assessment) Coursework 100%.

Additional Information (Assessment)
-Four practical compiler exercises (Parser, AST + Semantic analysis,
Code generation, Coding a pass in a real compiler infrastructure).
Feedback Not entered
No Exam Information
Academic year 2017/18, Part-year visiting students only (VV1) Quota:  None
Course Start Semester 1
Timetable Timetable
Learning and Teaching activities (Further Info) Total Hours: 200 ( Lecture Hours 33, Seminar/Tutorial Hours 11, Programme Level Learning and Teaching Hours 4, Directed Learning and Independent Learning Hours 152 )
Assessment (Further Info) Written Exam 0 %, Coursework 100 %, Practical Exam 0 %
Additional Information (Assessment) Coursework 100%.

Additional Information (Assessment)
-Four practical compiler exercises (Parser, AST + Semantic analysis,
Code generation, Coding a pass in a real compiler infrastructure).
Feedback Not entered
No Exam Information
Learning Outcomes
On completion of this course, the student will be able to:
  1. Analyse compilation tasks and to apply standard compilation techniques.
  2. Develop, implement and apply modifications to standard compilation techniques and algorithms wherever this is necessary.
  3. Understand and implement design decisions in modern compilers.
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
Additional Information
Course URL http://course.inf.ed.ac.uk/ct/
Graduate Attributes and Skills Not entered
KeywordsNot entered
Contacts
Course organiserDr Christophe Dubach
Tel: (0131 6)50 3092
Email:
Course secretaryMrs Victoria Swann
Tel: (0131 6)51 7607
Email:
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
Combined Course Timetable
Prospectuses
Important Information
 
© Copyright 2017 The University of Edinburgh - 6 February 2017 8:08 pm