三重大学ウェブシラバス


シラバス表示

 シラバスの詳細な内容を表示します。

→ 閉じる(シラバスの一覧にもどる)

科目の基本情報

開講年度 2017 年度
開講区分 工学部情報工学科 ・専門教育
受講対象学生 学部(学士課程) : 3年次
選択・必修 必修
授業科目名 コンパイラ
こんぱいら
Compiler Design
単位数 2 単位
他学部・他研究科からの受講
市民開放授業 市民開放授業ではない
開講学期

前期

開講時間
開講場所 工学部指定教室

担当教員 山田俊行

YAMADA, Toshiyuki

学習の目的と方法

授業の概要 コンパイラは,高水準のプログラミング言語から機械語レベルの命令列へと変換するソフトウェアである.この講義では,コンパイラの各フェーズ(処理の論理的なまとまり)がどのように構成され,どんな理論に基づいて実現されているかを学ぶ.また,プログラミング言語処理系を実際に作る際に役立つ基礎技術を修得する.
学習の目的 コンパイラについて,次の観点から理解を深める.
・構成と仕組み
・基礎理論
・作成技術
学習の到達目標 ●字句解析:正規表現で字句構文を記述できる.字句解析器の仕組みを説明できる.
●構文解析:文脈自由文法で言語の構文を記述できる.導出や解析木を使って,文法に基づいて字句列を解析できる.等価変換の各種の手法を使って文法を変形できる.再帰下降構文解析とLR構文解析の考え方を説明できる.文法が LL(1) であるかや LR(1) であるかを,(必要ならツールの助けを借りて)判定できる.文法に沿って構文解析手続きを実現できる.
●意味解析:式や文を中間コードに変換できる.構文主導翻訳に基づく属性値の計算ができる.記号表の役目を説明できる.手続き実行時のコールスタックの動作を説明できる.
●最適化:各種の局所最適化を,例を挙げて説明できる.例題に対してDAGを使った局所最適化ができる.各種の大域最適化を,例を挙げて説明できる.例題に対してデータフロー解析ができる.
●コード生成:算術式の構文木の例に対してコード生成ができる.中間コードの例に対してレジスタ割り当てができる.
ディプロマ・ポリシー
○ 学科・コース等の教育目標
○ JABEE 関連項目

○ 全学の教育目標
感じる力
  •  感性
  •  共感
  •  倫理観
  • ○モチベーション
  •  主体的学習力
  •  心身の健康に対する意識
考える力
  •  幅広い教養
  • ○専門知識・技術
  • ○論理的思考力
  •  課題探求力
  • ○問題解決力
  •  批判的思考力
コミュニケーション力
  •  情報受発信力
  •  討論・対話力
  •  指導力・協調性
  •  社会人としての態度
  •  実践外国語力
生きる力
  •  感じる力、考える力、コミュニケーション力を総合した力

授業の方法 講義

授業の特徴 Moodle

教科書 なし(資料を配布)
参考書 『コンパイラ—原理・技法・ツール—』,A. V. エイホ,M. S. ラム,R. セシィ,J. D. ウルマン,第2版,サイエンス社,2009.
『プログラミング言語処理系』,佐々政孝,岩波書店,1989.
成績評価方法と基準 期末試験10割.講義への10回以上の出席が期末試験の受験資格.6割以上の得点で合格.
オフィスアワー 水曜日7〜8時限 (14:40-16:10),情報棟5階 山田講師室
受講要件 なし
予め履修が望ましい科目 データ構造・アルゴリズム論 I,オートマトン・形式言語理論,計算機言語論 I
発展科目 情報工学実験
授業改善への工夫 毎回の確認問題で受講生の理解度を把握し,授業の進度を調整する.確認問題の答案に授業への意見も書いてもらい,授業の進め方を改善する.ウェブを活用して授業の情報や資料を見られるようにする.Moodle を出席状況と採点結果の通知に使う.
その他 授業のホームページ(メールによる連絡先等も掲載)
http://www.cs.info.mie-u.ac.jp/~toshi/lectures/compiler/

授業計画

キーワード プログラミング言語,字句解析,構文解析,意味解析,中間コード生成,コード最適化,コード生成
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(1)文法,構文解析器の生成ツール
●第8回 意味解析 1
 意味解析とは,中間表現の種類
●第9回 意味解析 2
 構文主導翻訳,後置表記の計算,記号表
●第10回 意味解析 3
 制御文の命令列への翻訳,手続きの動作と中間コード
●第11回 最適化 1
 最適化とは,制御フローグラフ,最適化の種類
●第12回 最適化 2
 局所最適化の種類,DAGによる最適化
●第13回 最適化 3
 大域最適化の種類,データフロー解析
●第14回 コード生成 1
 コード生成とは,算術式のコード生成
●第15回 コード生成 2
 レジスタ割り当て
●第16回 期末試験
学習課題(予習・復習) 授業前に学習事項を確認し,教科書を読んで疑問点を整理しておく.ウェブページ上の確認問題を解き,理解度を確認する.復習には,授業中に解けなかった確認問題や教科書等の演習問題を解き,ウェブページの解答や解説を参考にするとよい.
ナンバリングコード(試行)

※最初の2文字は開講主体、続く4文字は分野、最後の数字は開講レベルを表します。 ナンバリングコード一覧表はこちら


Copyright (c) Mie University