Leader: B Meyer
Not offered in 2005.
Synopsis: This unit takes a practical hands-on approach to programming language semantics where students can explore the concepts through the use of high-level tools using semantic specification. Main topics are: Distinguishing syntax from semantics. Concrete and abstract syntax. Syntax as a basis for semantics. Outline of the main approaches for giving meaning to programming languages. Fundamental concepts of programming languages and their relation to design decisions. Examples of formal semantic specification for real-world programming languages. Semantic analysis of programming languages. Implementation of programming languages with high-level tools.
Assessment: Written theoretical assignments, practical assignments in using formal specifications and tools
Contact Hours: Two 1-hour lectures + one 1-hour (optional) tutorial per week
Prerequisites: CSE3322 or entry to the Master of Computer Science degree. Basic knowledge of functional programming as well as knowledge of alternative programming paradigms. At least 12 points of computer science oriented mathematics, fundamentals of first-order predicate logic and understanding of the notion of a proof, induction.