授業科目

コンパイラ
Compiler

担当者

教授   田中 賢
後 火4

単位

2

到達目標

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

授業内容

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

授業計画

1、ガイダンス、コンパイラの概要
2、正則表現と字句要素
3、最簡オートマトンの構成、lexを用いた字句解析プログラムの作り方
4、プログラミング言語のシンタックスの記述法
5、再帰的下向き構文解析法、LL(1)文法
6、コンパイラに関する演習
7、上向き構文解析法、SLR(1)文法、LR(1)文法
8、LALR(1)文法、yaccを用いた構文解析プログラムの作り方
9、名前空間とスコープを用いたオブジェクト構造体の対応付け
10、ヒープ、スタックなどのメモリモデル
11、文、算術式、関数のコード生成
12、覗き穴最適化、レジスタ割り当てなどの最適化手法
13、変数の生死解析
14、まとめと確認テスト

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

授業運営

板書の書き写しよりも講義に耳を傾けることを求める。よって、あらかじめ講義資料を配布し、資料に要点や各自の疑問点を記入していく姿勢で受講されたい。資料には一部空欄があるが、それは各自が講義を聴きながら充足することを意図している。初回に指示するURLより各回分の講義資料をダウンロードし、予習の上講義の際に持参すること。

評価方法

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

オフィスアワー

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

使用書

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

参考書

中田育男『コンパイラの構成と最適化』初版[朝倉書店]1999年
A.V.エイホ 他『コンパイラI、II 原理・技法・ツール』初版[サイエンス社(Information & Computing)]1990年
ラビ・セシィ『プログラミング言語の概念と構造』初版[ピアソン・エデュケーション]2002年

Copyright© 2017 Kanagawa University. All Rights Reserved.