CS 611: Semantics of Programming Languages

Fall 1999
Cornell University Computer Science Department

 

Course Description:

Lectures: MWF 10:10AM to 11:00AM, Olin Hall 218.

The goal of this course is to study formal techniques for describing computation so that properties of programs and programming languages can be analyzed and proved. This approach leads to a more general understanding of programming languages, specification, logic, mathematics, and proof theory, and provides a framework for precisely characterizing a variety of programming languages.

For example, we will study how to abstractly specifying how programs compute (operational semantics), as well as how to describe what programs compute (denotational semantics). The abstract but precise realization of these notations allows us to study techniques for formally proving interesting and relevant properties of programming languages: for example, that a program is type-safe, or that a compiler translates programs correctly. These techniques are finding great practical utility and are becoming increasingly relevant to other areas of computer science.

Course Staff:

Name E-mail Office Office hours
Instructor Andrew Myers andru@cs.cornell.edu Upson 4124 W 1-2
Teaching Assistant Steve Zdancewic zdance@cs.cornell.edu Upson 4104 F 11-12
Admin. Assistant Linda Marie Competillo lmc@cs.cornell.edu Upson 4115

Textbook:

Other useful books:

Prerequisites:

On the programming side, experience with at least a Pascal- or C-like language is assumed. Preferably, students will have some knowledge and experience working with a functional language, such as Scheme, ML, or Haskell.

On the theoretical side, we assume a basic proficiency in undergraduate mathematics, logic, and computer science. A basic knowledge of computability (such as Turing machines and recursive functions) and logic (that is, predicate calculus), as well as some mathematical maturity is required.

This course is designed for PhD or MEng students in CS, Math, OR, and EE.  If you are an undergraduate student, you must talk to the instructor to find out if the course is suitable for you.

Relevant Web Links: