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

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

  • ただいまウェブストアではご注文を受け付けておりません。
  • サイズ A5判/ページ数 521p/高さ 22cm
  • 商品コード 9784254121391
  • NDC分類 007.64
  • Cコード C3041

出版社内容情報

著者のコンパイラ作製・教育に長年従事した豊富な経験を集大成した書。〔内容〕はじめに/構成/字句解析/構文解析/意味解析/誤りの処理/実行時記憶域と仮想マシン/目的コードの生成/最適化とは/最適化の方法/最適化のアルゴリズム

【目次】

 コンパイラの概要

1. はじめに
 1.1 コンパイラとは
 1.2 変換系と通訳系
2. コンパイラの簡単な例
 2.1 後置記法
 2.2 スタック
 2.3 簡単なコンパイラの例
 2.4 コンパイラの論理的構造
 2.5 コンパイラの物理的構造

コンパイラの構成

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 下向き構文解析法
  下向き構文解析法とその問題点/LL(1)文法/
  再帰的下向き構文解析プログラム/文法からの再帰的下向き構文解析プログラムへ/
  非再帰的下向き構文解析法/あいまいな文法の扱い
 5.3 LR構文解析法
  上向き構文解析法/LR構文解析の概略/SLR(1)構文解析/LR(1)構文解析/
  LALR(1)構文解析/あいまいな文法の扱い/正規右辺文法のLR構文解析
 5.4 演算子順位構文解析法
  演算子順位文法/演算子順位行列による構文解析/演算子順位関数
 5.5 構文解析法の選択
 5.6 構文解析器生成系
6. 意味解析
 6.1 意味解析とは
 6.2 記号表
  記号表の情報/記号表の検索/ブロック構造と記号表
 6.3 属性文法
  属性文法の簡単な例/属性文法の定義/属性評価器/1パス型属性文法/
  属性文法の拡張子と応用
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 実行時コード生成
  動的コードの生成/JITコンパイラ

 目的コードの最適化

10. 最適化とは
 10.1 最適化の例(行列の掛け算の例)
  配列要素の配置と番地計算/
  最適化の例1(スカラ計算機の場合)/
  最適化の例2(アクセス効率とループ変換)/
  最適化の例3(ベクトル計算機の場合)/
  最適化の例4(並列計算機の場合)
11. 最適化の方法
 11.1 命令の実行回数を減らす
  共通部分式の削除/定数の畳み込み/命令のループの外への移動/
  部分冗長性の除去/ループの変換/式の性質の利用/無用命令の削除/
  複写の削除/手続き呼出しの特殊化/オブジェクトのインライン割当て/
  判定の置換え/のぞき穴式最適化
 11.2 より速い命令の利用
  レジスタ割付け/特殊な命令の利用/メモリアクセス順序の最適化
 (メモリ階層の有効利用)/演算の強さの軽減
 11.3 並列度を上げる
  命令レベル並列実行/データ並列実行
 11.4 最適化の方法の適用順序
12. 最適化のアルゴリズム
 12.1 制御フローグラフ
 12.2 データの流れの解析
  共通部分式の削除(基本ブロックと拡張基本ブロック内)/
  変数の使用に対応する定義の解析/データの流れの等式の一般形/
  共通部分式の削除(大域的)/ループ/ループの外への移動/
  変数の生と死の解析/無用命令の削除/定数伝播と畳み込み/
  部分冗長性の除去/手続き間解析/ポインタ解析/
  最適化の各操作の適用順序
 12.3 静的単一代入形式(SSA形式)
  SSA形式の求め方/制御依存グラフとプログラム依存グラフ/
  無用命令の削除/共通部分式の削除/ループの外への移動/
  帰納変数/演算の強さの軽減と判定の置換え/定数伝播/
  部分冗長性の除去/ポインタ解析
 12.4 命令スケジューリング(並列実行)
  基本ブロック内の命令スケジューリング/基本ブロックにまたがった
  命令スケジューリング/ソフトウェアパイプライニング/
  条件文がある場合のソフトウェアパイプライニング/
  整数線形計画法によるソフトウェアパイプライニング
 12.5 レジスタ割付け
  簡単な割付け法/生存区間を使ったレジスタ割付け/
  整数線形計画法によるレジスタ割付け
 12.6 配列要素の依存解析
  データの依存関係/1重ループ内の依存関係とベクトル化/
  多重ループにおける依存関係/データ依存関係の解析法
 12.7 ループ変換
  ループ分配/ループ融合/ループ交換/ループ逆転/ループ傾斜/
  波頭変換/ループ細分/ループタイル化/ループ展開/ループ合体/
  ループつぶし/ループ皮むき/ル-プ変換の適用順序
 12.8 データ分散と通信
  各プロセッサでの私物化/配列分散の解析/計算分散の解析/
  通信の解析/通信の最適化/データ分散の自動化/
  配列へのアクセスが規制的でない場合
13. 参考文献
14. あとがき
15. 索  引

内容説明

コンパイラは、何らかのプログラミング言語で書かれたプログラムを実際の計算機で実行できるように変換するソフトウェアである。計算機で実行されるほとんどすべてのプログラムは、コンパイラの世話になっており、そのコンパイラの良し悪しによって、プログラムの作りやすさも影響されるし、ハードウェアの機能や性能が生かされる度合いも決まるから、コンパイラはオペレーティングシステムとともに、計算機の最も基本的で重要なソフトウェアである。本書はコンパイラについて、入門的な解説から、コンパイラを構成する各要素技術の解説、さらに、より実行効率のよい目的コードを生成するための各種の最適化の技法までを網羅的に解説したものである。

目次

第1部 コンパイラの概要(コンパイラの簡単な例)
第2部 コンパイラの構成(文法と言語;字句解析;構文解析 ほか)
第3部 目的コードの最適化(最適化とは;最適化の方法;最適化のアルゴリズム)

感想・レビュー

※以下の感想・レビューは、株式会社ブックウォーカーの提供する「読書メーター」によるものです。

お出汁

0
非常にいい本です.最適化の項に本の半分くらいを使っていて,実用的なコンパイラ開発の必読書だと思います.2版があるのでそちらを買うのがいいかも.ただし値段は張ります.

外部のウェブサイトに移動します

よろしければ下記URLをクリックしてください。

https://bookmeter.com/books/61191
  • ご注意事項