到達目標
小さなコンパイラを教材として、コンパイラの構成方法を理解する。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
コンパイラの構成 | コンパイラの構成について詳細に理解できる | コンパイラの構成について理解できる | コンパイラの構成について理解できない |
字句解析 | 最長一致法および有限オートマトンによる軸解析の方法を詳細に理解できる | 最長一致法および有限オートマトンによる軸解析の方法を理解できる | 最長一致法および有限オートマトンによる軸解析の方法を理解できない |
電卓プログラム | 下向き構文解析手法による数式の文法の解析方法を詳細に理解できる | 下向き構文解析手法による数式の文法の解析方法を理解できる | 下向き構文解析手法による数式の文法の解析方法を理解できない |
学科の到達目標項目との関係
JABEE B-2 専門分野の知識と能力
準学士課程 2(2) 専門分野の知識と能力
教育方法等
概要:
字句解析、構文解析の理論とともに、小さなコンパイラのプログラムを通じて具体的な処理内容を学ぶ。
授業の進め方・方法:
字句解析、構文解析の理論については座学および机上の演習によって学ぶ一方、小さなコンパイラを題材として実際のプログラムを読んだり書いたりする演習によってコンパイラの内部を理解する。
注意点:
字句解析、構文解析等の理論を理解することと同時に、本講義では提示された例題プログラムの読解やコーディングも多く要求されるので、プログラミング能力を高める機会とすること。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
コード生成 |
一般的なコンパイラにおけるコード生成の方法について理解する。
|
2週 |
コード生成 |
スタックを用いたローカル変数の生成、関数呼出しの実現方法について理解する。
|
3週 |
仮想スタックマシン |
スタック演算を行う仮想マシンの構成と命令を理解する。
|
4週 |
仮想スタックマシン |
逆ポーランド記法を理解し、スタックマシン上で式を計算する手順を理解する。
|
5週 |
pico Cコンパイラ演習 |
式や変数に対して、適切な仮想計算機コードを出力できる。
|
6週 |
pico Cコンパイラ演習 |
IF文、WHILE文に対する適切な構文解析、仮想計算機命令を出力できる。
|
7週 |
pico Cコンパイラ演習 |
制御構造を追加して、その部分の構文解析とコード生成のプログラムを書けるようになる。
|
8週 |
後期中間試験 |
|
4thQ |
9週 |
LR構文解析の基礎 |
LR構文解析がボトムアップに解析木を生成する過程を理解する。
|
10週 |
SLR構文解析表 |
文法定義からSLR構文解析表を構成する方法を理解する。
|
11週 |
SLR構文解析の動作 |
具体的な文法に対して、SLR構文解析の処理過程をシミュレートできるようになる。
|
12週 |
LALR/正準LR構文解析 |
還元動作の判断基準によるLR構文解析の種類と各手法の特徴を理解する。
|
13週 |
LALR/正準LR構文解析 |
SLRとの対比でLALR、正準LRの各解析手法を理解する。
|
14週 |
コンパイラコンパイラ演習 |
コンパイラコンパイラを用いて構文解析プログラムを生成する方法を習得する。
|
15週 |
コンパイラコンパイラ演習 |
コンパイラコンパイラを用いて簡単な構文解析プログラムを作成できるようになる。
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系 | システムプログラム | 形式言語の概念について説明できる。 | 3 | |
オートマトンの概念について説明できる。 | 3 | |
コンパイラの役割と仕組みについて説明できる。 | 6 | |
評価割合
| 試験 | レポート | 合計 |
総合評価割合 | 80 | 20 | 100 |
知識 | 60 | 0 | 60 |
実践的能力 | 20 | 20 | 40 |