Course personnel | Textbooks | Readings | Schedule | Links
Course personnel
Instructor | Phone | Course Time | Place | |
Yu Zhang | 63603804 | yuzhang at ustc.edu.cn | Monday 15:55~18:20;Thursday 7:50~9:25 | 3408 |
Schedule
Part II: Formal Semantics
- Jun.8:
Mutable State
,
Hoare Logic
[PFPL]
- Jun. 1:
Control Flow
[PFPL]
- May 25:
Overloading and Type Classes
,
Subtyping
[PFPL]
- May 18:
Polymorphisms
,
Type and Propositions
[PFPL]
- May 11:
General Recursion
,
Polymorphisms
[PFPL]
- May 4:
System T
,
Generic Programming, Inductive and Coinductive Types ,
- Apr.27:
Statics and Dynamics
,
Product and sum types
[PFPL],
interpreter.ml
- Apr.20:
Fundamentals
Part I: Static Program Analysis
- Apr.20:
Recap
- Apr.13:
Pointer Analysis
,
Abstract Interpretation
Homework: HW8 ( SPA Exercises 10.4, 10.5)
- Apr.9:
Control Flow Analysis
,
Pointer Analysis
Homework: HW7 ( SPA Exercises 9.3, 10.2)
- Apr.6:
Path Sensitivity
,
Interprocedural Analysis
Homework: HW6 ( SPA Exercises 8.4, 8.10, 8.18)
- Apr.2:
Widening and Narrowing
,
Homework: HW5 ( SPA Exercises 6.8, 7.3, 7.7)
- Mar.30: Examples of Flow Sensitive Analyses
,
Widening and Narrowing
- Mar.23: Lattices and Fixpoints
(supplement),
Examples of Flow Sensitive Analyses
Homework: HW4 ( SPA Exercises 4.2, 4.6, 4.16, 4.29, 4.30)
- Mar.16: The unification solver, Lattices
,
TIP-GitHub Code Guide
Homework: HW3
- Mar.9: TIP and Type analysis
(TIP-GitHub),
Various OO features
Homework: HW2
- Mar.5: Introduction to program analysis and TIP
(TIP-GitHub)
- Mar.2: Course Info
,
Review of Compilers
Homework: HW1
Textbooks
- [PPA]
Flemming Nielson et al.
Principles of Program Analysis (2nd Edition). Springer, 2005.
- [SPA]
Anders Møller and Michael I. Schwartzbach.
Lecture notes on Static Program Analysis, Dec. 2019.
- [PFPL]
Robert Harper.
Practical Foundations for Programming Languages. 2nd Edition,
Cambridge University Press, 2016.
- [TPL]陈意云、张昱.
程序设计语言理论(第2版).高等教育出版社, 2010.
- [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.
-
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.
- ......
Schedule
Links
- System Software and 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
Homework: HW8 ( SPA Exercises 10.4, 10.5)
Homework: HW7 ( SPA Exercises 9.3, 10.2)
Homework: HW6 ( SPA Exercises 8.4, 8.10, 8.18)
Homework: HW5 ( SPA Exercises 6.8, 7.3, 7.7)
Homework: HW4 ( SPA Exercises 4.2, 4.6, 4.16, 4.29, 4.30)
Homework: HW3
Homework: HW2
Homework: HW1
CIS 500: Software Foundations - Fall 2007
马世龙等译. 类型和程序设计语言.电子工业出版社,2005.
许满武等译. 程序设计语言理论基础.电子工业出版社,2006.