Course personnel | Textbooks | Readings | Schedule | Links
Course personnel
Instructor | Course Time | Place | |
Yu Zhang | yuzhang at ustc.edu.cn | Thursday 9:45~12:10 | GT-B108 |
GitHub for Code and Issues
Heterogeneous Computing and oneAPI related resources
Last year's Schedule
Schedule
Part B: Program Analysis
- Nov. 21:
Widening and Narrowing
(video),
Path Sensitivity
(video),
Interprocedural Analysis
(video)
- Nov.14:
Type Analysis
,
The unification solver and Lattices ,
Examples of Flow Sensitive Analyses ,
HW4 ( SPA ) Exercises 4.2, 4.6, 4.16, 4.29, 4.30, 6.8
- Nov.7: Why Program Analysis
,
TIP ,
Type Analysis
(TIP-GitHub, tipc,
tipc-passes)
- Oct.31: AST & CFG & Dataflow Analysis
Part A: Programming Language Design and Semantics
- Oct.31:
Subtyping
- Oct.24:
Control Flow
,
Polymorphisms ,
Overloading and Type Classes
- Oct.17:
Memory Management
,
Recursion
- Oct.11:
Scope
,
Embedding
(code,
PyCEAC, PyScan,
PyCType),
Memory Management
- Sept.26:
Lua
,
Scope
- Sept.19:
More on Lambda calculus
,
Statics and Dynamics
[PFPL],
interpreter.ml
- Sept.12: Course Info
,
Fundamentals (Formal Semantics) ,
More on Lambda calculus (P1-26)
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, June 2024.
- [PFPL]
Robert Harper.
Practical Foundations for Programming Languages. 2nd Edition,
Cambridge University Press, 2016.
- [TAPL]
B. C. Pierce.
Types and Programming Languages. MIT Press, 2002.
CIS 500: Software Foundations - Fall 2007
-
John C. Mitchell.
Foundations for Programming Languages. MIT Press, 1996.
-
B. C. Pierce.
Advanced Topics in Types and Programming Languages. MIT Press, 2005.
Supplementary Readings
- HOPL: History of Programming Languages: I(1979), II(1993), III(2007), IV(2020)
- 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 Group, 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
Last year's Schedule
Schedule
Part B: Program Analysis
- Nov. 21:
Widening and Narrowing
(video),
Path Sensitivity
(video),
Interprocedural Analysis
(video)
- Nov.14:
Type Analysis
,
The unification solver and Lattices ,
Examples of Flow Sensitive Analyses ,
HW4 ( SPA ) Exercises 4.2, 4.6, 4.16, 4.29, 4.30, 6.8
- Nov.7: Why Program Analysis
,
TIP ,
Type Analysis
(TIP-GitHub, tipc,
tipc-passes)
- Oct.31: AST & CFG & Dataflow Analysis
Part A: Programming Language Design and Semantics
- Oct.31:
Subtyping
- Oct.24:
Control Flow
,
Polymorphisms ,
Overloading and Type Classes
- Oct.17:
Memory Management
,
Recursion
- Oct.11:
Scope
,
Embedding
(code,
PyCEAC, PyScan,
PyCType),
Memory Management
- Sept.26:
Lua
,
Scope
- Sept.19:
More on Lambda calculus
,
Statics and Dynamics
[PFPL],
interpreter.ml
- Sept.12: Course Info
,
Fundamentals (Formal Semantics) ,
More on Lambda calculus (P1-26)
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, June 2024.
- [PFPL]
Robert Harper.
Practical Foundations for Programming Languages. 2nd Edition,
Cambridge University Press, 2016.
- [TAPL]
B. C. Pierce.
Types and Programming Languages. MIT Press, 2002.
CIS 500: Software Foundations - Fall 2007
-
John C. Mitchell.
Foundations for Programming Languages. MIT Press, 1996.
-
B. C. Pierce.
Advanced Topics in Types and Programming Languages. MIT Press, 2005.
Supplementary Readings
- HOPL: History of Programming Languages: I(1979), II(1993), III(2007), IV(2020)
- 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 Group, 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
HW4 ( SPA ) Exercises 4.2, 4.6, 4.16, 4.29, 4.30, 6.8
CIS 500: Software Foundations - Fall 2007