シラバスの詳細な内容を表示します。
→ 閉じる(シラバスの一覧にもどる)
開講年度 | 2021 年度 | |
---|---|---|
開講区分 | 工学部情報工学科/総合工学科情報工学コース ・専門教育 | |
受講対象学生 |
学部(学士課程) : 3年次 |
|
選択・必修 | 必修 |
|
授業科目名 | コンパイラ | |
こんぱいら | ||
Compiler Design | ||
単位数 | 2 単位 | |
ナンバリングコード | ||
開放科目 | 非開放科目 | |
開講学期 |
前期 |
|
開講時間 |
木曜日 7, 8時限 |
|
授業形態 |
ハイブリッド授業 * 状況により変更される可能性があるので定期的に確認して下さい
「オンライン授業」・・・オンライン会議ツール等を利用して実施する同時双方向型の授業 |
|
開講場所 | ||
担当教員 | 太田 義勝(非常勤講師) | |
OHTA, Yoshikatsu | ||
SDGsの目標 |
|
|
連絡事項 | * 状況により変更される可能性があるので定期的に確認して下さい |
授業の概要 | コンパイラは,高水準のプログラミング言語から機械語レベルの命令列へと変換するソフトウェアである.この講義では,コンパイラの各フェーズ(処理の論理的なまとまり)がどのように構成され,どんな理論に基づいて実現されているかを学ぶ.また,プログラミング言語処理系を実際に作る際に役立つ基礎技術を修得する. |
---|---|
学修の目的 | コンパイラについて,次の観点から理解を深める. ・構成と仕組み ・基礎理論 ・作成技術 |
学修の到達目標 | ●字句解析:正規表現で字句構文を記述できる.字句解析器の仕組みを説明できる. ●構文解析:文脈自由文法で言語の構文を記述できる.導出や解析木を使って,文法に基づいて字句列を解析できる.等価変換の各種の手法を使って文法を変形できる.再帰下降構文解析とLR構文解析の考え方を説明できる.文法が LL(1) であるかや LR(1) であるかを,(必要ならツールの助けを借りて)判定できる.文法に沿って構文解析手続きを実現できる. ●意味解析:式や文を中間コードに変換できる.構文主導翻訳に基づく属性値の計算ができる.記号表の役目を説明できる.手続き実行時のコールスタックの動作を説明できる. ●最適化:各種の局所最適化を,例を挙げて説明できる.例題に対してDAGを使った局所最適化ができる.各種の大域最適化を,例を挙げて説明できる.例題に対してデータフロー解析ができる. ●コード生成:算術式の構文木の例に対してコード生成ができる.中間コードの例に対してレジスタ割り当てができる. |
ディプロマ・ポリシー |
|
成績評価方法と基準 | 期末試験10割.講義への10回以上の出席が期末試験の受験資格.6割以上の得点で合格. |
授業の方法 | 講義 |
授業の特徴 |
Moodleを活用する授業 |
授業改善の工夫 | ウェブを活用して授業の情報や資料を見られるようにする. |
教科書 | なし (資料を配布) |
参考書 | 『コンパイラ—原理・技法・ツール—』,A. V. エイホ,M. S. ラム,R. セシィ,J. D. ウルマン,第2版,サイエンス社,2009. 『プログラミング言語処理系』,佐々政孝,岩波書店,1989. |
オフィスアワー | 電子メールで受け付けます(E-mail:ohta@net.info.mie-u.ac.jp) 。 |
受講要件 | |
予め履修が望ましい科目 | データ構造・アルゴリズム論 I,離散数学,オートマトン・形式言語理論,計算機言語論 I |
発展科目 | 情報工学実験 |
その他 |
MoodleのコースURL |
https://moodle.mie-u.ac.jp/moodle35/course/view.php?id=348 |
---|
キーワード | プログラミング言語,字句解析,構文解析,意味解析,中間コード生成,コード最適化,コード生成 |
---|---|
Key Word(s) | programming language, lexical analysis, syntax analysis, semantic analysis, intermediate code generation, code optimization, code generation |
学修内容 | ●第1回 序論 言語処理系,コンパイラの構造 ●第2回 字句解析 字句解析とは,正規表現,有限オートマトン,字句解析器の生成ツール ●第3回 構文解析 1 構文解析とは,文脈自由文法 ●第4回 構文解析 2 導出と解析木の対応,下向き構文解析 ●第5回 構文解析 3 LL(1)文法,文法の等価変換 ●第6回 構文解析 4 LL(1)判定,拡張文脈自由文法 ●第7回 構文解析 5 上向き構文解析,LR構文解析 ●第8回 構文解析 6 LR(1)文法,構文解析器の生成ツール ●第9回 意味解析 1 意味解析とは,中間表現 ●第10回 意味解析 2 構文主導翻訳,後置表記の計算,制御文の命令列への翻訳 ●第11回 意味解析 3 記号表,手続きの動作と中間コード ●第12回 最適化 1 最適化とは,制御フローグラフ,最適化の種類 ●第13回 最適化 2 局所最適化,DAGによる最適化 ●第14回 最適化 3 大域最適化,データフロー解析 ●第15回 目的コード生成 コード生成とは,算術式のコード生成,レジスタ割り当て ●第16回 期末試験 |
事前・事後学修の内容 | 授業前に学習事項を確認し,配布資料や参考書を読んで疑問点を整理しておく. |
事前学修の時間:90分/回 事後学修の時間:150分/回 |