Programme And Module Handbook
 
Course Details in


If you find any data displayed on this website that should be amended, please contact the Curriculum Management Team.

Module Title Principles of Programming Languages
SchoolComputer Science
Department Computer Science
Module Code 06 02552
Module Lead Prof U D Reddy
Level Honours Level
Credits 10
Semester Semester 1
Pre-requisites Models of Computation - (06 05934)
Co-requisites
Restrictions None, but Compilers and Languages (06 02578) would be an ideal complement to the course
Contact Hours Lecture-23 hours
Practical Classes and workshops-11 hours
Total: 34 hours
Exclusions none
Description It can be argued that the development and study of high-level programming languages is a central task for computer science research, and enormous progress has indeed been made from the machine-level coding of the 40s to today's functional and object-oriented languages. In this module, we will study the features that have emerged as recurring themes in high-level languages, though they are expressed in a variety of ways. We will use the lambda calculus as a meta language to express theses features concretely and precisely. At this level of abstraction, 'computation' becomes 'evaluation' of expressions, rather than the execution of machine instructions. We will look at ways to specify this process in a precise fashion and thus discover some key design decisions that have to be made when developing a concrete language. Types can be used to constrain the range of valid programs and thus help the programmer to develop well-structured code. We will see how polymorphism and subtyping extend the expressivity of simple type disciplines without sacrificing semantics.
Learning Outcomes By the end of the module the student should be able to:
  • - demonstrate fluency in reading, constructing, and manipulating expressions in the lambda calculus (assessed by: examination and continuous assessment)
  • - execute specific evaluation strategies for lambda calculi with effects (assessed by: examination and continuous assessment)
  • - relate features of concrete programming languages to abstract principles (assessed by: examination and continuous assessment)
  • - assign types from various type disciplines to program expressions (assessed by: examination and continuous assessment)
Assessment 02552-01 : Examination : Exam (Centrally Timetabled) - Written Unseen (100%)
Assessment Methods & Exceptions 1.5 hour examination 80%, continuous assessment 20%.
Resit (where allowed) by examination only.
Other None
Reading List