Study abroad in Edinburgh

Course finder

Semester 1

Types and Semantics for Programming Languages (INFR11114)

Subject

Informatics

College

SCE

Credits

10

Normal Year Taken

4

Delivery Session Year

2023/2024

Pre-requisites

Course Summary

Type systems and semantics are mathematical tools for precisely describing aspects of programming language. A type system imposes constraints on programs in order to guarantee their safe execution, whilst a semantics specifies what a program will do when executed. This course gives an introduction to the main ideas and methods of type systems and semantics. This enables a deeper understanding of existing programming languages, as well as the ability to design and specify new language features. The course also introduces relevant parts of logic and discrete mathematics used to describe types and semantics.

Course Description

- Inductive definitions and proof by induction- Products, sums, unit, empty, and implication.- Intuitionistic and classical logic.- Universals and existentials.- Lists and higher-order types.- Simply-typed lambda calculus. Variable binding.- Call-by-value and call-by-name.- Small-step operational semantics.- Progress and preservation.- Type inference.- Untyped lambda calculus.Relevant QAA Computing Curriculum Sections: Comparative Programming Languages, Compilers and Syntax Directed Tools, Programming Fundamentals, Theoretical Computing

Assessment Information

Written Exam 0%, Coursework 100%, Practical Exam 0%

Additional Assessment Information

Coursework 75% (five assignments of 15 points each)Optional essay 25%

view the timetable and further details for this course

Disclaimer

All course information obtained from this visiting student course finder should be regarded as provisional. We cannot guarantee that places will be available for any particular course. For more information, please see the visiting student disclaimer:

Visiting student disclaimer