到達目標
コンパイラに関する基礎項目である,字句解析,構文解析,意味解析,最適化,コード生成について,学び,その内容を理解し,説明ができるようになることを目標とする。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
字句解析 | 字句解析器の仕組みを説明できる。 | 正規表現で字句構文を記述できる。 | 正規表現で字句構文を記述できない。 |
構文解析 | 等価交換の各種の手法を使って文法を変形できる。 | 導出や解析木を使って,字句列を解析できる。 | 導出や解析木を使って字句列を解析できない。 |
意味解析 | 手続き実行時のコールスタックの動作を説明できる。 | 式や文を中間コードに変換できる。 | 式や文を中間コードに変換できない。 |
最適化 | 具体的例題に対してデータフロー解析ができる。 | 各種の局所最適化を例を挙げて説明できる。 | 各種の局所的最適化を例を挙げて説明できない。 |
学科の到達目標項目との関係
教育方法等
概要:
コンパイラは,高水準のプログラミング言語をマシン語の命令列に変換し出力するソフトウェアである。この講義では,コンパイラを構成する各フェーズが,どのような理論に基づいて実装されているかを学ぶ。
授業の進め方・方法:
座学による講義形式を基本とする。必要に応じて演習も行う。
注意点:
【成績評価の基準・方法】
試験の成績を60%、平素の学習状況を40%の割合で総合的に評価する。技術者が身につけるべき専門知識として、上記の到達目標に対する達成度を試験等において評価する。
【事前・事後学習】
事前学習として配布した教材を読んだ上で、理解が難しかった部分を整理して授業に臨むこと。また、事後学習として授業内で提示した課題・演習問題に取り組み提出すること。
【学習単位科目(授業時間外の学習時間等)】
本科目は学習単位のため、以下の標準学習時間を指定した自主学習を累計45時間分以上実施して提出しなければ、成績が60点を超えた場合でも59点として扱い単位を認定しない。
・全15回の授業に対して、0.5時間の事前学習と1.5時間の事後学習(課題含む)。計30時間分以上。
・中間試験および期末試験に対してそれぞれの試験勉強のための課題学習4時間。計8時間分。
【履修上の注意】
この科目を履修するにあたり、3年生科目の「アルゴリズムとデータ構造」4年生科目の「アセンブリⅠ」「グラフとオートマトン」の内容を十分に理解しておくこと。
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
序論:言語処理系,コンパイラの構造を概観する。 |
言語処理系,コンパイラの構造の概要が理解できる。
|
2週 |
字句解析:字句解析,正規表現,有限オートマトン等について学ぶ。 |
字句解析,正規表現,有限オートマトン等が理解できる。
|
3週 |
構文解析(1):構文解析とは何か。文脈自由文法について学ぶ。 |
構文解析とは何か。文脈自由文法が理解できる。
|
4週 |
構文解析(2):導出木と解析木,下向き構文解析について学ぶ。 |
導出木と解析木,下向き構文解析が理解できる。
|
5週 |
構文解析(3):LL(1)文法について学ぶ。 |
LL(1)文法が理解できる。
|
6週 |
構文解析(4):文法の変換,LL(1)判定について学ぶ。 |
文法の変換,LL(1)判定が理解できる。
|
7週 |
構文解析(5):上向き構文解析,LR(1)文法,構文解析ツールについて学ぶ。 |
上向き構文解析,LR(1)文法が理解でき,使用可能な構文解析ツールを知っている。
|
8週 |
意味解析(1):意味解析とは何か。中間表現の種類について学ぶ。 |
意味解析の内容と中間表現が理解できる。
|
4thQ |
9週 |
意味解析(2):構文主導翻訳,後置表記計算等について学ぶ。 |
構文主導翻訳,後置表記計算等が理解できる。
|
10週 |
意味解析(3):制御文の命令列への翻訳,手続きの動作と中間コードについて学ぶ。 |
制御文の命令列への翻訳,手続きの動作と中間コードが理解できる。
|
11週 |
最適化(1):最適化とは何か,その種類,制御フローグラフについて学ぶ。 |
最適化の内容と,その種類,制御フローグラフが理解できる。
|
12週 |
最適化(2):局所最適化について学ぶ。 |
局所最適化が理解できる。
|
13週 |
最適化(3):大域最適化の種類,データフロー解析について学ぶ。 |
大域最適化の種類,データフロー解析が理解できる。
|
14週 |
コード生成(1):コード生成とは何か,算術式のコード生成について学ぶ。 |
コード生成の内容,算術式のコード生成が理解できる。
|
15週 |
コード生成(2):レジスタ割当について学ぶ。 |
レジスタ割当が理解できる。
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
評価割合
| 試験 | 課題 | 合計 |
総合評価割合 | 60 | 40 | 100 |
基礎的能力 | 50 | 30 | 80 |
専門的能力 | 10 | 10 | 20 |