コンパイラ

科目基礎情報

学校 石川工業高等専門学校 開講年度 2018
授業科目 コンパイラ
科目番号 17060 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 電子情報工学科 対象学年 5
開設期 後期 週時間数 2
教科書/教材 中田ほか、「コンパイラ」、コロナ社 / 関連のプリントを配布する
担当教員 川除 佳和

到達目標

1. コンパイラの構成について説明できる。
2. コンパイラの変換の流れを説明できる。
3. 言語理論について理解し,概説できる。
4. 正規表現を理解し,説明できる。
5. 有限オートマトンを理解し,説明できる。
6. 文脈自由文法について理解し,説明できる。
7. 下向き構文解析について理解し,説明できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
到達目標 項目 1, 2コンパイラの構成と変換の流れについて理解し、説明できる。コンパイラの構成と変換の流れについて理解できる。コンパイラの構成と変換の流れについて説明できない。
到達目標 項目 3, 4, 5言語理論の概念、および、正規表現と有限オートマトンを理解し、正規表現と有限オートマトンの相互変換が説明できる。言語理論の概念、および、正規表現と有限オートマトンを理解し、説明できる。言語理論の概念、および、正規表現と有限オートマトンを説明できない。
到達目標 項目 6, 7文脈自由文法と下向き構文解析について理解し、説明できる。文脈自由文法と下向き構文解析について理解できる。文脈自由文法と下向き構文解析について説明できない。

学科の到達目標項目との関係

本科学習目標 1 説明 閉じる
本科学習目標 2 説明 閉じる
創造工学プログラム B1専門(電気電子工学&情報工学) 説明 閉じる

教育方法等

概要:
コンパイラ理論の基礎となるオートマトン・言語理論を学び,コンパイラの字句解析,構文解析などの基本的手法の習得を目標とする。さらに,適宜演習を交えながら「自分の書いたプログラムがどのようにして機械語に変換されるのか?」を実践的に学ぶ。これらの学習を通して,幅広い視点から問題解決する能力を養う。
授業の進め方・方法:
学習の到達度をみるため,演習においてレポート課題を課す。
【関連科目】プログラミングII,アルゴリズムとデータ構造,情報理論Ⅰ
注意点:
講義では教科書以外にプリントを配布します.課題レポートは必ず提出すること。
【評価方法・評価基準】
中間試験,期末試験を実施する。成績の評価基準として60点以上を合格とする。
中間試験(40%),期末試験(40%),レポート(20%)

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 コンパイラについて コンパイラの役割と仕組みについて説明できる。
2週 コンパイラの構成(T図式) コンパイラの構成、および、変換の流れをT図式で説明できる。
3週 文法と言語(1) 形式言語の概念について説明できる。
4週 文法と言語(2) 形式言語の概念について説明できる。
5週 字句解析(1):正規表現 正規表現の概念について説明できる。
6週 字句解析(2):有限オートマトン オートマトンの概念について説明できる。
7週 字句解析(3):正規表現から有限オートマトンへの変換 正規表現から有限オートマトンへの変換について説明できる。
8週 lexによる字句解析器の生成演習 lexを用いて字句解析器を作成できる。
4thQ
9週 構文解析(1):文脈自由文法 文脈自由文法について説明できる。
10週 構文解析(2):下向き構文解析(1) 下向き構文解析の概念について理解できる。
11週 構文解析(3):下向き構文解析(2) 下向き構文解析の概念について説明できる。
12週 構文解析(4):LL(1)文法 LL(1)文法の概念について説明できる。
13週 yaccによる構文解析器の生成演習 yaccを用いて構文解析器を作成できる。
14週 計算機演習 lexとyaccを用いて簡単なプログラミング言語を作成できる。
15週 後期復習
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。2
ソフトウェアコンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。2
システムプログラム形式言語の概念について説明できる。4
オートマトンの概念について説明できる。4
コンパイラの役割と仕組みについて説明できる。4後1

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合80000200100
基礎的能力0000000
専門的能力80000200100
分野横断的能力0000000