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
|