無差別に技術をついばむ鳥

情報処理技術全般を気まぐれにつつくゆるいブログです

書籍をつつく22−Java仮想マシン仕様 第2版。仮想マシンの最高峰!

今日違う本のレビューで仮想マシンについて触れたから、ボクがいいと思っている仮想マシン本を紹介するピヨ♪それがこの本、
Java仮想マシン仕様 (The Java series)
ピヨ♪まずは、何時も通り目次を見てみて♪


【目次】
序文
訳者まえがき
第1章 イントロダクション
・歴史
・Java仮想マシン
・各章の概要
・表記法
第2章 プログラミング言語Javaのコンセプト
・Unicode
・識別子
・リテラル
・型と値
・・プリミティブ型とその値
・・整数値に対する演算子
・・浮動小数点数値型、数値集合、値
・・浮動小数点数値に対する演算子
・・boolean値に対する演算子
・・参照値、オブジェクト、参照値
・・クラスObject
・・クラスString
・・オブジェクトに対する演算子
・変数
・・変数の初期値
・・変数には型があり、オブジェクトにはクラスがある
・変換と格上げ
・・恒等変換
・・プリミティブ型のワイドニング変換
・・プリミティブ型のナローイング変換
・・参照型のワイドニング変換
・・参照型のナローイング変換
・・数値集合変換
・・代入変換
・・メソッド起動変換
・・キャスト変換
・・数値の格上げ
・名前とパッケージ
・・単純メイト限定名
・・パッケージ
・・メンバ
・・限定名とアクセス制御
・・完全限定名
・クラス
・・クラス名
・・クラス修飾子
・・スーパークラスとサブクラス
・・クラス・メンバ
・フィールド
・・フィールド修飾子
・・フィールドの初期化
・メソッド
・・仮パラメータ
・・メソッドのシグネチャ
・・メソッド修飾子
・静的初期化子
・コンストラクタ
・・コンストラクタ修飾子
・インタフェース
・・インタフェース修飾子
・・スーパーインタフェース
・・インタフェース・メンバ
・・インタフェースにおけるオーバーライド、継承、オーバーロード
・ネストしたクラスとネストしたインタフェース
・配列
・・配列型
・・配列変数
・・配列生成
・・配列アクセス
・例外
・・例外の理由
・・例外の取り扱い
・・例外階層
・・クラスExceptionとクラスRuntimeException
・実行
・・仮想マシンの開始
・・ロード
・・リンク:検証、準備、解決
・・初期化
・・初期化手続きの詳細
・・新たなクラス・インスタンスの生成
・・クラス・インスタンスのファイナライズ
・・クラスやインタフェースのアンロード
・・仮想マシンの終了
・FP-strict式
・スレッド
第3章 Java仮想マシンの構造
・classファイル・フォーマット
・データ型
・プリミティブ型とその値
・・整数型とその値
・・浮動小数点数型とその値
・・returnAddress型とその値
・・boolean型
・参照型とその値
・実行時データ領域
・・pcレジスタ
・・Java仮想マシン・スタック
・・ヒープ
・・メソッド・エリア
・・実行時コンスタント・プール
・・ネイティブ・メソッド・素宅
・フレーム
・・ローカル変数
・・オペランド・スタック
・・ダイナミック・リンク
・・メソッド起動の正常終了
・・メソッド起動の途中終了
・・追加情報
・オブジェクトの表現
・浮動小数点数値演算
・・Java仮想マシン浮動小数点数値演算とIEEE754
・・浮動小数点モード
・・数値集合変換
・特別な名前の初期化メソッド
・例外
・命令セットの要約
・・型とJava仮想マシン
・・ロード命令とストア命令
・・算術命令
・・型変換命令
・・オブジェクト生成と操作
・・オペランド・スタック管理命令
・・制御の移行命令
・・メソッド起動とリターン命令
・・例外のスロー
・・finallyの実装
・・同期化
・クラス・ライブラリ
・公的設計、私的実装
第4章 classファイル・フォーマット
・ClassFile構造体
・完全限定クラス名および完全限定インタフェース名の内部形式
・ディスクリプタ
・・文法表記
・・フィールド・ディスクリプタ
・・メソッド・ディスクリプタ
・コンスタント・プール
・・CONSTANT_Class_info構造体
・・CONSTANT_Fieldref_info構造体、
   CONSTANT_Methodref_info構造体、CONSTANT_InterfaceMethodref_info構造体
