単位数: 2. 担当教員: 住井 英二郎. 開講年度: 2024. 科目ナンバリング: TEI-PRI308J.
○
○
Google Classroomのクラスコードは工学部Webページ
https://www.eng.tohoku.ac.jp/edu/syllabus-ug.html
(学部シラバス・時間割)にて確認すること。
授業にはGoogle Classroomを利用
1.目的
プログラミング言語の基本的な概念を理解する。
2.概要
プログラミング言語の構文論と意味論、プログラムの検証について述べる。
3.達成目標等
プログラミング言語の形式的な構文論と意味論、プログラムの検証、コンパイラの原理についての基本的な考え方を理解する。
The class code for Google Classroom can be found on the Web site of the School of Engineering:
https://www.eng.tohoku.ac.jp/edu/syllabus-ug.html (JP Only)
Will use Google Classroom
1. Purpose
To understand fundamental concepts in programming languages.
2. Outline
Will describe syntax and semantics of programming languages, and program verification.
3. Goal
To understand the basic ideas on formal syntax and semantics of programming languages, program verification, and the principles of compilers.
「計算機学」および「プログラミング演習A」の履修を前提としている。また、授業の理解を深めるためには、「オートマトン・言語理論」、「プログラミング演習B」、「コンパイラ」、「情報論理学」も履修することが望ましい。
Prerequisite: 「計算機学 (Fundamentals of Computer)」 and 「プログラミング演習A (Programming A)」 (or equivalent knowledge)
Recommended: 「オートマトン・言語理論 (Automata and Formal Languages)」, 「プログラミング演習B (Programming B)」, 「コンパイラ (Compiler)」, and 「情報論理学 (Logic for Computer Science)」
1.序論(ソフトウェアの形式的検証)
2.論理式,集合
3.算術式の構文,帰納的定義
4.算術式の操作的意味論
5.プログラムの構文と操作的意味論
6.プログラムの仕様,表明
7.プログラムの正当性の証明
8.ループ不変条件とループ変動式
9.ホーア論理(1)
10.ホーア論理(2)
11.インタプリタとコンパイラ,スタックマシン
12.関数呼び出し,再帰
13.高階関数とλ計算
14.復習,試験
15.試験の解説
1. Introduction (formal verification of software)
2. Logical formulas, sets
3. Syntax of arithmetic expressions, inductive definitions
4. Operational semantics of arithmetic expressions
5. Syntax and operational semantics of programs
6. Specifications of programs, assertions
7. Correctness proofs of programs
8. Loop invariants and loop variants
9. Hoare logic (1)
10. Hoare logic (2)
11. Interpreter, compiler, and stack machine
12. Function calls, recursion
13. Higher-order functions and lambda-calculus
14. Review, exam
15. Review of exam
復習・予習、授業中に配布する課題・過去の試験問題等
Preparation and review; problems and past exams distributed in class
レポートと試験をもとに評価する。
Based on reports and exam
メールにより調整・決定する
Appointment by e-mail