CS424

PROGRAMMING LANGUAGE DESIGN & SEMANTICS

Credits
5
Year
4
Semester
1
Department
COMPUTER SCIENCE

Overview

This module is about the design of programming languages. In particular it is concerned with the syntax, the semantics and usability of a programming language. The basics of lambda calculus, both untypes and simply typed, will be studied, with an eye towards its use in formalizing the semantics of programming languages. Working knowledge of three languages Scheme, Haskell, and Prolog) will be acquired. Semantics will be studied using both formal machinery and an interpreter-b...

Learning Outcomes

  • Read and write simple programs in Scheme, Haskell, and Prolog
  • Understand lambda calculus reductions, renaming, variable capture, and confluence
  • Understand the erasure theorem, the termination properties of both typed and untyped lambda calculus, and typing rules
  • Describe the syntax and semantics of Scheme, Haskell, Prolog, and lambda calculus