コンパイラ

書籍情報
シリーズ名未来へつなぐ デジタルシリーズ 【24】巻
ISBN978-4-320-12344-1
判型B5 
ページ数174ページ
発行年月2014年06月
本体価格2,600円
コンパイラ 書影
コンパイラ

コンパイラはプログラミング言語が実際に動作するまでの仕組みである。本書では,主として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 インタプリタ的機械の生成