2017 Mathematical Theory of Programs

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Graduate major in Computer Science
Instructor(s)
Kobayashi Takashi  Nishizaki Shin-Ya 
Course component(s)
Lecture
Day/Period(Room No.)
Mon7-8(W935)  Thr7-8(W935)  
Group
-
Course number
CSC.T422
Credits
2
Academic year
2017
Offered quarter
1Q
Syllabus updated
2017/3/21
Lecture notes updated
-
Language used
Japanese
Access Index

Course description and aims

Mathematical Theory of Programs is an area of theoretical computer science to build mathematical models of computer programs and to give a basis of 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.

Student learning outcomes

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. By studying this lecture, 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 other area of computer science through exercises.

Keywords

Operational Semantics, Denotational Semantics, Axiomatic semantics, Principles of induction, Hoare Logic, Domain theory, Attribute Grammar

Competencies that will be developed

Intercultural skills Communication skills Specialist skills Critical thinking skills Practical and/or problem-solving skills
- - -

Class flow

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

  Course schedule Required learning
Class 1 Formal semantics of programming languages Understand 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 Relationship between Operational Semantics and Denotational Semantics Explain 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

Textbook(s)

None. Slides are available in lecture.

Reference books, course materials, etc.

The Formal Semantics of Programming Languages Glynn and Winskel , MIT Press , 1993

Assessment criteria and methods

Evaluating report with quality of mini reports (40%) and final report (60%).

Related courses

  • CSC.T425 : Concurrent System Theory
  • CSC.T436 : Workshop on System Verification

Prerequisites (i.e., required knowledge, skills, courses, etc.)

Mathematical Logic

Page Top