NDAA09032U Advanced Language Processing
The course covers implementation of advanced programming
language features and methods for automatic analysis and
transformation of programs.
Topics include:
- Memory management, including garbage collection.
- Dataflow analysis.
- Implementing function calls in scoped languages, including closures.
- Implementing polymorphic types.
- Implementing logic languages.
- Various optimisation techniques.
- Program transformation methods such as partial evaluation and supercompilation.
Knowledge: Methods for implementing various
language paradigms and features and for optimising and transforming
programs using these.
Skills: Reading and presenting scientific papers
about the course topics. Implementing simple instances of
selected topics.
Competences: Understanding the impact language
design choices have on implementation and transformation of
programs.
See Absalon when the course is set up.
- Category
- Hours
- Colloquia
- 15
- Lectures
- 18
- Preparation
- 127
- Project work
- 30
- Seminar
- 1
- Theory exercises
- 15
- Total
- 206
As
an exchange, guest and credit student - click here!
Continuing Education - click here!
- Credit
- 7,5 ECTS
- Type of assessment
- Continuous assessmentThe final grade is an overall evaluation of three reports and one seminar presentation, with equal weighting.
The reports document implementation of methods presented in the course and the seminar presentation is a 45-minute long presentation of a research paper to the classroom. - Aid
- All aids allowed
- Marking scale
- 7-point grading scale
- Censorship form
- No external censorship
Several internal examiners.
- Re-exam
- Resubmission of the three report exercises and a 30-minute oral exam without preparation with questions from the lecture notes.
Criteria for exam assesment
In order to receive the grade 12, the student should be able to demonstrate mastery of the knowledge, skills and competences described under the course goals. In particular:
- Explain how advanced language features such as higher-order functions, inheritance, polymorphism and backtracking are implemented.
- Identify opportunities for optimisation and describe the required analyses and transformations to safely achieve these optimisations.
- Define selected program transformations and sketch their implementation.
- Implement instances of the above for simple languages.
Course information
- Language
- English
- Course code
- NDAA09032U
- Credit
- 7,5 ECTS
- Level
- Full Degree Master
- Duration
- 1 block
- Placement
- Block 3
- Schedule
- C (Mon 13-17 + Wednes 8-17)
- Course capacity
- No limit
- Continuing and further education
- Study board
- Study Board of Mathematics and Computer Science
Contracting department
- Department of Computer Science
Course responsibles
- Torben Ægidius Mogensen (7-7d787b6b6e7776496d7237747e376d74)