到達目標
1. コンパイラの論理的構成を説明することができる。中置記法の算術式を後置記法に変換できる。
バッカス記法による文法記述を理解できる。正規表現から決定性有限オートマトンに変換できる。
2. 構文解析の役割を説明できる。シフト還元構文解析法で構文解析できる。
文法から直接左再帰性を除去できる。
LL(1)文法を判定できる。
3. LR 構文解析法で構文解析できる。
SLR(1)構文解析表およびLR(1)構文解析表を作成できる。
意味解析の役割を説明できる。
名前表の検索アルゴリズムを説明できる。
4. コード生成法を説明できる。
制御フロー解析およびデータフロー解析の方法を説明できる。
最適化変換の方法を説明できる。
例外処理のためのコード生成法,実行環境の役割,メモリ管理手法をそれぞれ説明できる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | | | |
評価項目2 | | | |
評価項目3 | | | |
学科の到達目標項目との関係
準学士課程(本科1〜5年)学習教育目標 (2)
説明
閉じる
JABEE基準 (d-1)
説明
閉じる
JABEE基準 (d-2a)
説明
閉じる
システム創成工学教育プログラム学習・教育目標 B-2
説明
閉じる
システム創成工学教育プログラム学習・教育目標 D-1
説明
閉じる
教育方法等
概要:
ソースコードをプログラミング言語の記法に沿って解析し,その意味する内容と同一な実行プログラムに変換するまでの手順,および,変換されたプログラムを効率的に動作させるための処理である最適化やガベージコレクションについて,処理の手順に沿って学習する。
授業の進め方・方法:
座学による講義を行う。随時,例題および演習問題を提示し,理解度の向上を図る。
定期試験返却時には解説を行い,理解が不十分な点を解消する。
注意点:
関連科目
「プログラミングI・II」を基礎とする。オートマトンの詳細は専攻科の「計算理論」で学ぶ。
学習指針
ノートを取る際には十分に思考して内容を理解するように努めること。授業中に扱う例題や演習問題は積極的に解答してみること。疑問点は講義中に解決するよう心掛けること。
自己学習
授業時間以外の予習・復習に努めること。教科書で紹介されているソースコードに目を通したり,実際にコンパイルしてみることは,理解を深めるために有効である。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
コンパイラの概要 |
コンパイラの役割を説明できる。
|
2週 |
算術式の記法 |
中値記法と後置記法の違いを理解し,相互に変換できる。
|
3週 |
コンパイラの構成 |
コンパイラの論理的な構成を説明できる。
|
4週 |
バッカス記法 |
バッカス記法と構文図式で記述された文法を理解できる。
|
5週 |
字句解析の役割 |
字句解析の役割を説明できる。
|
6週 |
非決定性有限オートマトン |
非決定性有限オートマトンの動作を説明できる。
|
7週 |
決定性有限オートマトン |
決定性有限オートマトンの制約条件を説明できる。
|
8週 |
字句解析の例 |
正規表現から決定性有限オートマトンを生成できる。
|
2ndQ |
9週 |
構文解析の役割 |
構文解析の役割を説明できる。
|
10週 |
上向き構文解析法 |
上向き構文解析法の概要を説明できる。
|
11週 |
下向き構文解析法(1) |
下向き構文解析法の概要を説明できる。
|
12週 |
下向き構文解析法(2) |
下向き構文解析法の問題点を説明できる。
|
13週 |
LL 構文解析(1) |
LL 構文解析の原理を説明できる。
|
14週 |
LL 構文解析(2) |
LL(1)文法の判定アルゴリズムを説明できる。
|
15週 |
前期末試験 |
授業内容を理解し,試験問題に対して正しく解答できる。
|
16週 |
試験返却・解説 |
試験問題を見直し,理解が不十分な点を解消する。
|
後期 |
3rdQ |
1週 |
LR 構文解析(1) |
LR 構文解析における項と状態の定義を説明できる。
|
2週 |
LR 構文解析(2) |
LR 構文解析法で構文解析ができる。
|
3週 |
SLR(1)構文解析 |
SLR(1)構文解析表を作成できる。
|
4週 |
LR(1)構文解析 |
LR(1)構文解析表を作成できる。
|
5週 |
意味解析 |
意味解析の役割を説明できる。
|
6週 |
名前表 |
名前表の検索アルゴリズムを説明できる。
|
7週 |
コード生成(1) |
式と代入文のコード生成法を説明できる。
|
8週 |
コード生成(2) |
if 文とwhile 文のコード生成法を説明できる。
|
4thQ |
9週 |
制御フロー解析 |
プログラムの制御フローを解析できる。
|
10週 |
データフロー解析 |
データフロー方程式の意味を説明できる。
|
11週 |
最適化変換 |
最適化変換の方法を説明できる。
|
12週 |
例外処理 |
例外処理の実行手順とコンパイル方法を説明できる。
|
13週 |
実行環境 |
実行環境の役割を説明できる。
|
14週 |
メモリ管理 |
メモリ管理の手法を説明できる。
|
15週 |
学年末試験 |
授業内容を理解し,試験問題に対して正しく解答できる。
|
16週 |
試験返却・解説 |
試験問題を見直し,理解が不十分な点を解消する。
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系 | プログラミング | 主要な言語処理プロセッサの種類と特徴を説明できる。 | 3 | |
プログラミング言語は計算モデルによって分類されることを理解している。 | 3 | |
主要な計算モデルを説明できる。 | 3 | |
システムプログラム | 形式言語の概念について説明できる。 | 3 | |
オートマトンの概念について説明できる。 | 3 | |
コンパイラの役割と仕組みについて説明できる。 | 3 | |
情報数学・情報理論 | コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。 | 3 | |
評価割合
| 試験 | 課題レポート | 合計 |
総合評価割合 | 80 | 20 | 100 |
基礎的能力 | 80 | 20 | 100 |
専門的能力 | 0 | 0 | 0 |