This course covers central concepts in programming language theory, design, implementation, and 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 Haskell programming language, 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.
The "Enrol me" button invokes the function for previewing Moodle course content during the add/drop period before you officially enrolling the corresponding course in SIS. The function is solely used for viewing Moodle course content and does NOT enrol you on the course. Course enrolment must be done in SIS by 6 February 2023.