Module Database Search



MODULE DESCRIPTOR
Module Title
Languages and Compilers
Reference CM4106 Version 4
Created September 2023 SCQF Level SCQF 10
Approved April 2017 SCQF Points 15
Amended April 2024 ECTS Points 7.5

Aims of Module
This module will provide students with the theory, knowledge and skills that will provide them with a critical understanding of programming language design and facilitate in the implementation of simple compilers.

Learning Outcomes for Module
On completion of this module, students are expected to be able to:
1 Conceptualise language syntax specifications and semantics.
2 Communicate the structure and phases of a conventional compilation process.
3 Critique the relationships between target platform architecture, compilers and programming language design.
4 Develop lexical and syntax analysis of a given language using appropriate techniques.
5 Invent a code generating compiler for a simple source language and a simple target architecture.

Indicative Module Content
This module will cover the theoretical knowledge and practical skills required to understand and construct conventional compilers for bespoke programming languages. The module will cover 4 main topics in language compiler and development. 1) Language Specification - Syntax and semantics, language grammar, derivation sequences. 2) Compiler Architecture - components, phases and general structures of compilers, including FSM approach and phase interactions 3) Analysis - Lexical, Syntax and semantic analysis as a compiler phase. Recursive descent compilation. Error detection 4) Code / Artefact Generation - generation of target platform code or artefact.

Module Delivery
Key concepts are introduced and illustrated through lectures and directed reading. The understanding of students is tested and further enhanced through interactive tutorials. In the laboratories, the student will progress through a sequence of exercises to develop sufficient knowledge and skills in language design and compiler development.

Indicative Student Workload Full Time Part Time
Contact Hours 30 N/A
Non-Contact Hours 120 N/A
Placement/Work-Based Learning Experience [Notional] Hours N/A N/A
TOTAL 150 N/A
Actual Placement hours for professional, statutory or regulatory body    

ASSESSMENT PLAN
If a major/minor model is used and box is ticked, % weightings below are indicative only.
Component 1
Type: Examination Weighting: 50% Outcomes Assessed: 1, 2, 3
Description: A written exam.
Component 2
Type: Coursework Weighting: 50% Outcomes Assessed: 4, 5
Description: A coursework which involves the implementation of a complete, working compiler.

MODULE PERFORMANCE DESCRIPTOR
Explanatory Text
There are two assessment components: a written examination worth 50% and a coursework worth 50%. The minimum grade to pass the module is D.
Examination:
Coursework: A B C D E F NS
A A A B B C E
B A B B C C E
C B B C C D E
D B C C D D E
E C C D D E E
F E E E E E F
NS Non-submission of work by published deadline or non-attendance for examination

Module Requirements
Prerequisites for Module CM3113 Concurrent Programming or equivalent.
Corequisites for module None.
Precluded Modules None.

INDICATIVE BIBLIOGRAPHY
1 Watt, D.A., Brown, D.F. and Brown, D., 2000. Programming language processors in Java: compilers and interpreters. Pearson Education.
2 Lam, M., Aho, A.V., Sethi, R. and Ullman, J.D., 2013, Compilers: principles, techniques and tools. 2nd edition, Addison Wesley
3 Abelson, H. and Sussman, G.J., 1996. Structure and interpretation of computer programs. The MIT Press.


Robert Gordon University, Garthdee House, Aberdeen, AB10 7QB, Scotland, UK: a Scottish charity, registration No. SC013781