コンパイラ   Compiler

文字サイズ 

担当教員
滝本 宗宏 
使用教室
木5-6(W834)  
単位数
講義:2  演習:0  実験:0
講義コード
5533
シラバス更新日
2014年1月23日
講義資料更新日
2013年9月20日
学期
後期  /  推奨学期:6

講義概要

CやJavaなどのプログラミング言語によって書かれたプログラムは、コンパイラと呼ばれる特別なソフトウェアによって、アセンブリ言語や機械語のプログラムに翻訳されて、実行される。この授業では、プログラミング言語についての基礎的な概念や形式化を述べたあと、普段書いているプログラムがコンピュータ内部でどのように実行されるか、またそのためにコンパイラがどのように構成されているかを説明する。コンパイラは、一般にフロントエンドとバックエンドとの2つの部分に分けることができる。フロントエンドはさらに字句解析、構文解析、意味解析の3つに、バックエンドは中間表現の生成、コード最適化、目的コード作成の3つに分けられる。この授業では、講義時間の関係から、全体を詳しく説明する余裕がないので、フロントエンドの部分に焦点を当てて講義を行う。コンピュータアーキテクチャ、アセンブリ言語によるプログラム演習、およびデータ構造とアルゴリズムについての基礎知識を前提とする。

講義の目的

この講義を通じて、現在のプログラミング言語がどのような考え方と技術によって支えられているか、プログラミング言語がコンピュータアーキテクチャとどのように密接に関係しているか、また過去に学んだデータ構造とアルゴリズムが実際にどのように応用されているか、さらにはコンパイラの開発を通じて計算機科学がどのように発展を遂げてきたかを理解していただきたい。

講義計画

言語プロセッサの概要:プログラムの実行方式、コンパイラの内部構造、実際に翻訳されたコードの例
第2回 字句解析(1):トークンと正規表現
第3回 字句解析(2):正規表現とNFA
第4回 字句解析(3):NFAとDFA
第5回 構文解析(1):文脈自由文法とBNF
第6回 構文解析(2):予測型構文解析の基本
第7回 構文解析(3):FirstとFollowの計算法
第8回 構文解析(4):予測型構文解析器の実現
第9回 構文解析(5):LR構文解析の基本
第10回 構文解析(6):SLR構文解析
第11回 構文解析(7):LR(1)とLALR(1)構文解析
第12回 フロントエンドの実現(1):字句解析器自動生成系の使い方
第13回 フロントエンドの実現(2):構文解析器自動生成系の使い方
第14回 コード生成(1)
第15回 コード生成(2)

教科書・参考書等

次の本を参考書として使用する.
Andrew W. Appel著,神林靖,滝本宗宏訳,最新コンパイラ構成技法,翔栄社.

関連科目・履修の条件等

特になし

成績評価

定期試験とレポートの点数によって成績とする.

連絡先(メール、電話番号)

mune@cs.is.noda.tus.ac.jp

このページのトップへ