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
Supplementary material be uploaded
Evaluation
Examination
Exam prerequisites:
None
Type of exam:
Individual oral exam, 20 minutes.
During the semester, the student must produce a project, which must be submitted in Itslearning prior to the exam.
For the oral exam, the student draws one of the topics from the curriculum, which will be discussed based on the project.
The assessment is based solely on the student's oral performance.
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
01-08-2023 00:00
Course type
7. semester<br/>Electives<br/>
Keywords
Compiler Design and Implementation, Programming Language Description, Context-Free Grammars, Syntax Checking, Semantic Checking, Runtime Organization, Code Generation