Catalogue of Modules, University of Nottingham

G52CMP Compilers
(Last Updated:03 May 2017)

Year  09/10

Total Credits: 10

Level: Level 2

Target Students:  Second year undergraduate students in the School of Computer Science and in the School of Mathematics.  Available to JYA/Erasmus students.

Taught Semesters:

Spring Assessed by end of Spring Semester 

Prerequisites: Some experience in functional programming is desirable.

G51PRG Programming 
G52MAL Machines and their Languages 

Corequisites:  None.

Summary of Content:  Aspects of language and compiler design are examined by looking at the techniques and tools that are used to construct compilers for high level programming languages. A particular emphasis is placed on the use of formal techniques for specifying the syntax and semantics of the source language. The course retains a practical focus by exploring the implementation of a working compiler. Functional programming notation is used throughout to minimize the gap between specification and implementation, and to facilitate the presentation of symbolic algorithms.

Module Web Links:
  • Reading List
  • Method and Frequency of Class:

    ActivityNumber Of WeeksNumber of sessionsDuration of a session
    Lecture 12 weeks2 per week1 hour
    Computing 12 weeks1 per week2 hours

    Activities may take place every teaching week of the Semester or only in specified weeks. It is usually specified above if an activity only takes place in some weeks of a Semester

    Method of Assessment: 

    Assessment TypeWeightRequirements
    Exam 1 75 2 hr written examination 
    Coursework 1 25 Written reports 

    Dr H Nilsson

    Education Aims:  To provide an understanding of how compilers work and how they are constructed.

    Learning Outcomes:  Knowledge and Understanding: Knowledge of language and compiler design. Understanding of the problems to be faced and the techniques and tools which may be used in the construction of medium sized programs. Intellectual Skills: The ability to define and construct syntax-directed translation schemes and specifications. Understand complex ideas and relate them to specific problems or questions. The ability to gather information on and analyse the structure of medium sized computer programs. Professional Skills: Programming in various paradigms. Comprehend and apply software engineering methodologies, in particular capturing design through formal specifications and deriving implementations from those. Evaluate available tools, applications, algorithms and data structures, and select those that are fit for purpose within a given domain, in particular tools for syntax analysis and syntax-directed translation. Transferable Skills: The ability to use mathematics to solve problems and write detailed reports on the solutions adopted.

    Offering School:  Computer Science

    Use the Back facility of your browser to return to the previous page.

    Module Catalogue Search for another module

    [UoN Welcome Page] Return to The University of Nottingham Welcome Page