Module details for Languages and Compilers


This module provides the student with the theory, knowledge, skills and critical framework to understand the role of languages, compilers and virtual machines, particularly for OO languages but also in relation to other programming paradigms. The student will also be exposed to a compiler writing technology that they can use to create their own languages and compilers for use in a workflow pipeline.


The aim of this Module is to provide the student with the ability to review, develop, critically evaluate and implement programming languages.

Learning Outcomes

By the end of this module the student should be able to:

1.  compare and contrast programming languages and paradigms

2.  explain type systems and runtime support for modern programming languages

3.  interpret language BNF/EBNF specifications, defining BNF for small languages

4.  explain and exemplify the functional and information architecture of a compiler

5.  design and implement compilers for small languages

Indicative Content

1 Programming languages and paradigms

imperative; procedural; object-oriented; functional; logic.

2 OO virtual machine operation

processing; stack and heap memory management; type compatibility rules; type management; security.

3 Language specification

formal syntax and informal semantics; Grammars; BNF and EBNF; derivation sequence; LL(1) specifications; the LL() condition.

4 Compiler architecture and organisation

general structure; functional components; data structures for inter-component communication; an OO architecture; scanner implementation using an FSM.

5 Recursive-descent (RD) compiling

RD primitives; RD recognisers; EBNF to code transformations; parser as scanner, semantic analysis and artefact generation driver; semantic analysis; scope and symbol tables; artefact generation strategies.

Teaching and Learning Work Loads

For session 2020/21 the expectation is that the teaching and learning hours stated in this descriptor will form a mix of synchronous and asynchronous student/staff activity, with the majority of this being online. The exact pattern of this activity is likely to vary from the standard face-to-face hours listed below but the overall student effort remains the same. Up-to-date information on the delivery of the module can be found on the relevant module MLS site and on your student timetable.

Teaching and Learning Method Hours
Lecture 24
Tutorial/Seminar 0
Practical Activity 36
Assessment 72
Independent 68
Total 200

Guidance notes

SCQF Level - The Scottish Credit and Qualifications Framework provides an indication of the complexity of award qualifications and associated learning and operates on an ascending numeric scale from Levels 1-12 with SCQF Level 10 equating to a Scottish undergraduate Honours degree.

Credit Value – The total value of SCQF credits for the module. 20 credits are the equivalent of 10 ECTS credits. A full-time student should normally register for 60 SCQF credits per semester.


We make every effort to ensure that the information on our website is accurate but it is possible that some changes may occur prior to the academic year of entry. The modules listed in this catalogue are offered subject to availability during academic year 2020/21 , and may be subject to change for future years.