CS250r :  Topics in Programming Language Design and Implementation

Spring 2007

Greg Morrisett

Tue-Thu 10-11:30am

Maxwell Dworkin 319
The focus of CS250r for Spring 2007 is on integrating specification and verification into programming langauge environments.  Our goal is to study proposed extensions to programming languages that move beyond standard type-checking to provide greater degrees of assurance.  Some proposals, such as dynamic contracts, are relatively simple but extremely effective.  Others, such as the application of dependent type theory, provide an impressive range of power, but are perhaps too difficult for the average programmer to effectively utilize.  Still others, such as the work on extended static checking, seem to strike a middle ground, sacrificing expressiveness for increased automation. 

Students need a firm grounding in programming languages (CS152) and ideally, programming language implementation (CS153).  Class time will be spent discussing papers.  Students will be required to present one of the papers shown below in class, and lead discussion regarding the paper.  Students will also be required to (a) design and implement one of the extensions discussed in class, and (b) put together a poster and presentation on the project, and (c) write a final report on the extension area. 


Some of the Papers to Prefetch and Read:

Some Notes from Class:

Example projects ideas: