授業科目

コンパイラ
Compilers

担当者

准教授 馬谷 誠二
後 火2

単位

2

到達目標

本講義では、コンパイラの内部構造や仕組みを理解することを通じて、コンピュータによって言語を扱う際の基本的な方法を知る。理学部情報科学科のカリキュラムポリシーに従い,オートマトン理論で学んだ言語や文法を、コンパイラを学ぶことによって実際の言語や文法と結びつけることができる。

授業内容

コンパイラは、ある言語で書かれた計算機プログラムをそれと等価な別の言語のプログラムに翻訳するソフトウェアで、計算機プログラムを作成する際に必須のツールである。本講義では、コンパイラの構成方法を解説する。コンパイラの内部構造や仕組みを知り、プログラミング言語をより深いレベルから理解することで、言語の特性を踏まえたプログラム開発ができるようになることを目指す。前期にオートマトン理論を履修しておくことが望ましい。

授業計画

01. ガイダンス、コンパイラの概要
02. 正則表現と字句要素
03. 最簡オートマトンの構成、lexを用いた字句解析プログラムの作り方
04. プログラミング言語のシンタックスの記述法
05. 再帰的下向き構文解析法、LL(1)文法
06. コンパイラに関する演習
07. 上向き構文解析法、SLR(1)文法、LR(1)文法
08. LALR(1)文法、yaccを用いた構文解析プログラムの作り方
09. 名前空間とスコープを用いたオブジェクト構造体の対応付け
10. ヒープ、スタックなどのメモリモデル
11. 文、算術式、関数のコード生成
12. オブジェクト指向言語の扱い
13. 関数型言語の扱い
14. まとめと確認テスト

本講義では毎回の授業に対して予習復習あわせて4時間程度の自己学習が必要である。次回の講義前までに配布資料に目を通し分からない部分を明確にしておくこと。授業後にはその部分を中心に全体の内容を再度確認すること。

授業運営

あらかじめ講義資料を配布する。資料に要点や各自の疑問点を記入しながら受講すること。初回に指示するURLより各回分の講義資料をダウンロードし、予習の上講義の際に持参すること。

評価方法

出席率が2/3に満たないものには単位を与えない。講義の中で理解を深めるための演習問題を課し、レポートの提出を求める。確認テストの結果とレポートの内容を総合的に判断して評価する。

オフィスアワー

金2限、2号館227室。会議などで不在の場合があるので電子メールでアポイントをとること。メールアドレスは初回講義で通知する。

使用書

湯淺太一『コンパイラ』初版[オーム社(情報系教科書シリーズ)]2014

参考書

Andrew W. Appel『最新コンパイラ構成技法』初版[翔泳社]2009
中田育男『コンパイラの構成と最適化』第2版[朝倉書店]2009

Copyright© 2017 Kanagawa University. All Rights Reserved.