コンパイラ書籍一覧1

|   書籍一覧目次へ   |    トップページへ   |   一覧2へ   |

BD10219_.GIF (978 バイト)

 

Amazon.co.jpで購入する

cbook24.comで購入する

コンパイラ書籍一覧目次へ

 



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

ISBN4-254-12139-3 C3041  朝倉書店 

中田育男(図情大)   

A5判  528頁  本体価格9500円  1999年 9月発売

[内容]

著者のコンパイラ作製・教育に長年従事した豊富な経験を集大成した書。

[目次]

コンパイラの概要
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. 索  引

 

 

Amazon.co.jpで購入する

コンパイラ書籍一覧目次へ

 

コンパイラの仕組み

情報科学こんせぶつ8

ISBN4-254-12708-1  朝倉書店

渡邊 坦(電通大)著

野崎昭弘・黒川利明・疋田輝男・竹内郁雄・岩野和生 編集

A5判  196ページ  本体価格¥3.500  1998年4月発売

[内容]

ある言語のコンパイラを実現する流れに沿い,問題解決に必要な技術を具体的に解説した実践書。

[目次]

1. プログラミング言語
 1.1 プログラミング言語の設計
 1.2 言語仕様の記述方式への要請
 1.3 バッカス記法(BNF)
 1.4 意味仕様の記述
 1.5 演習問題
2. コンパイラの概要
 2.1 コンパイラの作り方の検討
 2.2 コンパイラでの処理過程
3. 字句解析
 3.1 事例検討
 3.2 正規表現
 3.3 オートマン
 3.4 オートマンに基づく字句解析
 3.5 演習問題
4. 演算子順位による構文解析
 4.1 事例による方式検討
 4.2 演算子順位法
 4.3 演習問題
5. 下向き構文解析
 5.1 適用範囲の広い方式の検討
 5.2 再帰的下向き構文解析の概要
 5.3 プログラムと構文規則の照合方法
 5.4 LL(1)文法
 5.5 再帰的下向き構文解析の実現方法
 5.6 非再帰的な表駆動下向き構文解析
 5.7 その他の構文解析方法
 5.8 演習問題
6. 記号表と中間語
 6.1 意味解析
 6.2 記号表
 6.3 中間語
 5.9 演習問題
7. 誤り処理
 7.1 誤りの種類
 7.2 誤りの検出
 7.3 誤りへの対処
8. 実行時環境とレジス夕割り付け
 8.1 命令の実行に必要な準備
 8.2 スタックの管理と呼び出し・復帰の手順
 8.3 記憶域割り付け
 8.4 レジスタ割り付け
 8.5 開始・終了処理とその他の処理
 8.6 演習問題
9. コード生成
 9.1 コード生成の概要
 9.2 変数へのアクセス
 9.3 機械語変換の基本パターン
 8.7 演習問題
10. Tiny Cコンパイラ
 10.1 Tiny Cコンパイラの概要
 10.2 方式
 10.3 コンパイラのプログラム構成
 10.4 コーディング様式
 10.5 テーブル仕様
 10.6 言語解析部
 10.7 コード生成部
 10.8 オブジェクト・プログラム
 10.9 演習問題
11. その他の話題
 11.1 前処理
 11.2 オブジェクト最適化
 11.3 記憶管理
 11.4 実行時ライブラリ
 11.5 解釈実行系
12. コンパイラ小史
 12.1 Fortran
 12.2 Algol
 12.3 Cobol
 12.4 PL/I
 12.5 Pascal
 12.6 C
 12.7 Basic
 12.8 Ada
 12.9 gcc
 12.1O Java
13. 付  録 Tiny Cコンパイラのソース・プログラム
14. 演習問題解答
15. 参考文献
16. 索  引


   コンパイラ書籍次のページ         コンパイラ書籍目次          トップページ