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