三重大学ウェブシラバス


シラバス表示

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

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

科目の基本情報

開講年度 2020 年度
開講区分 工学部情報工学科/総合工学科情報工学コース ・専門教育
受講対象学生 学部(学士課程) : 3年次
選択・必修 必修
授業科目名 コンパイラ
こんぱいら
Compiler Design
単位数 2 単位
ナンバリングコード
開放科目 非開放科目    
開講学期

前期

開講時間 木曜日 5, 6時限
開講場所

担当教員 山田俊行(工学部情報工学コース)

YAMADA, Toshiyuki

SDGsの目標

学修の目的と方法

授業の概要 コンパイラは,高水準のプログラミング言語から機械語レベルの命令列へと変換するソフトウェアである.この講義では,コンパイラの各フェーズ(処理の論理的なまとまり)がどのように構成され,どんな理論に基づいて実現されているかを学ぶ.また,プログラミング言語処理系を実際に作る際に役立つ基礎技術を修得する.
学修の目的 コンパイラについて,次の観点から理解を深める.
・構成と仕組み
・基礎理論
・作成技術
学修の到達目標 ●字句解析:正規表現で字句構文を記述できる.字句解析器の仕組みを説明できる.
●構文解析:文脈自由文法で言語の構文を記述できる.導出や解析木を使って,文法に基づいて字句列を解析できる.等価変換の各種の手法を使って文法を変形できる.再帰下降構文解析とLR構文解析の考え方を説明できる.文法が LL(1) であるかや LR(1) であるかを,(必要ならツールの助けを借りて)判定できる.文法に沿って構文解析手続きを実現できる.
●意味解析:式や文を中間コードに変換できる.構文主導翻訳に基づく属性値の計算ができる.記号表の役目を説明できる.手続き実行時のコールスタックの動作を説明できる.
●最適化:各種の局所最適化を,例を挙げて説明できる.例題に対してDAGを使った局所最適化ができる.各種の大域最適化を,例を挙げて説明できる.例題に対してデータフロー解析ができる.
●コード生成:算術式の構文木の例に対してコード生成ができる.中間コードの例に対してレジスタ割り当てができる.
ディプロマ・ポリシー
○ 学科・コース等の教育目標
○ JABEE 関連項目
 情報工学の基礎知識を身につけ、科学技術が社会や自然環境に及ぼす影響を理解し、責任ある技術者として行動できる。【技術者倫理】
 情報工学科に関連する様々な分野に関心をもち、未知分野を理解するために、自主的、継続的に学習できる。【自主的継続的学習】
 世界に多様な考え方があることを学び、様々な立場の考えや意見を尊重し、多面的に物事を考えることができる。【多面的な思考能力】
 情報工学に関連する課題に対して、与えられた条件や期限を熟慮し、計画的に作業を進め、報告できる。【計画的な活動】
 専門分野の英語で書かれた文献について理解し、説明できる.また、学習や実験で得た知見を、論理的に記述し、的確に発表し、討議できる。【コミュニケーション能力】
 自然科学と情報技術に関する十分な知識を修得し、それらの知識を応用できる。【知識の修得と応用】
 与えられた問題に対し、修得した知識や技術を利用して、関連情報を収集し、解決手法を提案し、実現できる。【問題解決能力】

○ 全学の教育目標
感じる力
  •  感性
  •  共感
  •  主体性
考える力
  •  幅広い教養
  • ○専門知識・技術
  • ○論理的・批判的思考力
コミュニケーション力
  •  表現力(発表・討論・対話)
  •  リーダーシップ・フォロワーシップ
  •  実践外国語力
生きる力
  • ○問題発見解決力
  •  心身・健康に対する意識
  •  社会人としての態度・倫理観

成績評価方法と基準 期末試験10割.講義への10回以上の出席が期末試験の受験資格.6割以上の得点で合格.
授業の方法 講義

授業の特徴

PBL

特色ある教育

Moodleを活用する授業

英語を用いた教育

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

授業計画

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回 期末試験
事前・事後学修の内容 授業前に学習事項を確認し,配布資料や参考書を読んで疑問点を整理しておく.ウェブページ上の確認問題を解き,理解度を確認する.復習には,授業中に解けなかった確認問題や教科書等の演習問題を解き,ウェブページの解答や解説を参考にするとよい.

Copyright (c) Mie University