言語処理系II

科目基礎情報

学校 木更津工業高等専門学校 開講年度 平成29年度 (2017年度)
授業科目 言語処理系II
科目番号 0043 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 情報工学科 対象学年 4
開設期 後期 週時間数 2
教科書/教材 宮本衛市著『はじめてのコンパイラ・原理と実践』森北出版、2007年、2520円(税込)
担当教員 丸山 真佐夫

到達目標

小さなコンパイラを教材として、コンパイラの構成方法を理解する。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
コンパイラの構成コンパイラの構成について詳細に理解できるコンパイラの構成について理解できるコンパイラの構成について理解できない
字句解析最長一致法および有限オートマトンによる軸解析の方法を詳細に理解できる最長一致法および有限オートマトンによる軸解析の方法を理解できる最長一致法および有限オートマトンによる軸解析の方法を理解できない
電卓プログラム下向き構文解析手法による数式の文法の解析方法を詳細に理解できる下向き構文解析手法による数式の文法の解析方法を理解できる下向き構文解析手法による数式の文法の解析方法を理解できない

学科の到達目標項目との関係

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週

評価割合

試験レポート合計
総合評価割合8020100
知識60060
実践的能力202040