Search programme

​Use the search function to search amongst programmes at Chalmers. The study programme and the study programme syllabus relating to your studies are generally from the academic year you began your studies.

Syllabus for

Academic year
DAT151 - Programming language technology
Programspråk
 
Syllabus adopted 2021-02-26 by Head of Programme (or corresponding)
Owner: MPALG
7,5 Credits
Grading: TH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail
Education cycle: Second-cycle
Major subject: Computer Science and Engineering, Software Engineering
Department: 37 - COMPUTER SCIENCE AND ENGINEERING


Teaching language: English
Application code: 02133
Open for exchange students: Yes
Block schedule: B
Status, available places (updated regularly): Yes

Module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0112 Examination 6,0c Grading: TH   6,0c   13 Jan 2022 am J,  12 Apr 2022 am J,  25 Aug 2022 pm J
0212 Laboratory 1,5c Grading: UG   1,5c    

In programs

TKITE SOFTWARE ENGINEERING, Year 3 (elective)
TIDAL COMPUTER ENGINEERING - Common branch of study, Year 3 (compulsory elective)
MPALG COMPUTER SCIENCE - ALGORITHMS, LANGUAGES AND LOGIC, MSC PROGR, Year 1 (compulsory)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 2 (elective)
MPCSN COMPUTER SYSTEMS AND NETWORKS, MSC PROGR, Year 1 (elective)

Examiner:

Andreas Abel

  Go to Course Homepage


Eligibility

General entry requirements for Master's level (second cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

English 6 (or by other approved means with the equivalent proficiency level)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Course specific prerequisites

The course can not be included in a degree together with the course TIN321 Programming languages. Neither can the course be included in a degree which is based on another degree in which the course TIN321 is included.

The course requires:
- good programming skills in Haskell, Java, C, or C++
- familiarity with Java, C, or C++
- basic skills of Unix programming (the shell, Makefiles)
- basic knowledge of data structures and algorithms

The following are also recommended:
- basic knowledge of logic (Boolean operators, inference rules)
- familiarity with functional programming
- basic knowledge of assembler programming

Aim

The aim of the course is to give understanding of how programming languages are designed, documented, and implemented. The course covers the basic techniques and tools needed to write interpreters, and gives a summary introduction to compilation as well.

Learning outcomes (after completion of the course the student should be able to)


  • define the lexical structure of programming languages by using regular expressions, explain the functioning of finite automata, and implement lexical analysers by using standard tools;

  • define the syntax of programming languages by using context-free grammars, explain the principles of LL and LR parsing, and implement parsers by using standard tools;

  • define and implement abstract syntax;

  • master the technique of syntax-directed translation and its efficient implementation in their chosen programming language;

  • formulate typing rules and implement type checkers;

  • formulate operational semantic rules and implement interpreters;

  • write simple code generators;

  • be familiar with the basic implementation issues of both imperative and functional languages;


  • use unification to implement polymorphic type checking;

  • use closures to implement functional programming languages.

Content

You will learn about grammars when writing the syntax analysis and about type systems when implementing the type checker. When implementing the interpreter and compiler you will learn about practical implementation concerns as well as the theory of formal semantics. By experimenting with language extensions you will get an insight into good and bad programming language designs.

Organisation

The teaching consists of lectures, exercises, and laborations, as well as individual supervision in connection to the laborations.

Literature

See course home page.

Examination including compulsory elements

Written laboration and written exam. Grading scale: U, 3, 4, 5.



The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.


Page manager Published: Mon 28 Nov 2016.