Design, Definition and Implementation of Programming Languages

2024/2025

Recommended prerequisite for participation in the module

The module builds on knowledge from the project modules on 1-3. term. It is recommended that the modules Syntax and Semantics, Language and Translators and Computer Architecture and Operating Systems be followed in parallel with the project work.

Content, progress and pedagogy of the module

Disclaimer.
This is an English translation of the module. In case of discrepancy between the translation and the Danish version, the Danish version of the module is valid.

PURPOSE
That the student learns how to design and implement a programming language and how this process can be supported by formal definitions of the language's syntax and semantics and techniques and methods for translator and / or interpreter construction.

REASON
All software is written in a programming language and is translated or interpreted in order to be executed. Design, description and construction of Programming languages, translators, interpreters and similar tools are therefore central topics in computer science.

Therefore, the project work focuses on ensuring that the students understand important underlying concepts in the world of programming languages, why these concepts have arisen and how they are formally described and represented in an implementation. Understanding these topics is fundamental in understanding new and existing programming languages ​​and their applications.

Furthermore, many techniques and tools, originally developed for languages ​​and translators, are also used in other contexts in program development.

Learning objectives

Knowledge

  • understand and explain the basic concepts in a definition of the programming syntax and semantics of a programming language
  • document knowledge of and overview of the relevant techniques and concepts in language design and translator construction
  • explain the individual phases and the connection between the phases in a translator or interpreter
  • explain the implementation techniques used in the constructed translator / interpreter
  • use correct subject terminology

Skills

  • describe the syntax and semantics of a programming language using relevant methods
  • implement a translator or interpreter for a specific programming language or for an extension to an existing programming language
  • test the implemented translator or interpreter at all levels: unit, integration and acceptance test
  • explain configuration management during the development of translator or interpreter
  • reason computerologically about and with the concepts and techniques concerned

Competences

  • assess the use and applicability of known tools and techniques for the definition and implementation of programming languages
  • understand and explain how concrete linguistic concepts are represented at runtime and in formal semantics

Type of instruction

Project work

The project is based on an analysis of a computer science problem, the solution of which can naturally be described in the form of a design of a specific programming language. The project includes a formal definition of relevant parts of this programming language. The focus of the project is the construction of a robust translator / interpreter for key parts of the language

Digital support for competence development within configuration management

Extent and expected workload

The student is expected to spend 30 hours per ECTS, which for this activity means 450 hours.

Exam

Exams

Name of examDesign, Definition and Implementation of Programming Languages
Type of exam
Oral exam based on a project
ECTS15
Assessment7-point grading scale
Type of gradingExternal examination
Criteria of assessmentThe criteria of assessment are stated in the Examination Policies and Procedures

Additional information

Kontakt: Studienævn for datalogi via cs-sn@cs.aau.dk eller 9940 8854

Facts about the module

Danish titleDesign, definition og implementation af programmeringssprog
Module codeDSNSWCB410
Module typeProject
Duration1 semester
SemesterSpring
ECTS15
Language of instructionDanish and English
Empty-place SchemeYes
Location of the lectureCampus Copenhagen
Responsible for the module

Organisation

Education ownerBachelor of Science (BSc) in Engineering (Software)
Study BoardStudy Board of Computer Science
DepartmentDepartment of Computer Science
FacultyThe Technical Faculty of IT and Design