Print
Code
IT-CMC1
Version
3.0
Offered by
ICT Engineering
ECTS
5
Prerequisites
PRO1, PRO2 (formerly SDJ1 and IT-SDJ2) and ADS1, or similar courses.
Main purpose
The students should be able to design a simple programming language, and design and implement a compiler for the language.
Knowledge
The students will be able to:
- describe the main purposes of a compiler
- explain the differences between syntax and semantics of a programming language
- explain context free grammars
- list examples of common programming language features
Skills
The students will be able to:
- construct a context free grammar for a programming language
- define the semantics of a programming language in an informal way
- design the runtime organization for a programming language
Competences
The students will be able to:
- design a small, simple programming language
- design and implement a compiler for a small, simple programming language using various design patterns and an object oriented language for implementation
Topics
• compiler architecture
• regular expression
• context free grammars
• lexical analysis
• parsing in general
• recursive descent parsing
• abstract syntax trees
• runtime organization
• code generation
Teaching methods and study activities
The course has 44 classroom lessons. These lessons consist teacher presentations and project guidance. There is a single project for the whole semester. The total workload of the student is expected to be around 140 hours.
Resources
Watt&Brown, Programming Language Processors in Java – Compilers and Interpreters, Prentice Hall, 2000.
Evaluation
Examination
Exam prerequisites:
None
Type of exam:
Individual oral exam, 20 minutes.
The exam is based upon a subject found by draw, and the answers are based on the project produced in the course and handed in according to deadline.
Internal assessment.
Tools allowed:
All
Re-exam:
Same as the ordinary exam
Grading criteria
Grading according to the 7-point grading scale.
Additional information
Responsible
Jan Munch Pedersen (jpe)
Valid from
8/1/2023 12:00:00 AM
Course type
6. semester
7. semester
Electives
Web 6 og 7
Keywords
Compiler Design and Implementation, Programming Language Description, Context-Free Grammars, Syntax Checking, Semantic Checking, Runtime Organization, Code Generation