Page type: course

CS611: Semantics of Programming Languages; CS 611: Semantics of Programming Languages; Contents:;Description, Texts, and Prerequisites;Handouts;Scribed Lecture Notes;Homework Assignments;Contact Information;Relevant Web Links; Description:; Lectures: MWF, 10:10-11:00am, Upson 211;Though CS611 is called ``Advanced Programming Languages'' in the course book,;it is better entitled ``Semantics of Programming Languages''. The goal;of this course is not to conduct a broad survey of hi-tech programming;languages like C++, Java, or SML, nor to directly study implementation;mechanisms for these languages (e.g., compressed dispatch tables for multiple;inheritance). Rather, the goal of this course is to study;the principles;of formal notation for describing computations, and tools for analyzing;and proving properties of computations. These concerns subsume the;study of specific programming languages or implementation mechanisms;and hence lead to a deeper understanding of programming, specification,;logic, mathematics, and proof theory.;For example, we will study notations for abstractly specifying how;programs compute (operational semantics), as well as;notations for describing what programs compute;(denotational semantics). In turn, the abstract but precise;realization of these notations will allow us to study techniques;(induction, logical relations) for;formally proving interesting and relevant properties of;programming languages (e.g., type safety or compiler correctness).;Ideally, a student coming out of this course will have learned something;about how to make informal concepts and notation precise, and how to;manipulate the notation to demonstrate useful properties.; Textbooks:; Semantics of Programming Languages , Carl A. Gunter.; ML for the Working Programmer (Second Edition) , Larry Paulson.; Prerequisites:;On the programming side,;we assume experience with at least a Pascal- or C-like language.;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 (e.g., turing machines, recursive functions) and;logic (e.g., predicate calculus), as well as some mathematical;maturity is required.;This course is designed for PhD students in CS, Math,;OR, and EE. It is not for MEng or undergraduate students. If you are an;MEng or undergraduate student, you must talk to the instructor to find out if;the course is suitable for you.; Contact Information:; Newsgroup: cornell.class.cs611; Instructor: Greg Morrisett, Upson 4105C, jgm@cs.cornell.edu, 5-3009; Office Hours: MF after class or by appointment.; Admin. Assistant: Linda Competillo, Upson 4115; TA:; Úlfar; Erlingsson, Upson 4162,;ulfar@cs.cornell.edu, 5-2219; Office Hours: Tue 2-3pm, Thu 1:30-2:30pm;Relevant Web Links:; Mark Leone's Resources for Programming Language Research.;Emacs mode for ML:; ml.el; comint.el (needed by ml.el);The Fox project's on-line information about Standard ML.;Reference information for SML/NJ (postscript):; User's guide; Description of the base environment; Description of the system environment; Library documentation; Documentation of available tools; Reference indexDocumentation of available tools;A gentle introduction to SML, Andrew Cumming .;MIT's info on SML/NJ.;