山梨大学電子シラバス>検索結果一覧>授業データ



授業科目名
担当教員
コンパイラ
渡辺 喜道
時間割番号
単位数
コース
履修年次
期別
曜日
時限
263301 2 F過年度生 2 集中 (未登録) (未登録)
[概要]
最も一般的なソフトウェアの作成方法は,高水準(高級)プログラミング言語を用いて目的とするソフトウェアの動作を記述したプログラムを作成し,それをコンピュータに伝えることにより行われる.このとき,記述されたプログラムをコンピュータに伝えるための手段や道具が必要になる.つまり,プログラミング言語の持っている言語モデルとオペレーティングシステム/コンピュータアーキテクチャの間のギャップを埋める手段や道具が必要となる.そのような道具の中にはコンパイラやインタプリタ,トランスレータなどの言語処理系がある.これらは,現在のソフトウェア開発環境を支える上で,重要かつ欠くことのできない基本的なソフトウェア群である.本講義では,言語処理系の概念,動作,構造,構成法の初歩を学ぶ.特に,コンパイラを設計,構成するときに役立つ様々な手法を習得し,同時にそれらの持つ論理的な枠組みを理解し,それが実際のコンパイラのどの部分に適用されているかを理解することを目的とする.
[具体的な達成目標]
(1) コンパイラの働きを理解できる.<BR>(2) 字句のパターンを正規表現で表現でき,正規表現から状態数最小の有限オートマトンを構成できる.<BR>(3) 構文の定義ができる.<BR>(4) 下向き及び上向きの構文解析の方法を理解できる.<BR>(5) 簡単な意味解析ができる.<BR>(6) 基本的な文のコード生成ができる.<BR>(7) 最適化技術を理解できる.
[必要知識・準備]
本講義を履修するためには,授業科目「情報処理および実習」,「情報数学基礎」,「プログラミング入門」,「プログラミング入門演習」,「アルゴリズムとデータ構造I」,「アルゴリズムとデータ構造I演習」,「アルゴリズムとデータ構造II」,「アルゴリズムとデータ構造II演習」,「計算機アーキテクチャI」,「オートマトンと言語」および「プログラミング言語論」をあらかじめ履修し,それらの内容を十分に理解していること.
[評価方法・評価基準]
No評価項目割合評価の観点
1小テスト/レポート課題 100  %コンパイラの各フェーズの役割や基本的事項を理解しているか. 
[教科書]
  1. 湯浅太一, コンパイラ, 昭晃堂, ISBN:4785620501
[参考書]
  1. Aho, Sethi, Ullman,, Compilers - Principles, Techniques, and Tools, addison-wesley, ISBN:0201100886
[講義項目]
(01) コンパイラの概説(1) コンパイラの役割<BR>(02) コンパイラの概説(2) コンパイラのフェーズ<BR>(03) 字句解析(1) 字句解析の役割<BR>(04) 字句解析(2) 正規表現,有限オートマトン<BR>(05) 構文解析(1) 構文解析の役割<BR>(06) 構文解析(2) トップダウン構文解析<BR>(07) 構文解析(3) ボトムアップ構文解析<BR>(08) 構文解析(4) LR(1)構文解析<BR>(09) 意味解析<BR>(10) 中間コード生成(1) コード生成<BR>(11) 中間コード生成(2) レジスタ割当<BR>(12) 中間コード生成(3) 関数のコード生成<BR>(13) コード最適化<BR>(14) 最近のコンパイラ技術<BR>(15) 総括評価・まとめ
[教育方法]
・講義ではプロジェクタを使い,説明している.また,講義中用いるスライドの内容を紙媒体で配布し,講義を聴くことに集中できるようにしている.<BR>・講義中に簡単な演習問題を解かせ,コンパイラの仕事を体得できるように心がけている.<BR>・コンピュータを用いて,コンパイラに関連するツール等の動作を実演している.
[JABEEプログラムの学習・教育目標との対応]
《コンピュータ・メディア工学科 コンピュータサイエンスコース》
(C)問題を形式的にモデル化し,そのモデルを基に問題解決する知識と技術を習得する.
(D)ソフトウェアの実現に必要な各種の道具や手法を習得・理解し,これらを組み合わせて問題解決を行える知識と技術,およびその自発的・継続的学習法を習得する.
[その他]
・学生の理解度に応じて,内容を変更する場合がある.