プログラム意味論

Numbering Code G-INF06 63620 LJ10 Year/Term 2022 ・ First semester
Number of Credits 2 Course Type Lecture
Target Year Target Student
Language Japanese Day/Period Tue.5
Instructor name IGARASHI ATSUSHI (Graduate School of Informatics Professor)
SUENAGA KOUHEI (Graduate School of Informatics Associate Professor)
Outline and Purpose of the Course 数理論理学的手法を用いたソフトウェア科学の基礎理論について講述する.特に、プログラミング言語の形式化と意味論、また,型システムとプログラムの安全性、ホーア論理によるプログラム検証など、形式化を用いてプログラムの性質に関する議論をする.

In this course, we discuss theoretical aspects of computer software, including formal semantics of programs, type systems, Hoare logic and logical methods to infer properties of programs.
Course Goals 具体的なプログラムの意味や型付けに関する言明の形式的な導出が記述できる。メタ定理とは何かと、その証明技法としての帰納法を理解し、簡単なメタ定理の証明ができる。

Students will be able to write down derivations of evaluation and typing for concrete programs. Students will be able to understand what are metatheorems and how induction works in proofs of metatheorems, and prove simple metatheorems.
Schedule and Contents 第1回: 講義全体の概観、自然数の加算・乗算と導出システム (担当: 五十嵐)
第2回: 算術式の評価と簡約 (担当: 五十嵐)
第3回: メタ定理と帰納法による証明 (担当: 五十嵐)
第4回: 整数・真偽値式の評価 (担当: 五十嵐)
第5回: 定義、変数束縛と環境 (担当: 五十嵐)
第6回: 関数と再帰 (担当: 五十嵐)
第7回: リストとパターンマッチング (担当: 五十嵐)
第8回: 単純型システム (担当: 五十嵐)
第9回: 多相的型システム (担当: 五十嵐)
第10回: 型推論 (担当: 五十嵐)
第11回: 単純な命令型言語IMPとその操作的意味論 (担当: 末永)
第12回: IMPの性質とその証明 (担当: 末永)
第13回: IMPの公理的意味論(担当: 末永)
第14回: 公理的意味論の健全性と相対完全性 (担当: 末永)
第15回: 公理的意味論を用いたプログラム検証 (担当: 末永)

Week 1: Overview, Derivation system for arithmetic (Igarashi)
Week 2: Evaluation and reduction of arithmetic expressions
Week 3: Meta-theorems and proof by induction
Week 4: Evaluation of simple expressions of integers and Booleans
Week 5: Definition, variable binding, and environments
Week 6: Functions and recursion
Week 7: Lists and pattern matching
Week 8: Simple type system
Week 9: Polymorphic type system
Week 10: Type inference
Week 11: Simple imperative language IMP and its operational semantics (Suenaga)
Week 12: Properties of IMP and their proofs
Week 13: Axiomatic semantics of IMP
Week 14: Soundness and relative completeness of axiomatic semantics of IMP
Week 15: Program verification using axiomatic semantics
Evaluation Methods and Policy 成績評価: 講義内容に関するオンライン演習システムを通じての問題解答およびレポート提出

合格基準: 数理論理学的手法を用いたプログラム検証のための技法に関する基本的知識を身につけていることを示すこと.

Methods: Submissions of reports and solving problems with the online system.
Criteria: Demonstration of basic knowledge about techniques of program verification based on mathematical logic.
Course Requirements 予備知識は特に仮定しないが,論理学に関する基礎知識や,関数型言語でのプログラミング経験があることが好ましい.

No prerequisites are really required but basic knowledge about mathematical logic and experience in functional programming will be useful.
Study outside of Class (preparation and review) この講義用のオンライン演習システムで演習問題に解答する。

Assignments are to solve exercises provided by the online E-learning system designed for this lecture.
Textbooks Textbooks/References プログラミング言語の基礎概念, 五十嵐 淳, (サイエンス社), ISBN:978-4-7819-1285-1
References, etc. The Formal Semantics of Programming Languages, Glynn Winskel, (The MIT Press), ISBN:978-0262731034
プログラム検証論, 林 晋, (共立出版), ISBN:978-4320026582
PAGE TOP