COMP3259 Principles of programming languages [Section 1A, 2016]
Welcome to Principles of Programming Languages!
This
course covers central concepts in programming languages, language
design and implementation, and programming paradigms.The course will
have a practical focus, encouraging students to implement a
progressively more sophisticated programming language illustrating
various concepts and ideas from functional, imperative and
object-oriented programming. These concepts include for example static
scoping, closures, inheritance, mutable state, and type systems. All
such features are widely used by many existing programming languages.
The programming language Haskell, which is a functional language, will be used in for the coursework and will serve as a prime example of a modern, functional language. Haskell is an obvious choice for this class because of its excellent support for declaring the abstract syntax of a programming language and writing various analyses over that syntax.