科目名 : コンパイラ

科目コード 91020
配当学年 2年
開講期 後期
曜時限 月曜・2時限
講義室 総合研究7号館情報2
単位数 2
履修者制限
講義形態 講義
言語
担当教員 椋木・馬谷・中澤(巧)

講義概要

計算機の基本ソフトウェアであるコンパイラやインタプリタなどの言語処理系とそれらの関係などについて概説し, その内の特にコンパイラについて,字句解析手法,構文解析手法,コード生成手法について詳説する.取り上げる構文解析法は, 再帰的下向き構文解析法, LR構文解析法など.lexやyaccなどのコンパイラ生成ツールについても触れる.

評価方法

期末試験の成績による.

最終目標

コンパイラの構造と理論を学ぶとともに,大規模ソフトウェア開発のためのセンスを学ぶ.

講義計画

項目 回数 内容説明
コンパイラの概要 1 コンパイラのおおまかな機能と構造について概説する.コンパイラの内部で使用されるデータ構造やアセンブリ言語を紹介し,コンパイラを構成する基本処理(字句解析,構文解析,意味解析,コード生成,最適化処理)の概要について触れる.
字句解析 3 プログラミング言語の字句構造を正規表現で規定する方法および有限オートマトンにおける状態遷移によって字句解析を実現する方法を紹介する.効率のよい字句解析プログラムを得るために,任意の非決定性有限オートマトンを,状態数最少の決定性有限オートマトンに変換するアルゴリズムを紹介する.
文法 2 プログラミング言語の文法を規定するバッカス記法と構文図式を紹介する.次に,文法の形式的定義を紹介し,アルファベット,出発記号,生成規則,終端記号,非終端記号,生成,導出,還元,文,文形式などの用語を説明する.さらに,構文解析木について触れる.
構文解析 3 構文解析のための主要な解析法として,再帰的下向き構文解析法とLR構文解析法を紹介する.
意味解析 2 意味解析に関するトピックを取り上げ,それらの実現手法を紹介する.
コード生成 2 目的コード生成の際に有効ないくつかの技法を紹介する.式の処理とレジスタ割り当て,論理式の処理を紹介する.
最適化 1 さまざまな最適化手法を紹介する.ループ不変式の削除,レジスタ割当て,変数の生死解析を紹介する.
まとめ 1 まとめ,補足,学習到達度の確認を行う.

教科書

湯淺太一著:コンパイラ(昭晃堂)

参考書

予備知識

計算機ハードウェアの基礎知識およびプログラミング経験を有することが望ましい.

授業URL

初回の講義中に伝える.

その他

当該年度の授業進度などに応じて一部省略,追加がありうる.