Engelsk   Dansk
Velkommen til Københavns Universitets kursuskatalog

NDAA09032U  Advanced Language Processing Volume 2014/2015

Course information

LanguageEnglish
Credit7,5 ECTS
LevelFull Degree Master
Duration1 block
Placement
Block 3
Schedule
C (Mon 13-17 + Wednes 8-17)
Course capacityNo limit
Continuing and further education
Study boardStudy Board of Mathematics and Computer Science
Contracting department
  • Department of Computer Science
Course responsible
  • Torben Ægidius Mogensen (7-7873766669727144686d326f7932686f)
Saved on the 04-12-2014
Content

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.
Learning Outcome


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.

Literature

See Absalon when the course is set up.

Teaching and learning methods
Lectures and sessions with discussion and problem solving. Project work and seminar presentations.
Academic qualifications
The student must be familiar with different programming language paradigms corresponding to the content of the course "Advanced Programming" and have a basic understanding of computer architecture and programming language implementation, including lexing, parsing and code generation.
Sign up
Self Service at KUnet
Exam
Credit7,5 ECTS
Type of assessment
Continuous assessment
The 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.
AidAll aids allowed
Marking scale7-point grading scale
Censorship formNo external censorship
Several internal examiners.
Re-examResubmission 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.
Workload
CategoryHours
Seminar1
Lectures18
Theory exercises15
Project work30
Colloquia15
Preparation127
Total206
Saved on the 04-12-2014