到達目標
コンパイラにおける字句解析、構文解析手法を理解する。さらに形式言語、オートマトンについての基礎を理解する。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
コンパイラの構成 | コンパイラの構成について詳細に理解できる | コンパイラの構成について理解できる | コンパイラの構成について理解できない |
字句解析 | 最長一致法および有限オートマトンによる軸解析の方法を詳細に理解できる | 最長一致法および有限オートマトンによる軸解析の方法を理解できる | 最長一致法および有限オートマトンによる軸解析の方法を理解できない |
電卓プログラム | 下向き構文解析手法による数式の文法の解析方法を詳細に理解できる | 下向き構文解析手法による数式の文法の解析方法を理解できる | 下向き構文解析手法による数式の文法の解析方法を理解できない |
学科の到達目標項目との関係
教育方法等
概要:
字句解析、構文解析の理論とともに、小さなコンパイラのプログラムを通じて具体的な処理内容を学ぶ。
授業の進め方・方法:
字句解析、構文解析の理論については座学および机上の演習によって学ぶ一方、小さなコンパイラを題材として実際のプログラムを読んだり書いたりする演習によってコンパイラの内部を理解する。
注意点:
字句解析、構文解析等の理論を理解することと同時に、本講義では提示された例題プログラムの読解やコーディングも多く要求されるので、プログラミング能力を高める機会とすること。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
コンパイラの基礎概念 |
インタプリタとコンパイラ各方式、典型的なコンパイラの構成を理解する。
|
2週 |
コンパイラの基礎概念 |
字句解析、構文解析の理論がコンパイラの基礎的な理論であることを理解する。
|
3週 |
文法の記述 |
BNFによる文法記述の方法を理解する。
|
4週 |
文法の記述 |
BNFによってC言語の文法の一部を記述する方法を理解する。
|
5週 |
最長一致による字句解析 |
最長一致による字句解析プログラムの構成方法を理解する。
|
6週 |
有限オートマトン |
有限オートマトンと正規文法の基礎を理解する。
|
7週 |
有限オートマトン |
非決定性有限オートマトンを等価な決定性有限オートマトンに変換できることを理解する。
|
8週 |
有限オートマトン |
非決定性有限オートマトンを等価な決定性有限オートマトンに変換できることを理解する。
|
2ndQ |
9週 |
有限オートマトンによる字句解析 |
有限オートマトンを用いた字句解析の手法を理解する。
|
10週 |
下向き構文解析 |
下向き構文解析がトップダウンに構文解析木を生成する過程を理解する。
|
11週 |
下向き構文解析 |
下向き構文解析における FIRST 集合の役割を理解する。
|
12週 |
下向き構文解析 |
FOLLOW 集合、DIRECTOR 集合、LL(1) 文法について理解する。
|
13週 |
下向き構文解析 |
生成規則に対応する解析プログラムの作り方を理解する。
|
14週 |
電卓プログラム演習 |
四則演算からなる式を解析する電卓プログラムの構成を理解する。
|
15週 |
電卓プログラム演習 |
電卓プログラムのコードを実際に記述できるようになる。
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
評価割合
| 課題・小テスト | レポート | 合計 |
総合評価割合 | 80 | 20 | 100 |
知識 | 60 | 0 | 60 |
実践的能力 | 20 | 20 | 40 |