
科目の概要
この科目では、オートマトンをはじめとする「計算機のモデル」のパラダイムと、「言語」という概念を数学的に定式化した「形式言語」という枠組みの 2 つをテーマとして取り上げ、一見距離のあるこれらの 2 つの間の密接な関係と、この 2 つが織りなす「計算」という現象に肉薄するとともに、具体的なプログラミング言語や計算機の実装方法や規格書などを垣間見ることで、普段はとりたてて詳しく追いかける機会の少ない「計算」「計算機」「プログラミング言語」といったものを掘り下げて「脱・神秘化」(demystify) していく。 さらに、正則言語や文脈自由言語などの言語クラスが持つソフトウェアエンジニアリング領域へのきわめて重大な応用を学ぶことで、実践的技術と理論的直感の両方を培う。
科目情報
履修想定年次
3年次
単位数
2単位
開講Q
1Q、3Q
科目属性
選択
授業の方法
オンデマンド科目
評価方法
確認レポート 50% , 単位認定試験 50%
前提科目
(推奨)
(推奨)
前提科目
(強く推奨)
(強く推奨)
なし
後継科目
(推奨)
(推奨)
なし
科目ナンバリング
INF-3-C1-1030-003
到達目標
計算・計算機・プログラミング言語について一段階深く掘り下げて把握し、特に「プログラミング言語や計算機などの規格書を見に行く」という選択肢の存在を意識できるようになる。また、実践的な技術を養った上で、それらを活用して具体的な問題解決ができるようになることを目標とする。
教科書・参考書
[教科書]
- なし(オリジナル教材)
[参考書]
- 米田政明,オートマトン・言語理論の基礎,近代科学社,2003
- 川添愛,白と黒のとびらオートマトンと形式言語をめぐる冒険,東京大学出版会,2013
- 川添愛,精霊の箱チューリングマシンをめぐる冒険上下,東京大学出版会,2016
- MichaelSipser(著)・田中圭介・藤岡淳(監訳),計算理論の基礎原著第3版オートマトンと言語,共立出版,2023
- 丸岡章,計算理論とオートマトン言語理論[第2版]―コンピュータの原理を明かす―,サイエンス社,2021
授業時間外の学修
各回の講義内容は繰り返し見返し、各回二時間ほど復習を行ってください。また、次回の学習内容についてもあらかじめ不明な単語や前提となる知識をWebで調べるなどして各回三時間ほど予習を行ってください。
特記事項
2026年4月1日現在。内容が更新される場合があります。
授業計画
第1回「構造」vs.「構造を表すための文字列」
第1回
「構造」vs.「構造を表すための文字列」
第2回シリアライザと文脈自由文法
第2回
シリアライザと文脈自由文法
第3回シリアライザの単射性
第3回
シリアライザの単射性
第4回ゲームブック (DFA)・状態遷移図
第4回
ゲームブック (DFA)・状態遷移図
第5回最小 DFA・分身できるすごろく(NFA・ε-NFA)・正則表現
第5回
最小 DFA・分身できるすごろく(NFA・ε-NFA)・正則表現
第6回正則表現・DFA・ε-NFA の能力はすべて同じ
第6回
正則表現・DFA・ε-NFA の能力はすべて同じ
第7回regex (いわゆる『正規表現』)
第7回
regex (いわゆる『正規表現』)
第8回正則言語とその諸性質
第8回
正則言語とその諸性質
第9回パーサー(構文解析器)という「逆シリアライザ」
第9回
パーサー(構文解析器)という「逆シリアライザ」
第10回数式の構文解析・再帰下降パーサー・スタック
第10回
数式の構文解析・再帰下降パーサー・スタック
第11回我々は実は最初からずっと「計算能力」の話をしていたのだ
第11回
我々は実は最初からずっと「計算能力」の話をしていたのだ
第12回そろそろ、動力を持つ解釈者(インタプリタ)の話をしよう
第12回
そろそろ、動力を持つ解釈者(インタプリタ)の話をしよう
第13回そろそろ、時間と効率の話をしよう
第13回
そろそろ、時間と効率の話をしよう
第14回集大成「貪欲マッチとキャプチャグループのある regex エンジンの製作」前半戦
第14回
集大成「貪欲マッチとキャプチャグループのある regex エンジンの製作」前半戦
第15回集大成「貪欲マッチとキャプチャグループのある regex エンジンの製作」後半戦
第15回
集大成「貪欲マッチとキャプチャグループのある regex エンジンの製作」後半戦
