到達目標
1. コンパイラの構成について説明できる。
2. コンパイラの変換の流れを説明できる。
3. 言語理論について理解し,概説できる。
4. 正規表現を理解し,説明できる。
5. 有限オートマトンを理解し,説明できる。
6. 文脈自由文法について理解し,説明できる。
7. 下向き構文解析について理解し,説明できる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
到達目標
項目 1, 2 | コンパイラの構成と変換の流れについて理解し、説明できる。 | コンパイラの構成と変換の流れについて理解できる。 | コンパイラの構成と変換の流れについて説明できない。 |
到達目標
項目 3, 4, 5 | 言語理論の概念、および、正規表現と有限オートマトンを理解し、正規表現と有限オートマトンの相互変換が説明できる。 | 言語理論の概念、および、正規表現と有限オートマトンを理解し、説明できる。 | 言語理論の概念、および、正規表現と有限オートマトンを説明できない。 |
到達目標
項目 6, 7 | 文脈自由文法と下向き構文解析について理解し、説明できる。 | 文脈自由文法と下向き構文解析について理解できる。 | 文脈自由文法と下向き構文解析について説明できない。 |
学科の到達目標項目との関係
本科学習目標 1
説明
閉じる
本科学習目標 2
説明
閉じる
創造工学プログラム B1専門(電気電子工学&情報工学)
説明
閉じる
教育方法等
概要:
コンパイラ理論の基礎となるオートマトン・言語理論を学び、コンパイラの字句解析、構文解析などの基本的手法の習得を目標とする。さらに、適宜演習を交えながら「自分の書いたプログラムがどのようにして機械語に変換されるのか?」を実践的に学ぶ。これらの学習を通して、幅広い視点から問題解決する能力を養う。
授業の進め方・方法:
学習の到達度をみるため、演習においてレポート課題を課す。
【関連科目】プログラミング基礎II、アルゴリズムとデータ構造、情報数学
【MCC対応】Ⅴ-D-1 プログラミング、Ⅴ-D-4 コンピュータシステム、Ⅴ-D-5 システムプログラム
注意点:
講義では教科書以外にプリントを配布します。課題は必ず提出すること。
【評価方法・評価基準】
中間試験,期末試験を実施する。成績の評価基準として60点以上を合格とする。
総合評価:中間試験の評点(40%)、期末試験の評点(40%)、課題(20%)
テスト
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
コンパイラとは |
コンパイラの役割と仕組みについて理解し、説明できる。
|
2週 |
種々の言語処理系におけるコンパイラ |
インタプリタやプリプロセッサなどの各種言語処理系を理解したうえで、一般的なコンパイラの構成を理解し、変換の流れをT図式で説明できる。
|
3週 |
文法と言語 |
形式言語の概念について説明できる。
|
4週 |
字句解析とは |
コンパイラにおける字句解析の役割を理解し、説明できる。
|
5週 |
有限オートマトン(1) |
有限オートマトンの概念について理解し、説明できる。
|
6週 |
有限オートマトン(2) |
決定性、非決定性の有限オートマトンの違いを理解し、説明できる。
|
7週 |
正規表現 |
正規表現を理解したうえで、正規言語を正規表現で表すことができる。
|
8週 |
正規表現と有限オートマトン |
正規表現と有限オートマトンの等価性を理解し、相互の変換ができる。
|
4thQ |
9週 |
構文解析とは |
構文解析の概念を理解し、その役割を説明できる。
|
10週 |
文脈自由文法 |
文脈自由文法について説明できる。
|
11週 |
下向き構文解析(1) |
下向き構文解析の概念について説明できる。
|
12週 |
下向き構文解析(2) |
下向き構文解析の流れと課題を理解し、説明できる。
|
13週 |
LL(1)文法 |
LL(1)文法を理解し、与えられた文法がLL1(1)であるかを判定できる。
|
14週 |
計算機演習(lexとyacc) |
lexとyaccにより簡単なコンパイラを作成できる。
|
15週 |
後期復習 |
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 4 | |
主要な計算モデルを説明できる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 2 | |
システムプログラム | 形式言語の概念について説明できる。 | 4 | |
形式言語が制限の多さにしたがって分類されることを説明できる。 | 4 | |
オートマトンの概念について説明できる。 | 4 | |
正規表現と有限オートマトンの関係を説明できる。 | 4 | |
コンパイラの役割と仕組みについて説明できる。 | 4 | 後1 |
評価割合
| 試験 | 課題 | 合計 |
総合評価割合 | 80 | 20 | 100 |
基礎的能力 | 0 | 0 | 0 |
専門的能力 | 80 | 20 | 100 |
分野横断的能力 | 0 | 0 | 0 |