X033518/C033716 Programming language theory 程序语言理论

 

课程名称 (Course Name) Programming language theory

课程代码 (Course Code)X033518 /C033716

学分/学时 (Credits/Credit Hours) 348

开课时间 (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

[ 2015-11-26 ]