CSC609: Programming languages 6 credits (40-10-10)

Objectives

To expose students to the various types of programming languages, the concepts behind their design and implementation, and models and corresponding languages.

Contents

Concepts of modern programming languages; semantics of programming languages; general semantic foundations (axiomatic, operational, algebraic, denotational); language design issues. An overview of various models of computation with example languages: the imperative model; procedural abstraction; data abstraction; example language, e.g., C or Pascal; functional model and example language such as Haskell or ML; Logic-oriented model with example language Prolog; Object-oriented model with example language such as Java or Smalltalk; Distributed parallel models with example languages such as Erlang or Occam; Hybrid models (e.g., Parlog, C++).