出版社内容情報
コンパイラはプログラミング言語が実際に動作するまでの仕組みである。本書では,主としてC言語をコンパイラの対象として説明し,Javaについてはコンパイラの構成の観点から説明する。具体的には字句解析,構文解析,コード生成,最適化について説明している。実際に簡単なプログラミング言語の処理系を作成するための,lexやyaccを使用した基本的な手法を学ぶことができる。また,プログラミング言語の処理方式を理解することで,プログラムを作成・実行するうえでも有用となる。
第1章 プログラムが動作する仕組み
1.1 コンピュータの仕組み
1.2 プログラム開発の目的
1.3 コンピュータの発展と問題点
第2章 言語が動作する仕組み
2.1 自然言語と人工言語
2.2 プログラミング言語と機械語
2.3 言語を動作させる工夫
2.4 アルゴリズム
第3章 字句解析
3.1 トークン
3.2 トークンの種類
3.3 字句解析の手法
3.4 状態遷移図の表による表現
3.5 トークンの定義
3.6 字句解析のツール
第4章 文法
4.1 規格の必要性
4.2 文法と言語
4.3 導出
4.4 構文木
4.5 BNF
4.6 構文木と演算子の記法
第5章 下向構文解析
5.1 再帰下降法
5.2 演算子の追加
5.3 文法からの下向構文解析の生成
5.4 LL(k)構文解析
第6章 yaccによる構文解析
6.1 yacc
6.2 演算子の優先順位
第7章 上向構文解析
7.1 SLR構文解析
7.2 SLRの動作の仕組み
7.3 SLR(k)
7.4 正規LR構文解析
7.5 SLRとLRの違い
第8章 yaccの仕組み:LALR構文解析
8.1 LALR構文解析
8.2 LALR構文解析の状態集合
8.3 あいまいな文法
第9章 構文木と意味づけ
9.1 意味づけ
9.2 記号の管理
9.3 スコープを考えない記号表
9.4 スコープの処理
9.5 属性文法
9.6 中間言語
9.7 機械独立性
第10章 コード生成
10.1 コード生成
10.2 レジスタ割り当て
10.3 スタック型コンピュータ
10.4 クロスコンパイラ
第11章 関数・手続きの処理
11.1 関数の処理の例
11.2 関数の呼び出し
11.3 大域変数
11.4 静的バインディングと動的バインディング
11.5 引数の種類
11.6 結合編集
第12章 最適化
12.1 最適化
12.2 機械独立の最適化
12.3 プログラムのフローダイアグラム
12.4 機械依存の最適化
12.5 機械語命令レベルの最適化
12.6 最適化の注意
第13章 インタプリタと仮想計算機
13.1 さまざまな実行方法
13.2 インタプリタ
13.3 コンパイラインタプリタ
13.4 仮想計算機
13.5 プログラミング言語向きアーキテクチャ
13.6 インタプリタ的機械の生成
目次
プログラムが動作する仕組み
言語が動作する仕組み
字句解析
文法
下向構文解析
yaccによる構文解析
上向構文解析
yaccの仕組み:LALR構文解析
構文木と意味づけ
コード生成
関数・手続きの処理
最適化
インタプリタと仮想計算機
著者等紹介
佐渡一広[サドカズヒロ]
1983年3月東京工業大学理工学研究科情報科学専攻博士後期課程単位取得退学。4月群馬大学工学部情報工学科助手。1985年6月東京工業大学(理学博士)。1987年4月群馬大学工学部情報工学科助教授。1993年10月群馬大学社会情報学部助教授。2010年4月‐現在、群馬大学社会情報学部教授。学会等:情報処理学会会員、日本社会情報学会会員、ソフトウェア科学会会員、ACM会員、IEEE会員
寺島美昭[テラシマヨシアキ]
1984年3月埼玉大学工学部電子工学科卒業。4月三菱電機株式会社入社。現在、同社債情報技術総合研究所主席研究員、博士(工学)。学会等:情報処理学会会員、電子情報通信学会会員、IEEE会員
水野忠則[ミズノタダノリ]
1969年3月名古屋工業大学経営工学科卒業。4月三菱電機株式会社入社。1987年2月九州大学(工学博士)。1993年4月静岡大学教授。2011年4月‐現在、愛知工業大学教授、静岡大学名誉教授。受賞歴:2009年9月情報処理学会功績賞ほか。学会等:情報処理学会員、電子情報通信学会員、IEEE会員、ACM会員、Informatics Society会員(本データはこの書籍が刊行された当時に掲載されていたものです)
※書籍に掲載されている著者及び編者、訳者、監修者、イラストレーターなどの紹介情報です。