程序设计语言的形式语义(Formal Semantics of Programming Languages)
学期:2024-2025学年第一学期
时间:周三1-2节,8:00am - 9:50am
地点:仙II-110
授课老师:梁红瑾,计算机楼404室
助教:林荣恩,计算机楼409室
期末考试时间:2024年12月25日周三1-2节,8:00am - 9:50am,地点:仙II-110,闭卷
Lecture Notes
- [09/04]: Introduction (notes), and
Coq tutorial (Overview, and the Coq file used for the demo, which can be compiled with
Coq 8.18.0 in release 2023.11.0).
How to install Coq.
- [09/11]: Mathematical background (notes).
- [09/18]: Lambda calculus (notes).
Read the first three sections of Peter Selinger's lecture notes.
Also see Alligator Eggs for Untyped Lambda Calculus for fun.
- [09/25]: Lambda calculus (continued).
- [10/09]: Lambda calculus (continued), and simply-typed lambda calculus (notes).
Read the type-safety proofs of Dan Grossman's lecture notes.
- [10/16]: Simply-typed lambda calculus (continued).
- [10/23]: System F (notes).
- [10/30]: System F (continued), and operational semantics of imperative languages (notes).
- [11/06]: Operational semantics (continued).
- [11/13]: Operational semantics (continued).
- [11/20]: Operational semantics (continued), and Hoare logic (notes).
- [11/27]: Hoare logic (continued).
- [12/04]: Hoare logic (continued).
- [12/11]: Hoare logic (continued). Separation logic (notes).
Read the notes by Reynolds.
- [12/18]: Separation logic (continued). Review (notes).
Assignments
Submission guidelines:
- Please email to TA<191220060@smail.nju.edu.cn>.
- Your answers can be in either Chinese or English. They should be submitted in pdf.
- Late submissions are not accepted (unless special reasons provided).
Textbooks and References
- Textbooks: lecture notes and handouts
- References:
- Benjamin C. Pierce, et al. Software Foundations
- John C. Reynolds. Theories of Programming Languages, Cambridge University Press.
- Hanne Riis Nielson, Flemming Nielson. Semantics with Applications: A Formal Introduction.
- Robert Harper. Practical Foundations for Programming Languages. (The online abridged preview edition)
- Glynn Winskel. The Formal Semantics of Programming Languages: An Introduction. The MIT Press.
- Benjamin C. Pierce. Types and Programming Languages. The MIT Press.
最后更新日期:2024-12-17