到達目標
コンパイラとは、人間の記述したプログラムを計算機で実行可能な形式に変換するためのプログラムである。
コンパイラは、プログラム開発に必須のツールであったことから、アルゴリズムについて比較的研究がなされてきた分野である。
本講義では、コンパイラの基本的な概念、原理および作成方法について解説する。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
実際に利用されている処理系の動作原理を理解することができる。 | 具体的な処理系の仕組みを図示できる。 | 代表的な処理系の仕組みを理解できる。 | インタプリタ、コンパイラの意味を説明できない。 |
簡単な言語処理系の開発手法を理解でき、最新の開発手法についても説明できる。 | 字句解析、構文解析のプログラムを自作できる。 | 与えられた字句解析、構文解析のプログラムを説明できる。 | 与えられたプログラムを説明できない。 |
最新の言語処理系の動向について、理解できる。 | 複数のプログラム言語の特徴を説明できる。 | Java,Cなどの言語の特徴を説明できる。 | プログラム言語の特徴を説明できない。 |
学科の到達目標項目との関係
専門 A2
説明
閉じる
教養 C1
説明
閉じる
教養 C2
説明
閉じる
教養 C3
説明
閉じる
専門 E1
説明
閉じる
専門 E2
説明
閉じる
専門 E3
説明
閉じる
教育方法等
概要:
コンパイラとは、人間の記述したプログラムを計算機で実行可能な形式に変換するためのプログラムである。
コンパイラは、プログラム開発に必須のツールであったことから、アルゴリズムについて比較的研究がなされてきた分野である。
本講義では、コンパイラの基本的な概念、原理および作成方法について解説する。
授業の進め方・方法:
反転授業形式で講義を行う。
講義前にmoodleで講義資料を提示するので事前学習してから授業に出席すること。
注意点:
・講義30時間に対し、自己学習60時間に相当する課題(小テスト、レポート、プログラム製作)を課す。
・複数のプログラム言語や処理系を紹介する
実務経験のある教員による授業科目
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
ガイダンス(moodleの使い方) |
|
2週 |
T記法による処理系の表現 コンパイラの仕組み |
各種処理系をT記法を用いて説明することができる
|
3週 |
プログラム言語体系と処理系 |
現在利用されている言語の特徴について理解する。
|
4週 |
形式言語論 形式言語、言語、オートマトン |
形式言語論を通じて自然言語や順序回路などの 具体的な対象を抽象的にモデル化して 問題解決が図れるようにすること
|
5週 |
非決定性有限オートマトン 決定性有限オートマトン 最適化 |
非決定性有限オートマトンから決定性有限オートマトンへの変換ができること
|
6週 |
演算子順位文法 文脈自由文法 |
文法に応じた構文解析のプログラムが利用できる
|
7週 |
LL文法 |
文法に応じた構文解析のプログラムが利用できる
|
8週 |
中間試験 |
|
4thQ |
9週 |
インタプリタの実装 |
Javaを用いて簡単なインタプリタ、 コンパイラのプログラムを作成できる。
|
10週 |
仮想計算機 |
Javaを用いて簡単なインタプリタ、 コンパイラのプログラムを作成できる。
|
11週 |
インタプリタの実装 |
Javaを用いて簡単なインタプリタ、 コンパイラのプログラムを作成できる。
|
12週 |
インタプリタの実装 |
Javaを用いて簡単なインタプリタ、 コンパイラのプログラムを作成できる。
|
13週 |
文法の拡張 |
Javaを用いて簡単なインタプリタ、 コンパイラのプログラムを作成できる。
|
14週 |
文法の拡張 |
Javaを用いて簡単なインタプリタ、 コンパイラのプログラムを作成できる。
|
15週 |
期末試験・まとめ |
|
16週 |
試験解説および講評 |
|
評価割合
| 定期試験 | 小テスト | レポート | 口頭発表 | 成果物 実技 | ポートフォリオ | その他 | 合計 |
総合評価割合 | 50 | 10 | 20 | 0 | 20 | 0 | 0 | 100 |
知識の基本的な理解 | 50 | 5 | 10 | 0 | 10 | 0 | 0 | 75 |
思考・推論・創造への適応力 | 0 | 0 | 10 | 0 | 0 | 0 | 0 | 10 |
主体的・継続的な学習意欲 | 0 | 5 | 0 | 0 | 10 | 0 | 0 | 15 |