|  
 
 Overview 
This course, Programming Languages, is about the theory for the following questions: is this program correct? why is it correct? why is it not correct?
how to describe the behavior of a program? how to describe the designed functionality of a program? You will learn operational semantics, denotational semantics, Hoare logic, basic functional programming and proof engineering in Coq (official download, local mirror).
 Extended Reading
     Schmidt, David.  Denotational semantics: a methodology for language development   William C. Brown Publishers, 1986  Winskel, Glynn.  The Formal Semantics of Programming Languages: An Introduction.  MIT Press, 1993.  Ebbinghaus, Heinz-Dieter.  Mathematical Logic.  Springer, 1996.  Pierce, Benjamin, et. al.  Software Foundation.  Online.  Harper, Robert.  Practical Foundations for Programming Languages.  Cambridge: Cambridge UP, 2016.  Homework
     Download Release date: 2/24. Due date: 2/28.  Download Release date: 3/08. Due date: 3/12.  Download (a) Release date: 3/17. Due date: 3/21. Download (b) Release date: 3/22. Due date: 3/26.
 Download Release date: 3/29. Due date: 4/02.  Download Release date: 4/12. Due date: 4/18.  Download (a) Release date: 4/21. Due date: 4/25. Download (b) Release date: 4/21. Due date: 4/25.
 Download Release date: 5/08. Due date: 5/12.  Download Release date: 5/17. Due date: 5/21.  Download Release date: 5/24. Due date: 5/28.  Download Release date: 5/31. Due date: 6/04.  Quiz
     Download Release date: 4/28. Due date: 5/07.  Download Release date: 6/09. Due date: 6/25.  To Be Released  Final project
     Instructions  Topics  Useful definitions and references  Lecture Schedule
All lectures:
 
Additional Coq library support: RTClosure.v, Imp.v, ImpExt.v, ImpExt2.v, ImpExt3.v, ImpCF.v, Lambda.v
 |