Course personnel | Textbooks | Readings | Schedule | Links
Course personnel
Instructor | Phone | Course Time | Place | |
Yu Zhang | 63603804 | yuzhang at ustc.edu.cn | Wednesday 8:00~11:45 | GT-B211 |
GitHub for Code and Issues
Heterogeneous Computing and oneAPI related resources>
Schedule
Part B: Programming Language Design and Semantics
- May 18:
Polymorphisms
,
Overloading and Type Classes ,
Subtyping
- May 11:
Concurrency and Memory Models
,
C++ Memory Model (C++ Memory Model: Migrating from X86 to ARM)
- May 4:
Memory Management
,
Intel oneAPI TechTalk
- Apr.27:
Scope
,
Embedding
(code,
PyCEAC, PyScan,
PyCType)
- Apr.20:
Algebraic Data Types
[PFPL],
Lua
- Apr.13:
Fundamentals (lambda calculus)
,
Statics and Dynamics
[PFPL],
interpreter.ml
- Apr. 6:
Fundamentals (lambda calculus)
Part A: Program Analysis
- Apr. 6:
Abstract Interpretation
- Mar.30:
Pointer Analysis
(video: 1,
2)
- Mar.23:
Interprocedural Analysis
(video),
Control Flow Analysis
(video)
- Mar.16: Widening and Narrowing
(video),
Path Sensitivity
(video),
Interprocedural Analysis
(video)
- Mar.9:
The unification solver and Lattices
,
Examples of Flow Sensitive Analyses
- Mar. 2:TIP and Type Analysis
, The unification solver and Lattices
(TIP-GitHub, tipc, tipc-passes)
- Feb.23: Course Info
,
AST & CFG
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, Nov. 2020.
- [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
Schedule
Part B: Programming Language Design and Semantics
- May 18:
Polymorphisms
, Overloading and Type Classes , Subtyping - May 11:
Concurrency and Memory Models
, C++ Memory Model (C++ Memory Model: Migrating from X86 to ARM) - May 4:
Memory Management
, Intel oneAPI TechTalk - Apr.27:
Scope
, Embedding (code, PyCEAC, PyScan, PyCType) - Apr.20:
Algebraic Data Types
[PFPL], Lua - Apr.13:
Fundamentals (lambda calculus)
, Statics and Dynamics [PFPL], interpreter.ml - Apr. 6:
Fundamentals (lambda calculus)
Part A: Program Analysis
- Apr. 6:
Abstract Interpretation
- Mar.30:
Pointer Analysis
(video: 1, 2) - Mar.23:
Interprocedural Analysis
(video), Control Flow Analysis (video) - Mar.16: Widening and Narrowing
(video), Path Sensitivity (video), Interprocedural Analysis (video) - Mar.9:
The unification solver and Lattices
, Examples of Flow Sensitive Analyses - Mar. 2:TIP and Type Analysis
, The unification solver and Lattices (TIP-GitHub, tipc, tipc-passes) - Feb.23: Course Info
, AST & CFG
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, Nov. 2020.
- [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