概要:
プログラムを解析してコンピュータで実行可能な形式に変換するための基礎理論や、コンパイラがオートマトンの具体的な応用の一つであることを理解するとともに、字句解析器や構文解析器の自動生成ツール等の応用を学ぶことを目標とする。
これまでに学んだC言語やJava言語などのコンパイラが、どのような仕組みで動作しているのかを理解することができる。
授業の進め方・方法:
講義形式で授業を行います。コンパイラの理論はオートマトンを用いることを前提とするので、オートマトンの授業内容を確認しておくとよいです。
また、章ごとなどの区切りで適宜レポート課題を課します。
成績評価:シラバスに定める評価割合に基づき100点法で評価を算出し、「学業成績の試験・評価に関する内規」に従い、60点以上を合格とする。
課題提出期限:後期末成績評価まで
期限超過時:再試験の対象となる場合は、受理し再試験の合否に基づいて評価する。
中間評価:評価割合に準ずる。
提出課題等の注意事項:学修単位科目のため、事前・事後学習として課したポートフォリオを必ず提出すること。
再試合否:定期試験の得点が60%未満であった範囲についての出題に対してそれぞれ60%以上の得点をその範囲の合格とし、かつ合格した再試験の評点を100点満点中60点とする評価割合に基づいた評価が60点以上であれば合格とし、評点を60点とする。
前関連科目:オートマトン(3年)
後関連科目:オペレーティングシステム(4年)
注意点:
コンパイラの仕組みを理解することで、プログラミング言語の制限やコンパイル時のエラーメッセージの理由なども知ることができるので、自分でコンパイル操作をする際のコンパイラの挙動をよく観察しておくとよいです。
事前に行う準備学習:講義の冒頭で予習・復習内容を説明する。
| 分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
| 専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数の概念を説明できる。 | 4 | 前11 |
| データ型の概念を説明できる。 | 4 | 前11 |
| 代入や演算子の概念を理解し、式を記述できる。 | 3 | 前14,前15 |
| 制御構造の概念を理解し、条件分岐を記述できる。 | 3 | 前11 |
| 制御構造の概念を理解し、反復処理を記述できる。 | 3 | 前11 |
| プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | 前14,前15 |
| 与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | 前12,前13,前14,前15 |
| 主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | 前1,前6 |
| ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | 前1,前6 |
| プログラミング言語は計算モデルによって分類されることを説明できる。 | 4 | 前1 |
| 主要な計算モデルを説明できる。 | 4 | 前1 |
| ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | 前2,前3,前4,前5,前7,前9,前10 |
| 与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | 前2,前3,前4,前5,前7,前9,前10 |
| 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | 前2,前3,前4,前5,前7,前9,前10 |
| 時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前2,前3,前4,前5,前7,前9,前10 |
| 領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 4 | 前2,前3,前4,前5,前7,前9,前10 |
| 整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | 前2,前3,前4,前5,前7,前9,前10 |
| コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 前11 |
| 同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | 前4,前5,前7,前9,前10 |
| リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | 前4,前5,前7,前9,前10 |
| ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 4 | 前12,前13,前14,前15 |
| 同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 4 | 前4,前5,前7,前9,前10 |
| システムプログラム | 形式言語の概念について説明できる。 | 4 | 前2,前3 |
| 形式言語が制限の多さにしたがって分類されることを説明できる。 | 4 | 前2,前3 |
| オートマトンの概念について説明できる。 | 4 | 前7,前9,前10 |
| 正規表現と有限オートマトンの関係を説明できる。 | 4 | 前2 |
| コンパイラの役割と仕組みについて説明できる。 | 4 | 前1 |