Course Code: CS531 Course Name: Semantics Of Programming Languages Prerequisites: CS201, CS331 Syllabus: Overview of programming language constructs like procedures, jumps, non-determinism, continuations. Introduction to semantic systems. Operational semantics: Labelled transition systems, semantics of a simple language. Denotational semantics: lambda-calculus, semantics of a simple language with loops. Axiomatic semantics: Hoare logic, semantics of a subset of Pascal. Reasoning about concurrent features in programming languages using modal logic. Texts: 1. G. Winskel, Formal Semantics of Programming Languages: An Introduction, MIT Press, Cambridge, 1993. References: 1. M. J. C. Gordon, The Denotational description of programming languages: An Introduction, Springer-Verlag, 1979. 2. D. Gries, Science of Programming, Springer-Verlag, 1981. 3. D. Friedman, M. Wand and C. Haynes, Essentials of programming languages, 2nd Ed, MIT Press, 2001. 4. J. R. Hindley and H. P. Seldin, Introduction to Combinators and Lambda-calculus, Cambridge University Press, 1988. |