Course Objectives: The principal course
objective: Discuss ways to formally define syntax and
semantics of programming languages. We will also talk a bit about
programming methodologies (functional programming, logic programming,
etc.)
Upon successful completion
of the course, students will be able to:
- Master using attribute grammars for specifying context-sensitive grammars;
- Master using the meta-circular approach to defining operational semantics of Lisp;
- Master using the axiomatic approach to reasoning about the behavior of imperative programs;
- Be familiar with using structured operational semantics;
- Be familiar with defining the denotational semantics of imperative
languages.