Module Database Search



MODULE DESCRIPTOR
Module Title
Languages and Compilers
Reference CMM306 Version 3
Created February 2024 SCQF Level SCQF 11
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 compilers.

Learning Outcomes for Module
On completion of this module, students are expected to be able to:
1 Analyse language syntax specifications and semantics.
2 Evaluate the structure and phases of a range of compilation processes and techniques.
3 Deal with the relationships between target platform architecture, compilers and programming language design.
4 Create lexical and syntax analysis of a given language using appropriate techniques.
5 Construct a code generating compiler for a given source language and 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 44 N/A
Non-Contact Hours 106 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: This coursework comprises the implementation of a complete, working compiler.

MODULE PERFORMANCE DESCRIPTOR
Explanatory Text
There are two assessment componets: 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