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 9:45~12:10 | 3214 |
Theory of Programming Language, Fall 2008.
Textbooks
- [TPL] 陈意云. 程序设计语言理论(修改版), 2009.( ch1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11).
- [PFPL]
Robert Harper.
Practical Foundations for Programming Languages. Draft, 2008.
- [FPL]
John C. Mitchell.
Foundations for Programming Languages. MIT Press, 1996.
许满武等译. 程序设计语言理论基础.电子工业出版社,2006. - [TAPL]
B. C. Pierce.
Types and Programming Languages. MIT Press, 2002.
CIS 500: Software Foundations - Fall 2007
马世龙等译. 类型和程序设计语言.电子工业出版社,2005. - 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 ...?
- Coq practice: a simple language - Lnumstr
Schedule
| Date | Topics | Homework |
|---|---|---|
| Sep.10
Sep.17 |
1 Introduction( 1in1, 6in1)[TPL]ch1;[TAPL]ch1~3; |
Sep.10:[TPL]1.3
Sep.17:[TPL]1.5,1.6 |
| Sep.17
Sep.24 Oct.10 Oct.15 Oct.22 |
2 The language PCF - Algebraic Datatype( 1in1, 6in1)
[FPL]ch2 , ch3
|
Sep.24:[TPL]2.3
Oct.10:[TPL]2.4,2.10,2.13,2.16 Oct.15:[TPL]2.19,2.22,2.23 Oct.22:[TPL]2.30,2.33 |
| Oct.29
Nov.5 Nov.12 |
3 Simply-typed Lambda Calculus( 1in1, 6in1)
[FPL]ch2 , ch4
|
Oct.29:[TPL]3.6(c),3.8(b)
Answer 2: 1,2,3,4, 5,6 Nov.5:[TPL]3.27(a)(b)(c), 3.28(a) Nov.12:补充题 1in1, 6in1
|
|
Nov.12 Nov.19 |
4 Recursive Functions and Recursive Types( 1in1,
6in1)
| Nov.12:[TPL]4.2 |
|
Nov.19 |
Coq & its Application( 1in1,
6in1) Install Coq
Tactics: intro(s), split, left, right, exact, apply
Nov.19:Coq Practice
| |
| Nov.26
Dec.3 Dec.10 |
5 Imperative Programs and Their Semantics( 1in1,
6in1)
Exceptions and Continuations( 1in1,
6in1 7.2&7.3)
[PFPL]ch29-31;[TPL]ch5
Nov.26:[TPL]5.3
| |
| Dec.17 |
6 Propositions and Types( 1in1, 6in1)
[PFPL]ch32,33;[TPL]ch9 | |
| Dec.17
Dec.24 |
7 Polymorphism( 1in1, 6in1)
[PFPL]ch25,26;[TPL]ch7 Notice: Everyone must submit his reading report on or before Jan. 20. | Answer 3: 1,2,3,4, 5,6 |
| Dec.31 |
Subtyping1in1)
[PFPL]32;[TPL]ch10 1in1, 6in1)
[PFPL]22,23;[TPL]ch11 |
Links
- USTC-Yale Joint Research Center for High-Confidence Software
- 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
