Compilers
Code | School | Level | Credits | Semesters |
COMP3012 | Computer Science | 3 | 10 | Autumn UK |
- Code
- COMP3012
- School
- Computer Science
- Level
- 3
- Credits
- 10
- Semesters
- Autumn UK
Summary
You’ll examine aspects of language and compiler design by looking at the techniques and tools that are used to construct compilers for high-level programming languages. Topics covered include parsing, types and type systems, run-time organisation, memory management, code generation and optimisation. You’ll spend around four hours each week in lectures and computer classes for this module.
Target Students
Available to Level 3 and 4 students in the School of Computer Science. This module is not available to students not listed above without explicit approval from the module convenor(s). This module is part of the Programming theme in the School of Computer Science.
Classes
- Two 1-hour lectures each week for 11 weeks
- One 2-hour computing each week for 11 weeks
Assessment
- 40% Coursework 1: Programming Assignments. Reassessment is 100% exam.Reassessment is 100% exam
- 60% Exam 1 (2-hour): 2-hr written examination.
Assessed by end of autumn semester
Educational 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.