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, Attribute Grammar
✔ 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 | Understand the importance of formal semantics of programming languages |
Class 2 | Basic Concept | Explain basic Concept of program theory |
Class 3 | Operational Semantics (Expression valuation and Command execution) | Explain operational Semantics (Expression valuation and Command execution) |
Class 4 | Inductive definitions and principles of induction. | Explain inductive definitions and principles of induction. |
Class 5 | Proof rules for operational semantics | Explain proof rules for operational semantics |
Class 6 | Denotational Semantics | Explain denotational Semantics |
Class 7 | The relationship between Operational Semantics and Denotational Semantics | Explain the relationship between Operational Semantics and Denotational Semantics |
Class 8 | Axiomatic semantics, Hoare Logic | Explain axiomatic semantics, Hoare Logic |
Class 9 | Partial correctness assertions, Examples of proof | Explain partial correctness assertions, Examples of proof |
Class 10 | Soundness and Completeness of the Hoare rules | Explain soundness and completeness of the Hoare rules |
Class 11 | Verification and Validation | Explain verification and validation |
Class 12 | Domain theory (1) Definitions | Explain the definitions of domain theory |
Class 13 | Domain theory (2) Domain Theory and Theory of computation | Explain Domain Theory and theory of computation |
Class 14 | Attribute Grammar: Definitions | Explain Definitions of Attribute Grammar |
Class 15 | Attribute Grammar: Example | Explain of Examples of Attribute Grammar |
None. Slides are available in lecture.
The Formal Semantics of Programming Languages Glynn and Winskel , MIT Press , 1993
Evaluating report with the quality of mini-reports (40%) and final report (60%).
Mathematical Logic