朝倉書店 Asakura Pulishing Co., Ltd.
お問い合わせカートをみる購入ヘルプ
会社案内利用規約プライバシー規約サイトマップ採用情報リンク常備店一覧
教科書についてのお問合せ
「愛読者の声」ご投稿はこちら
ジャンル検索


SSL GMOグローバルサインのサイトシール

最終更新日:2017.08.01

会社案内

コンパイラの構成と最適化 (第2版)

コンパイラの構成と最適化

A5/624ページ/2009年11月20日
ISBN978-4-254-12177-3 C3041
定価10,584円(本体9,800円+税)

中田育男 著

カートに入れる

【書店の店頭在庫を確認する】    

紀伊國屋書店 旭屋倶楽部 東京都書店案内

好評いただいた初版から10年,以降の進展も折り込み,全体の構成を整理し,さらに新たな章として,レジスタ割付け,データの流れの解析の別法,オブジェクト指向言語での最適化,を設けた。「コンパイラのバイブル」として君臨する内容である。

執筆者一覧

著者略歴

なかた いくお
中田育男
1935年 長野県に生まれる
1960年 東京大学大学院数物系研究科数学専門課程修士課程修了
1960年 株式会社日立製作所入社
1979年 筑波大学電子・情報工学系教授
2000年 法政大学情報科学部教授
現 在 筑波大学名誉教授,理学博士
著 書 コンパイラの技法(竹内書店,1971),コンパイラ(産業図書,1981),基礎FORTRAN(岩波書店,1991),コンパイラ(オーム社,1995),コンパイラの構成と最適化(朝倉書店,1999),コンパイラの基盤技術と実践(朝倉書店,2008)

目次

第I部 コンパイラの概要

1. はじめに
1.1 コンパイラとは
1.2 変換系と通訳系

2. コンパイラの簡単な例
2.1 後置記法
2.2 スタック
2.3 簡単なコンパイラの例
2.4 コンパイラの論理的構造
2.5 コンパイラの物理的構造


第II部 コンパイラの構成

3. 文法と言語
3.1 バッカス記法
3.2 構文図式
3.3 文法と言語の形式的定義
3.4 解析木
3.5 あいまいな文法

4. 字句解析
4.1 文字読取り
4.2 字句読取り
4.3 正規表現と有限オートマトン
4.4 字句読取りプログラムの例

5. 構文解析
5.1 構文解析手法の簡単な歴史
5.2 下向き構文解析法
5.3 LR構文解析法 
5.4 演算子順位構文解析法
5.5 構文解析法の選択
5.6 構文解析器生成系

6. 意味解析
6.1 意味解析とは
6.2 記号表
6.3 属性文法

7. 誤りの処理
7.1 誤りの発見
7.2 誤りの情報の出力
7.3 誤りの修復
7.4 正常処理への復帰

8. 実行時記憶域と仮想マシン
8.1 実行時記憶域
8.2 仮想マシンと通訳系

9. 目的コードの生成
9.1 中間語と機械語
9.2 式のコード生成
9.3 文のコード生成
9.4 コード生成器生成系
9.5 実行時コード生成


第III部 目的コードの最適化

10. 最適化とは
10.1 最適化の例(行列の掛け算の例)

11. 最適化の方法
11.1 命令の実行回数を減らす
11.2 より速い命令の利用
11.3 並列度を上げる
11.4 最適化の方法の適用順序

12. 制御とデータの流れの解析
12.1 制御フローグラフ
12.2 データの流れの解析

13. 静的単一代入形式(SSA形式)
13.1 SSA形式の概要
13.2 SSA形式の求め方
13.3 制御依存グラフとプログラム依存グラフ
13.4 SSA形式での最適化のアルゴリズム

14. 命令スケジューリング(並列実行)
14.1 基本ブロック内の命令スケジューリング
14.2 基本ブロックにまたがった命令スケジューリング
14.3 ソフトウェアパイプライニング
14.4 条件文がある場合のソフトウェアパイプライニング
14.5 整数線形計画法によるソフトウェアパイプライニング

15. レジスタ割付け
15.1 簡単な割付け法
15.2 生存区間を使ったレジスタ割付け
15.3 生存区間の干渉グラフを使ったレジスタ割付け
15.4 整数線形計画法によるレジスタ割付け
15.5 二次計画法によるレジスタ割付け

16. 配列要素の依存解析
16.1 データの依存関係
16.2 一重ループ内の依存関係とベクトル化
16.3 多重ループにおける依存関係
16.4 データ依存関係の解析法

17. ループ変換
17.1 ループ変換の条件
17.2 各種のループ変換
17.3 ループ変換の適用順序

18. データ分散と通信
18.1 各プロセッサでの私物化
18.2 配列分散の解析
18.3 計算分散の解析
18.4 通信の解析
18.5 通信の最適化
18.6 データ分散の自動化
18.7 配列へのアクセスが規則的でない場合

19. データの流れの解析の別法
19.1 Datalog言語
19.2 二分決定グラフBDD
19.3 文脈自由言語到達性
19.4 種々のポインタ解析

20. オブジェクト指向言語での最適化
20.1 メソッド呼出しの高速化
20.2 例外検査の除去
20.3 脱出解析
20.4 例外ハンドラの見つけ方