Course Catalog 2014-2015
Basic

Basic Pori International Postgraduate Open University

|Degrees|     |Study blocks|     |Courses|    

Course Catalog 2014-2015

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
Lectures
Excercises
Seminar
 4 h/week
 2 h/week
 10 h/per
+2 h/week
+2 h/week
+16 h/per



 



 



 
TIE-20306 2014-01 Monday 14 - 16 , TB111
Tuesday 14 - 16 , TB103
Tuesday 14 - 16 , TB111

Requirements

Examination, seminar project, and weekly exercises.
Completion parts must belong to the same implementation

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       No    Suomi  
Lecture slides     Harsu, Geldenhuys, Rintala         Yes    English  
Online book   Programming Languages: Principles and Paradigms   Maurizio Gabbrielli, Simone Martini   978-1-84882-914-5     ISBN of printed version: 978-1-84882-913-8   Yes    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 
TIE-20306 Principles of Programming Languages, 5 cr OHJ-2050 Principles of Programming Languages, 5 cr  
TIE-20306 Principles of Programming Languages, 5 cr OHJ-2056 Principles of Programming Languages, 5 cr  

More precise information per implementation

Implementation Description Methods of instruction Implementation
TIE-20306 2014-01   Lectures
Excercises
   
Contact teaching: 0 %
Distance learning: 0 %
Self-directed learning: 0 %  

Last modified20.01.2014