・・CONSTANT_Integer_info構造体、CONSTANT_Float_info構造体
・・CONSTANT_Long_info構造体、CONSTANT_Double_info構造体
・・CONSTANT__NameAndType_info構造体
・・CONSTANT_Utf8_info構造体
・フィールド
・メソッド
・アトリビュート
・・新たなアトリビュートの定義と命名
・・ConstandValueアトリビュート
・・Codeアトリビュート
・・Exceptionsアトリビュート
・・InnerClassesアトリビュート
・・Syntheticアトリビュート
・・SourceFileアトリビュート
・・LineNumberTableアトリビュート
・・LocalVariableTableアトリビュート
・・Deprecatedアトリビュート
・Java仮想マシン・コードにおける制約
・・静的制約
・・構造上の制約
・classファイルの検証
・・検証プロセス
・・バイトコード・ベリファイヤ
・・long型とdouble型の値
・・インスタンス初期化メソッドと新規生成オブジェクト
・・例外ハンドラ
・・例外とfinally
・Java仮想マシンの制限
第5章 ロード、リンク、初期化
・実行時コンスタント・プール
・仮想マシンの開始
・生成とロード
・・ブートストラップ・クラスローダを用いたロード
・・ユーザ定義クラスローダを用いたロード
・・配列クラスの生成
・・ロード制約
・・クラスのclassファイル表現からの取得
・リンク
・・検証
・・準備
・・解決
・・アクセス制御
・初期化
・nativeメソッド実装のバインド
第6章 Java仮想マシンの命令セット
・「なければならない」(Must)の意味
・予約オペコード
・仮想マシンのエラー
・Java仮想マシンの命令セット
第7章 Java仮想マシン向けのコンパイル
・各種の例における表記フォーマット
・定数、ローカル変数、制御構造の使用
・算術演算
・実行時コンスタント・プールへのアクセス
・他の制御例
・引数の受け取り
・メソッドの起動
・クラス・インスタンスの使用
・配列
・switchのコンパイル
・オペランド・スタックに対する操作
・例外のスローと取り扱い
・finallyのコンパイル
・同期
・ネストしたクラス、ネストしたインタフェースのコンパイル
第8章 スレッドとロック
・用語と枠組み
・実行順序
・変数に関する規則
・doubleとlongの分割
・ロックに関する規則
・ロックと変数のやり取りに関する規則
・volatile変数に対する規則
・ストアの予測
・考察
・例:交換の可能性
・例:順序付けられない書き込み
・スレッド
・ロックと同期化
・待機集合と通知
第9章 オペコード順ニーモニック一覧
付録A 明確化された点と修正された点の要約
索引


目次を見ただけで、そのディープさが伝わってくると思うピヨ♪ただし、先に一つだけ注意しておくピヨ♪この本は正しく仕様書だから分かりやすい解説を期待しないでね。ボクも最初見た時、ちょっと唸ったピヨねwそれから後で悟ったんだけど、この本はJavaのバイナリコードを解析する時や、 Java仮想マシンを作る時に読む本だね♪ あと、自分で仮想マシンを自作したい人は大変貴重な資料になると思う。かく言うボクも、この本を片手にJava仮想マシンを実装しようと考えているピヨ♪今は時間がないから出来ないけど、その日が来るのを楽しみにしているピヨ♪こういった本は廃刊されやすいから、手に入れられる時素早く手に入れよう!
別窓 | 書籍レビュー | コメント:0 | トラックバック:0 | ∧top | under∨
<<書籍をつつく23−仮想化技術Xen-概念と内部構造。OS実装者には必須でしょう。 | 無差別に技術をついばむ鳥 | 書籍紹介記事の目次ーコンパイラ>>

この記事のコメント

∧top | under∨

コメントの投稿

 

管理者だけに閲覧
 

この記事のトラックバック

∧top | under∨
| 無差別に技術をついばむ鳥 |