到達目標
コンパイラを構成する字句解析器と構文解析器とコード生成器を作れる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
下向き構文解析器の動作を追跡できる。 | 与えられた文法に対する上向き構文解析器を完成させて、具体的なソースプログラムに対する動作を追跡できる。 | 与えられた文法に対する上向き構文解析器を用いて、具体的なソースプログラムに対する動作を追跡できる。 | 下向き構文解析器の動作を追跡できない。 |
上向き構文解析器の動作を追跡できる。 | 与えられたAction表とGoto表を用いて、具体的なソースプログラムに対するLR構文解析器の動作を追跡できる。 | 与えられたAction表とGoto表を用いて、具体的なソースプログラムに対するLR構文解析器の動作を部分的に追跡できる。 | LR構文解析器の動作を追跡できない。 |
式と制御文と関数に対するコード生成の手法を示せる。 | 具体的なソースプログラムの式と制御文と関数に対してアセンブリ言語の命令列を示せる。 | 式と制御文と関数に対するアセンブリ言語の命令列を部分的に示せる。 | 式と制御文と関数に対するアセンブリ言語の命令列を示せない。 |
最適化の手法を示せる。 | 具体的なアセンブリ言語の命令列に対していくつかの最適化の手法を適用できる。 | いくつかの最適化の手法を説明できる。 | 最適化の手法を説明できない。 |
学科の到達目標項目との関係
本科(準学士課程)の学習・教育到達目標 3-c
説明
閉じる
教育方法等
概要:
ソフトウェア技術者はコンパイラの内部構造を理解することが不可欠である。本科目の受講生にはコンパイラを構成する字句解析器と構文解析器とコード生成器を作れるようになることが求められる。
授業の進め方・方法:
授業はスライド資料を用いた講義形式で行う。授業資料は事前に配布する。授業では予習で分らなかったことを中心に理解を深めること。
注意点:
コンパイラの理論は集合の記法を用いて記述されることが多い。読解できるように慣れておくこと。
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
構文解析 |
下向き構文解析器と上向き構文解析器の特徴を示せる。下向き構文解析器に適合するように文法の左再帰性を除去できる。
|
2週 |
構文解析 |
与えられた文法に対するFirst集合とFollow集合を求められる。
|
3週 |
構文解析 |
与えられた文法に対するDirector集合を求められる。LL(1)文法の判定ができる。
|
4週 |
構文解析 |
与えられた文法に対する下向き構文解析器を作れる。
|
5週 |
構文解析 |
下向き構文解析器の動作をトレースできる。
|
6週 |
構文解析 |
上向き構文解析器の動作をトレースできる。
|
7週 |
演習 |
ここまでの学習内容に関わる質問に解答できる。
|
8週 |
中間試験 |
試験において間違えた部分を自分の課題として把握する(非評価項目)。
|
4thQ |
9週 |
意味解析 |
構文解析と意味解析の役割分担を示せる。
|
10週 |
コード生成 |
式に対するコード生成手法を示せる。
|
11週 |
コード生成 |
制御文に対するコード生成手法を示せる。
|
12週 |
コード生成 |
関数に対するコード生成手法を示せる。
|
13週 |
最適化 |
最適化の具体例を示せる。
|
14週 |
演習 |
ここまでの学習内容に関わる質問に解答できる。
|
15週 |
試験答案の返却・解説 |
試験において間違えた部分を自分の課題として把握する(非評価項目)。
|
16週 |
|
|
評価割合
| 試験 | 課題 | 態度 | 合計 |
総合評価割合 | 60 | 40 | 0 | 100 |
専門的能力 | 60 | 40 | 0 | 100 |