CSC501-Kingston Homepage

Programming Language Semantics

Fall 2007

Description:

Formal semantics of programming languages is concerned with the rigorous, i.e. mathematical, description of the meaning of programming languages. In contrast to the operational or axiomatic approaches, this course will focus on the denotational approach to programming language semantics. The denotational approach to semantics requires the explicit construction of a mathematical model for a programming language. Perhaps the most well known model is the denotational semantics first developed by John McCarthy and then refined by Christopher Strachey based on functions and functional composition. Another approach is the construction of algebraic models of programming languages. Rather than functions being the main modeling blocks, in the algebraic approach algebras (that is sets with associated operations) constitute the main modeling components. An advantage of this technique is that the models are immediately executable via an algebraic specification language. This technique is referred to as algebraic (denotational) semantics.

The aim of this course is to familiarize you with the basic techniques of specifying semantics for programming language constructs and use these formalism to prove properties of the constructs in question. We will look at all major programming language constructs including assignments, loops, and procedure calls together with their semantics. We will use various denotational semantic modeling techniques to describe the semantics of these constructs.

Announcements:

[12/6/07] Make sure you pick up version 2.0 of the final exam.
[12/5/07] Extra credit assigment - due on Friday 12/21, use this syntax.
[11/30/07] assignment #10, add the DIVIDE operator to the semantic definition in ML given in class, demonstrate that your semantics works with some example programs, do not worry about division by 0.
[11/14/07] assignment #9, second example problem in notes due Friday 11/16, I also updated the notes to include the derivation of the first example.
[11/1/07] posted assignment #8
[10/24/07] posted all outstanding solution sheets.
[10/18/07] posted the practice midterm as an extra credit exercise. due Wednesday 10/24 in class (no late submission accepted)
[10/18/07] posted assignment #7 (use this language spec), also no late submissions accepted
[10/11/07] posted assignment #6
[10/9/07] bring your laptops to class on 10/10
[10/8/07] posted solutions for assignment #4
[10/5/07] posted assignment #5
[10/4/07] use this language spec for assignment #4
[9/30/07] posted assignment #4 (make sure you pick up version 2.0)
[9/30/07] posted solutions for assignment #2
[9/23/07] posted assignment #3
[9/20/07] Yet another room change for Friday 9/21 -- White Hall 201
[9/13/07] no class Monday 9/17 and Wednesday 9/19
[9/12/07] posted assignment #1
[9/6/07] Room change: White Hall 210
[9/4/07] Time and room change: MWF 11-11:50, Tyler 108
[9/1/07] Welcome!

Documents of Interest:


NOTE: email submissions are not acceptable for assignments.

Assignments:

Instructor:

Dr. Lutz Hamel
Tyler Hall, Room 251
Office Hours: Wednesdays, Thursdays 2-3pm
email: lutz at inductive-reasoning dot com