|
|
||||||||||||||||||
Course Catalog 2013-2014
TIE-20306 Principles of Programming Languages, 5 cr |
Person responsible
Matti Rintala
Lessons
| Study type | P1 | P2 | P3 | P4 | Summer | Implementations | Lecture times and places |
|
|
|
|
|
|
|
|
Requirements
Examination, seminar project, and weekly exercises.
Completion parts must belong to the same implementation
Principles and baselines related to teaching and learning
-
Learning outcomes
Student is able to explain general principles, paradigms and basic concepts of programming languages at a higher level than that of a single programming language. Student understands the effects of these principles to language implementation and use, and is able to choose a suitable programming language for his purposes.
Content
| Content | Core content | Complementary knowledge | Specialist knowledge |
| 1. | Phases of translation: lexical analysis, syntax analysis, semantical analysis | Expressing lexems using regular expressions and syntax using BNF. | Attribute grammars, LL and LR parsing |
| 2. | Object models and other implementation choices and implementation principles of the most common programming language features. | Detailed implementation of some features in a certain programming language. | |
| 3. | Principles of memory management, e.g., the content and importance of activation records. | Implementation of activation records in a certain computer architecture. | |
| 4. | Basic knowledge of different programming paradigms. Understanding programs written in different paradigms (functional, logic, concurrent, scripting, object-oriented). | Writing small programs in different programming paradigms. | Writing real programs in a certain paradigm other than the most common ones. The basics of monads in Haskell. |
| 5. | Type systems. Differences between static and dynamic typing. | Type inference. How static/dynamic typing affects other aspects of a programming language. | Genericity and type systems. Higher order types and type classes in Haskell. |
Study material
| Type | Name | Author | ISBN | URL | Edition, availability, ... | Examination material | Language |
| Book | Ohjelmointikielet - periaatteet, käsitteet, valintaperusteet | Maarit Harsu | 952-14-0981-9 | Suomi | |||
| Book | Programming Languages - Principles and Practice | Kenneth C. Louden, Kenneth A. Lambert | 978-1-111-57763-6 | English | |||
| Lecture slides | Harsu, Geldenhuys, Rintala | English |
Prerequisites
| Course | Mandatory/Advisable | Description |
| TIE-02400 Ohjelmoinnin tekniikat | Mandatory |
Prerequisite relations (Requires logging in to POP)
Correspondence of content
| Course | Corresponds course | Description |
|
|
|
More precise information per implementation
| Implementation | Description | Methods of instruction | Implementation |