Mathematical Theory of Programs is an area of theoretical computer science to build mathematical models of computer programs and to give a basis for analyzing, verifying and understanding their properties. In this course, you learn basic theories such as operational semantics, denotational semantics, axiomatic semantics and formal verification techniques for program behaviors. As applications of basic theories, you also learn domain theory and attribute grammar.
The main theme of this lecture is to build a basis to apply concept and theory of program theories such as operational semantics, denotational semantics, axiomatic semantics. Through this course, you learn the formal definitions of programming languages. You also learn techniques of proof for validations of program behavior in a level that you can apply them to another area of computer science through exercises.
Operational Semantics, Denotational Semantics, Axiomatic semantics, Principles of induction, Hoare Logic, Domain theory, Concurrent Computation Model
|✔ Specialist skills||Intercultural skills||Communication skills||Critical thinking skills||✔ Practical and/or problem-solving skills|
Classroom learning. After learning of basic concepts and definitions of formal semantics, study techniques of proof for validations of program behavior through running examples.
|Course schedule||Required learning|
|Class 1||Formal semantics of programming languages||Understanding the importance of formal semantics of programming languages|
|Class 2||Basic Concept||Explaining basic Concept of program theory|
|Class 3||Operational Semantics (Expression valuation and Command execution)||Explaining operational Semantics (Expression valuation and Command execution)|
|Class 4||Inductive definitions and principles of induction.||Explaining inductive definitions and principles of induction.|
|Class 5||Proof rules for operational semantics||Explaining proof rules for operational semantics|
|Class 6||Denotational Semantics||Explaining denotational semantics|
|Class 7||The relationship between Operational Semantics and Denotational Semantics||Explaining the relationship between Operational Semantics and Denotational Semantics|
|Class 8||Axiomatic semantics, Hoare Logic||Explaining axiomatic semantics, Hoare Logic|
|Class 9||Soundness and Completeness of the Hoare rules||Explain soundness and completeness of the Hoare rules|
|Class 10||Verification and Validation||Explaining verification and validation|
|Class 11||Domain theory (1) Definitions||Explaining definitions in domain theory|
|Class 12||Domain theory (2) Domain Theory and Various Properties||Explaining the domain theory and various properties|
|Class 13||Models of Concurrent Computation: Definitions||Explaining the various definitions of concurrent models|
|Class 14||Models of Concurrent Computations: Examples||Understanding of the model of concurrent computing through examples|
|Class 15||Advanced Topics of Formal Semantics||Understanding of advanced topics|
To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.
None. Slides are available in lecture.
Semantics with Applications: An Appetizer, Riis Nielson, Hanne, Nielson, Flemming ， Springer ， 2007
Communicating and mobile systems: the pi-calculus, Robin Milner, Cambrdge University Press.
Grades will be assessed through reports (40%) and exams (60%).:except in 2020.
In 2020, grades will be assessed through reports.