Course personnel | Textbooks | Readings | Schedule | Coq Proof Assistant | Links
Course personnel
Instructor | Phone | Course Time | Place | |
Yu Zhang | 3603804 | yuzhang at ustc.edu.cn | Thursday 13:30~15:55P.M. | 3321 |
Textbooks
- [PFPL] Robert Harper. Practical Foundations for Programming Languages. Draft, 2008.
- [TAPL]
B. C. Pierce.
Types and Programming Languages. MIT Press, 2002.
CIS 500: Software Foundations - Fall 2007
马世龙等译. 类型和程序设计语言.电子工业出版社,2005. -
John C. Mitchell.
Foundations for Programming Languages. MIT Press, 1996.
许满武等译. 程序设计语言理论基础.电子工业出版社,2006.
[TPL] 陈意云. 程序设计语言理论.高等教育出版社, 2004. - B. C. Pierce. Advanced Topics in Types and Programming Languages. MIT Press, 2005.
Supplementary Readings
- C.A.R. Hoare. Hints on programming language design. Stanford University. Technical Report: CS-TR-73-403. 1973.
- Niklaus Wirth(Pascal之父). On the Design of Programming Languages. Information Processing. 74, pages 386-393, New York, N.Y., 1974. North-Holland Publishing Co.
- Peter Wegner. Programming languages - the first 25 years. IEEE Transactions on Computers, Vol. C-25, No. 12, pp. 1207-1225, 1976.
- Guy L. Steele.
Growing a Language. OOPSLA 1998 Keynote.
- C.A.R. Hoare. An axiomatic basis for computer programming. CACM 12(10), 1969, pages 576 - 580.
- Leslie Lamport. The Future of Computing: Logic or Biology.
- Philip Wadler. Proofs are Programs: 19th Century Logic and 21st Century Computing. June 2000, updated November 2000.
- ......
Coq Proof Assistant
- Coq Home page
- Coq Art Home page (download)
- Coq Tutorial in POPL08
- Proof General (download)
- How to install ...?
Schedule
Date | Topics | Homework | Readings/Coq Practice |
---|---|---|---|
Sep.11
Sep.18 |
1 Intro(1in1, 6in1) [TPL]ch1;[TAPL]ch1~3; |
Sep.11:1.1; Sep.18:1.2,1.3 Due:Sep.25 |
|
Sep.18
Sep.25 |
2 Judgement and Rules(1in1, 6in1)
[PFPL]ch1~3 |
[PFPL 1.9]1,2 Due:before Oct.22 23:00(in Coq, submitted by email)> |
Sep.25 Coq Introduction 1(1in1, 6in1) Tactics: intro(s), split, left, right, exact, apply |
Sep.25
Oct.9 Oct.16 Oct.23 Oct.30 |
3 A simple Language L{num,str}(1in1, 6in1)
[PFPL]ch5~13 |
[PFPL 6.2]2 Due:before Oct.22 23:00 [PFPL 11.4]1, 2 |
Oct.16 Coq Introduction 2(1in1, 6in1)
Oct.23 Coq Practices |
Oct.30
Nov.6 Nov.13 |
4 Simple Types(1in1, 6in1)
[PFPL]ch14, 17, 18, 15, 16 |
[slides]4.1 |
Nov.6 Coq Practices: B.C. Pierce's lecture
Nov.13 Coq Practices: pfpl_1_9sol.v |
Nov.20
Nov.27 Dec.4 |
5 Dynamic Typing(1in1, 6in1)
[PFPL]ch22,23 |
[slides]5.1~5.2, 5.3~5.4 |
|
Dec.4 |
[PFPL]ch32,33 |
||
Dec.4
Dec.11 Dec.18 |
7 Control Flow(1in1, 6in1)
[PFPL]ch29~31 |
Dec.11 Coq Practices: Understand the formalization of L{num, str} in coq,
try to formalize other languages in coq.
A good link for learning coq |
|
Dec.18 | Last year's lectures:
Storage effect Polymorphism Subtyping | Notice: Everyone must submit his report before Jan. 14 22:00. |
Links
- Software Security Lab, USTC
- The Teaching About Programming Languages Project
- ACM SIGPLAN(ACM Special Interesting Group on Programming Languages)
- Lambda the Ultimate
- PLT Online
- Resources for Programming Language Research, CMU
- HyperNews Computing Languages List