到達目標
(ア)コンパイラの基礎的な概念、その構成を理解する。
(イ)簡単なコンパイラの例として記法の変換を理解し、プログラムを作成できる。
(ウ)文法と言語についてその考え方を理解し、文法をバッカス記法で定義し、構文図式で表現できる。
(エ)字句解析と正規表現を理解し、字句読み取りプログラムをlexを用いて作成できる。
(オ)構文解析と文法を理解し、与えられた文法に対する簡単な例文とその解析木を作成できる。
(カ)構文解析と文法を理解し、yaccによる構文解析プログラムを作成できる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | コンパイラを設計する上で必要な知識として、形式言語の概念について説明できる。 | 形式言語の概念について説明できる。 | 形式言語の概念について説明できない。 |
評価項目2 | コンパイラを設計する上で必要な知識として、正規表現と有限オートマトンの関係を説明できる。 | 正規表現と有限オートマトンの関係を説明できる。 | 正規表現と有限オートマトンの関係を説明できない。 |
評価項目3 | コンパイラの役割と仕組みを理解し、簡易的なコンパイラを設計・実現できる。 | コンパイラの役割と仕組みについて説明できる。 | コンパイラの役割と仕組みについて説明できない。 |
学科の到達目標項目との関係
学習・教育到達度目標 A2 ソフトウェア開発において,数理的理論に基づくスマートな設計ができるとともに,ハードウェアの基本動作を意識した設計ができる.
JABEE d 当該分野において必要とされる専門的知識とそれらを応用する能力
本校教育目標 ① ものづくり能力
教育方法等
概要:
コンピュータシステムにおけるソフトウェアの基本的な要素(システムプログラム)の代表的な例である言語翻訳プログラム(コンパイラ)を取り扱う。本科目は文法や言語に関する基礎知識の復習から始めて、コンパイラの基礎的な概念やその構成を学ぶ。さらにコンパイラの設計法を演習を通じて理解を深める。
授業の進め方・方法:
注意点:
計算機言語論A,B、形式言語理論を修得していることが望ましい。継続的に授業内容の予習・復習を行うこと。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
シラバスを用いた授業内容の説明、コンパイラとは、コンパイラの基礎的な概念(復習:プログラム言語の歴史) |
コンパイラの役割と仕組みを理解する。
|
2週 |
コンパイラの構成:変換系と通訳系、T図式、I図式(復習:T図式、I図式、予習:記法の変換) |
コンパイラの仕組みをT図式で表現できる。
|
3週 |
簡単なコンパイラの例:記法の変換、後置記法、中置記法、同プログラミング演習(復習:四則演算コンパイラ設計) |
簡単なコンパイラを理解する。
|
4週 |
簡単なコンパイラの例:記法の変換、後置記法、中置記法、同プログラミング演習(復習:四則演算コンパイラ設計) |
簡単なコンパイラをプログラミングできる。
|
5週 |
文法と言語:バッカス記法、構文図式(復習:文法と言語の表現方法) |
形式言語の概念を理解する。
|
6週 |
文法と言語:バッカス記法、構文図式(復習:文法と言語の表現方法) |
形式言語のうち、文脈自由文法を理解する。
|
7週 |
yaccとlex(復習:yacc、lexのプログラミング) |
簡単なコンパイラをyaccとlexを用いて作成できる。
|
8週 |
字句解析:正規表現と有限オートマトン(復習:プログラム言語の字句解析) |
正規表現と有限オートマトンの関係を理解する。
|
4thQ |
9週 |
lexによる字句解析演習(復習:lexのプログラミング) |
lexを用いて字句解析器を記述できる。
|
10週 |
構文解析:構文解析の種類、下向き構文解析(復習:構文解析の歴史と種類) |
構文解析の種類を理解する。
|
11週 |
yaccによる構文解析演習(復習:yacc、lexのプログラミング) |
yaccを用いて構文解析器を記述できる。
|
12週 |
意味解析:記号表と探索、プログラムの意味誤り(復習:記号表の設計) |
意味解析を理解する。
|
13週 |
仮想計算機と仮想中間言語(復習:仮想計算機の設計、コーディング、予習:コンパイラ設計) |
仮想計算機と仮想中間言語を理解する。
|
14週 |
コンパイラ設計プログラミング演習(復習:総合的なプログラミング) |
コンパイラを設計・実現できる。
|
15週 |
コンパイラ設計プログラミング演習(復習:総合的なプログラミング) |
コンパイラを設計・実現し、評価できる。
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
評価割合
| 定期試験 | 合計 |
総合評価割合 | 100 | 100 |
専門的能力 | 100 | 100 |