読書会(Java仮想マシン仕様)第4回議事録
[ 戻る ]
「Java仮想マシン仕様」を読む会 第4回議事録
日時:2000年1月15日(土)10−16時
場所:Javaカンファレンス事務局会議室(曙橋)
出席者(敬称略):金山・小川・鷲見・前橋・高橋(記)
概要:4.9節から5.2節まで
当日の様子については速報をご覧下さい。
http://web.archive.org/web/20010604222720/http://www.java-conf.gr.jp/archives/jfriends-ml/msg00895.html
論点
・p.95 三段落目「〜自身を検証する必要がある。」
の自身とは何か?
原著では、"for itself"(独力で)となっている。
→「コンパイラの力を借りたりせず、VMだけでやりなさい」ということ
ではないか? という意見でまとまった。
・p.96 パス2において
final節とあるが原著ではfinal classとある。
→ここはfinalクラスと訳すべき。
・p.96 パス3 データフロー解析とは?
※メモが不十分で意味がとれませんが、とりあえず記しておく
JavaVMではスタックのチェック(ループでスタック状態が変わっていないか)
インストラクションでは、分岐はジャンプ文だけである
インタプリタなのに速いのはこのあたり
・p.99 クラスローダの話題から、話し(雑談)が転がる
ORBってなぜ必要? モバイルエージェントって? ObjectSpace社のVoyagerは?
オムロンと共同で組み込み向けの小さなORBを開発している。Jiniは?
・p.100 newについて
例の#1という表現は分かりにくい。実際にはクラスシグネチャがはいる。
newはヒープに領域を取るだけ(未初期化)
・4.9.5節
例外ハンドラで、2つcatchがあったなら、start_pc, end_pcも2つになるのか?
それではcatchの数だけ必要となり、無駄が多いのでは?
テーブル定義をみるとそうなるはず。
javapで実際にやってみようということになり、簡単なプログラムを書いてみた
:
try {
FileInputStream fis = new FileInputStream(...);
} catch (IOException e) {
:
} catch (Exception e) {
:
}
と書いて、javap -c をかけると、Exception tableが見れる
from to target
0 10 13
0 10 21
・4.9.6節
サブルーチンコールはfinallyのためだけにあるようなものだ
メソッドコールでも内部メソッドのようにコンパイル時に決まるようなものは
サブルーチンコールにした方が性能がよくなるでは。(この後、できる/でき
ないという話が続く)
・5章(宮崎さん訳の2版にそって進めていった)
184行目(注:資料の行数)
== の比較 クラス内だけでなくパッケージをまたがって満たすはず
==で比較できるのは混乱のもと
・5.2節
スタートアップ:組み込みのときの起動についてはけっこう問題になっている
(確かROMからの起動とか、ファイルシステムがないときの起動とかについて
話しが出てたト思いますが、メモには書いてませんでした)
----------------------------------------------------------------------
最後に「Javaバーチャルマシン」(オライリー)を持っていた人が
著訳者の鷲見さんからサインをしてもらい、本日の読み会を終了しました。
終了後は前回と同じく牛タン屋にいって乾杯しました。
[ 戻る ]