到達目標
1.字句解析の理論と方法を理解ている。
2.構文解析の理論と方法を理解している
3.目的譜生成の理論と方法を理解している
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | 正規文法の原理を理解し,字句解析オートマトンの構築方法を説明でき,さらにオートマトンを構成できる | 字句解析オートマトンを構成できる | 字句解析オートマトンを構成できない |
評価項目2 | 構文解析の目的を理解し、各種解析技法を説明できる | 各種構文解析技法に基づく解析の流れを説明できる | 構文解析技法を説明できない |
評価項目3 | 解析木から効率的な目的譜を生成するための原理を理解し,その振る舞いを提示できる | 目的譜生成の原理を説明できる | 目的譜生成原理を説明できない |
学科の到達目標項目との関係
教育方法等
概要:
まず,コンパイラの処理目的・処理内容を理解し,システムプログラムとしての位置づけを理解する。さらに,コンパイラを構成する上での理論的基盤である言語理論を理解し,コンパイラがその理論的知識をどの様な目的のために利用しているかを理解する。また,コンパイラが翻訳した機械語プログラムを,コンピュータの上で動作させるために必要な知識や手続きを理解する。
授業の進め方・方法:
コンパイラは,大きく字句解析,構文解析,目的譜生成の3つに分かれている。教科書を基に,それぞれの目的,理論的知識,処理方法について講義・解説し,理解を確認・確定するために練習問題や小テスト,e-Learningを使って演習を行う。
注意点:
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
言語処理系について |
高級言語とアセンブリ言語やマシン語の違いを認識し,コンパイラの3大要素の概略を理解する
|
2週 |
コンパイラの構造 |
コンパイラの3大要素それぞれについて入力から出力を生成する概要を理解する
|
3週 |
文法の形式的定義 |
バッカス記法や拡張バッカス記法にる文法の定義方法や解析木を理解する
|
4週 |
字句解析の役割 |
字句解析の出力出るトークンが何かを理解し,入力である文字列から取り出すための方法を理解する
|
5週 |
正規文法,正規表現 |
トークンを構成する文法である正規文法と正規表現を理解する
|
6週 |
有限オートマトンと字句解析譜 |
トークンを認識するためのプログラムである有限オートマトンを正規文法や正規表現から生成する方法を理解する
|
7週 |
NFAからDFAへの変換 |
曖昧さのある非決定性有限オートマトン(NFA)から曖昧さの無い決定性有限オートマトン(DFA)を生成する方法と意味を理解する
|
8週 |
DFAの最適化 試験対策 |
DFAから冗長なノードを削除する方法を理解する
|
2ndQ |
9週 |
前期中間試験 |
|
10週 |
構文解析の目的と種類 |
構文解析の意味を再認識し,2大構文解析法である上向き構文解析法と下向き構文解析法の概略的流れを理解する
|
11週 |
順位文法の概要 |
上向き構文解析法である順位文法の,順位の意味を理解し,構文解析の流れを確認する
|
12週 |
順位文法の各種集合と順位表 |
順位文法に基づく構文解析において利用する順位表を作成するための手がかりである各種集合の意味を理解し,順位表を作成できる
|
13週 |
2重の関係の解消 |
順位表の不都合な要素である2重の関係を解消できる
|
14週 |
順位関数 |
順位表から順位関数を生成する方法を理解する
|
15週 |
LL(1)文法の概略 |
下向き構文解析法であるLL(1)文法の概要を理解する
|
16週 |
試験対策 |
|
後期 |
3rdQ |
1週 |
LL(1)文法の各種集合 |
LL(1)構文解析を行うための各種集合を作成できる
|
2週 |
LL(1)文法に基づく構文解析プログラム |
Director集合から構文解析プログラムを作成できる
|
3週 |
LR系構文解析の概要 |
LR系コンパイラの内部状態とは何かを理解し,状態集合を作成できる
|
4週 |
不都合な状態とSLR(1)構文解析 |
不都合な状態とは何かを理解し,解決法の1つであるSLR(1)構文解析の概要を理解できる
|
5週 |
SLR(1)の各種表 |
SLR(1)構文解析を行うための各種表を作成できる
|
6週 |
SLR(1)の構文解析動作 |
SLR(1)構文解析を行うための各種表を利用し構文解析動作を模倣できる
|
7週 |
SLR(1)の各種表の最適化(1) |
SLR(1)構文解析動作の効率化を行うための概要を理解できる
|
8週 |
試験対策 |
|
4thQ |
9週 |
後期中間試験 |
|
10週 |
SLR(1)の各種表の最適化(2) |
SLR(1)構文解析動作の効率化を行うために各種表を改造できる
|
11週 |
LALR(1)構文解析 |
不都合な状態の解決法の1つであるLALR(1)構文解析の概要を理解できる
|
12週 |
算術式の目的譜生成(1) |
構文解析の出力である解析木から,使用できるレジスタが1個の場合の効率的な目的譜を生成する方法を理解できる
|
13週 |
算術式の目的譜生成(2) |
構文解析の出力である解析木から,使用できるレジスタが複数の場合の効率的な目的譜を生成する方法を理解できる
|
14週 |
論理式の目的譜生成 |
論理式の解析木から効率的な目的譜を生成する方法を理解できる
|
15週 |
実行時の環境管理 |
実行可能プログラムの構造を理解し,動作時の変数や配列の割り当て法,関数妖美だ指示のスタックの利用方法などを理解できる
|
16週 |
試験対策 |
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
評価割合
| 試験 | 演習解答 | 合計 |
総合評価割合 | 80 | 20 | 100 |
基礎的能力 | 40 | 10 | 50 |
専門的能力 | 40 | 10 | 50 |
分野横断的能力 | 0 | 0 | 0 |