课程名称 (Course Name) :Programming language theory
课程代码 (Course Code):X033518 /C033716
学分/学时 (Credits/Credit Hours): 3/48
开课时间 (Course Term ): Spring Semester
开课学院(School Providing the Course): SEIEE
任课教师(Teacher): Yuxin Deng
课程讨论时数(Course Discussion Hours): 3
课程实验数(Lab Hours): 0
课程内容简介(Course Introduction):
This course introduces students to programming language theory including formal semantics and type theory. The major topics covered in the course are operational, axiomatic, and denotational semantics of imperative and functional languages with higher types, along with some mathematical techniques used to formalize and reason about programming languages. Beyond exploring the classic semantic theory, the course tries to give some hints on the latest development of programming languages.
教学大纲(Course Teaching Outline):
1. Basic set theory
2. Introduction to operational semantics
3. Some principles of induction
4. Inductive definitions
5. Denotational semantics
6. Axiomatic semantics
7. Completeness of the Hoare rules
8. Introduction to domain theory
9. Recursion equations
10. Techniques for recursion
11. Languages with higher types
12. Information systems
13. Recursive types
14. Nondeterminism and parallelism
课程进度计划(Course Schedule):
Week 1: Preliminaries on set theory and introduction to operational semantics
Weeks 2-3: Some principles of induction
Week 4: Inductive definitions
Week 5: Denotational semantics
Week 6: Axiomatic semantics
Week 7: Completeness of the Hoare rules
Weeks 8-9: Introduction to domain theory
Week 10: Recursion equations
Week 11: Techniques for recursion
Week 12: Languages with higher types
Week 13: Information systems
Week 14: Recursive types
Week 15: Nondeterminism and parallelism
Week 16: Final examination
课程考核要求(Course Assessment Requirements):
Attendance records: 10%
Final exam: 90%
参考文献(Course References):
1. Glynn Winskel. The Formal Semantics of Programming Languages: An Introduction. The MIT Press, 1994.
2. John C. Mitchell. Foundations of Programming Languages. The MIT Press, 1996.
3. Benjamin C. Pierce. Types and Programming Languages. The MIT Press, 2002.
预修课程(Prerequisite Course)
Discrete mathematics