Java VM Implementations
これは、
高木浩光氏が作成してJavaHouse-Brewersに投稿したJava VM関連情報のリスト
を元に、追加情報を加えたものです。
足りない点の指摘、コメントの追加などいただければ幸いです。
最終更新: Tue Aug 28 18:10:38 JST 2001
["Java Programming Information"に戻る]
- VM
-
- コンパイラ
-
- インタプリタ
-
- ツール類
-
- 参考資料
-
■ Java VM (JITコンパイラ)
- Sun MicroSystems:
Java Development Kit
Windows 95 & NT, Solaris / JDK 1.0 & JDK 1.1 & JDK 1.2 & JDK 1.3
ダウンロード可
http://java.sun.com/products/jdk/1.0.2/
http://java.sun.com/products/jdk/1.1/
http://java.sun.com/products/jdk/1.2/
http://java.sun.com/products/jdk/1.3/
- Sun MicroSystems:
Java HotSpot Performance Engine
Solaris 2 for SPARC, Windows 95 & 98 & NT / JDK 1.2
http://java.sun.com/products/hotspot/
- Sun MicroSystems:
Java Development Kit for Solaris
Solaris 2 for SPARC & Intel / JDK 1.1 & JDK 1.2
ダウンロード可
http://www.sun.com/solaris/java/
- Sun Labs :
The Sun Labs Virtual Machine for Research
以前はProduction Releaseに使われていたVM & ExactVM, EVMと呼ばれたば,今はResearchVMと呼ぶ.JIT.学術研究用ライセンスあり
http://www.sunlabs.com/research/java-topics/
- Derek White, Alex Garthwaite:
The GC Interface in the EVM, TR-98-67,
1998.
- Ole Agesen:
GC Points in a Threaded Environment, TR-98-70,
1998.
- Ole Agesen, David Detlefs, Alex Garthwaite, Ross Knippel, Y.S. Ramakrishna, Derek White:
An Efficient Meta-lock for Implementing Ubiquitous Synchronization,
TR-99-76,
1999.
- Sun Microsystems:
Java 2 Platform for Linux
x86 / Linux / JDK 1.2
InpriseのJIT.
http://java.sun.com/features/1999/12/linux.html
- Java for all SNI platforms
Reliant UNIX / JDK 1.1 & JDK 1.2
ダウンロード可
http://www.sni.de/servers/w3app/w3app_us/java.htm
- Java Platform Ports
JDKの移植状況を示すページ
http://java.sun.com/cgi-bin/java-ports.cgi
- IBM:
Develpers : Java Technology : Developer kits
Linux, AIX, OS/2 Warp, Windows, VM/ESA, OS/390 / JDK 1.1
ダウンロード可
http://www.ibm.com/Java/jdk/download/
- Java Linux
利用可能プラットフォーム一覧 / JDK 1.0 & JDK 1.1 & JDK 1.2
ダウンロード可
http://www.blackdown.org/java-linux.html
- Intel:
Open Runtime Platform
Linux, Windows 2000/IA32
ダウンロード可.
オープンソース.
JITやGCの研究用.
http://www.intel.com/research/mrl/orp/
- Compaq:
Extreme Java Technology
Tru64 UNIX, OpenVMS/Alpha, Alpha NT / JDK 1.1 & JDK 1.2
ダウンロード可
http://www.digital.com/java/
- HEWLETT PACKARD:
Java
HP-UX / JDK 1.1 & JDK 1.2
ダウンロード可
http://www.unixsolutions.hp.com/products/java/index.html
- SiliconGraphics:
The Java Environment - Development Tools and Tips -
IRIX / JDK 1.1 & JDK 1.2
ダウンロード可
http://www.sgi.com/developers/devtools/languages/java.html
- Kevin Buettner, Scott Hutinger, Brian Keller, Kelvin Hendricks:
Java for Linux on the PowerPC
PowerPC用Linux (PowerMacintosh上のMkLinux) / JDK1.1 & 1.2
ダウンロード可 (MetrowerksのJITコンパイラも可)
http://khendricks.ivey.uwo.ca/linuxppc/jdk/ (added by 高橋 とおる)
- Borland:
JBuilder
http://www.borland.com/jbuilder/
- SYMANTEC:
Visual Cafe
Windows / JDK 1.1
http://www.symantec.com/domain/cafe/index.html
- Metrowerks:
CodeWarrior
http://www.metrowerks.com/
- Microsoft:
Microsoft VM
MicrosoftのOS / JDK 1.1相当
ダウンロード可
http://www.microsoft.com/java/
- Apple Computer:
MRJ (Macintosh Runtime for Java)
PowerPC & 68040 / MacOS / JDK 1.1
ダウンロード可
http://www.apple.com/java/
- MASS Laboratory (Seoul National University):
LaTTE
SPARC / Solaris / JDK 1.1相当
ダウンロード可.ソースコード公開.
http://latte.snu.ac.kr/
- FreeBSD, Inc.:
JDK 1.1 for FreeBSD
i386 / FreeBSD 2.2以降 / JDK 1.1
ダウンロード可
http://www.freebsd.org/java/
- JDK 1.1.5 port to NetBSD
NetBSD / i386 / JDK 1.1
ダウンロード可
http://www.quick.com.au/java/
- Transvirtual Technologies, Inc.:
Kaffe
各種CPU / 各種OS / PersonalJava 1.1.1相当
http://www.transvirtual.com/products/
- Kaffe Core Team:
Kaffe OpenVM
各種CPU / 各種OS / JDK 1.1相当 + JDK 1.2の一部
ダウンロード可,オープンソース
http://www.kaffe.org/
- BeKaffe
BeOS
ダウンロード可
http://bekaffe.sourceforge.net
- Insignia Solutions:
JEODE
各種CPU / 各種OS / EmbeddedJava 1.1.6相当
http://www.insignia.com/4.0/products/jeode.htm
- Appeal Software Solutions:
JRockit
Windows NT & 2000 / JDK 1.2 & 1.3
ダウンロード可
http://www.jrockit.com/
■ Java VM (AOTコンパイラ)
■ Java VM (コンパイラなし)
■ Javaコンパイラ
Java言語をJavaバイトコードに変換するコンパイラである.
このリストは,Java言語を拡張した場合も含んでいる.
■ JIT(Just-In-Time)コンパイラ
クラスをロードした後にネイティブコードに変換するコンパイラである.
- Borland:
JBuilder Java 2 JIT for Linux
Linuxで利用できるJITコンパイラ.ダウンロード可.
http://www.borland.com/jbuilder/linux/
- Metrowerks:
Java Acceleration Technology for PowerPC
PowerPC上のLinux用JITコンパイラ
http://www.metrowerks.com/news/index.taf?function=PR&ID=201
- SYMANTEC:
Excalibur
Visual Cafeで使用される適応コンパイラのホワイトペーパー.
http://www.symantec.com/domain/cafe/jit/excalibur.html
- Mozilla Organization:
ElectricalFire
Windows NT, 95, 98, x86 Linux, FreeBSD
http://www.mozilla.org/projects/ef/
- 首藤一幸 :
shuJIT
Linux (x86), FreeBSD / JDK 1.1
ダウンロード可.ソースコード公開.strictfpをサポート.
http://www.shudo.net/jit/index-j.html
(added by 首藤)
- TYA
Linux (x86), FreeBSD / JDK 1.1
ダウンロード可, ソースコード公開
http://www.dragon1.net/software/tya/
(added by 首藤)
- IBM:
Java(tm) JIT Compiler Project Home Page
OS/2, AIX, Windows 95/NT, OS/390, Java OS / JDK 1.1
ダウンロード可
http://www.trl.ibm.co.jp/projects/jit/index.htm
- CACAO
ALPHA / JDK 1.0.2
ダウンロード可.64bit JIT
http://www.complang.tuwien.ac.at/java/cacao/
(added by 高木)
- The OpenJIT project:
OpenJIT
SPARC / Solaris, x86 / Linux, x86 / FreeBSD
ダウンロード可.Reflectionを適用して、動的に拡張可能なJIT
http://www.openjit.org/
■ AOTコンパイラ (VM必要)
Javaバイトコードを,動的にロードできるネイティブコードを生成し,Java VMと組み合わせて使用する.
ここでは,一度Cなど他の汎用言語に変換してから,ネイティブコードにコンパイルするものも含んでいる.
■ AOTコンパイラ (VM不必要)
Javaソースコード,またはバイトコードから,直接ネイティブコードを生成する.
直接実行できるバイナリを生成する半面,動的にクラスをダウンロードしてロードできないなど,Javaのすべての機能を利用できない.
■ Javaバイトコード から 他の言語(Cなど)へのトランスレータ
■ Javaインタープリタ
■ Java言語から他言語へのトランスレータ
■ Javaで実装された他言語のインタプリタ
■ 他言語からJavaバイトコードへのコンパイラ
■ 他言語からJava言語へのトランスレータ
■ 他言語とJavaのインターフェース
■ Java コンパイラフロントエンド、プリプロセッサ
■ Java パーザジェネレータ
Java Parser Generatorへ
■ ベンチマークと比較
■ アセンブラ,逆アセンブラ
■ 逆コンパイラ
■ profile 処理
■ クラスファイル操作のJavaコードを含むもの(ソース付き)
■ JITの動作の検証
■ 最適化コンパイル技法
■ Java言語仕様の参考文書
■ VM 作成のための参考文書
- Tim Lindholm, Frank Yellin :
"The Java Virtual Machine Specification Second Edition"
Java VMの仕様書
http://java.sun.com/docs/books/vmspec/index.html
- Jon Meyer, Troy Downing :
"Java Virtual Machine",
O'Reilly, 1997.
Java VMについての解説書
http://www.ora.com/catalog/javavm/noframes.html
- Joshua Engel :
"Programming for the Java Virtual Machine",
Addison Wesley, 1999.
Java VMを実装するための解説書
http://cseng.aw.com/bookpage.taf?ISBN=0-201-30972-6&ptype=0&catpage=&ctype=isbn&ISBN=0201309726
- Frank Yellin, Tim Lindholm:
Java(TM) Runtime Internals, JavaOne, 1997.
Java VMの内部構造についてのプレゼンテーション資料
http://www.javasoft.com/javaone/sessions/slides/TT27/startit.html
- Avi Teperman (IBM Haifa Research Laboratory):
The Java Virtual Machine and the class file,
Java VMに関するやさしい解説.Java VM仕様を読む前に目を通しておくとよい.
http://cs.haifa.ac.il/courses/java/jvm.pdf
- Java's new virtual machine by Gregory S. Smith
http://www.javaworld.com/javaworld/jw-05-1997/jw-05-jo-vm.html
- "Under the Hood" by Bill Venners (JavaWorld)
JavaWorldのJava VM関連の解説の連載
- The Belgian Java User's Group:
Java Code Engineering & Reverse Engneering
Javaのバイトコード操作関連のリンク集
http://www.meurrens.org/ip-Links/Java/CodeEngineering/
- The TUNES Review Subproject:
Review of Virtual Machines
VM関連のリンク集
http://www.tunes.org/Review/VMs.html (by 酒井)
■ GC 作成のための参考文書
- 情報処理学会:
特集「ごみ集めの基礎と最近の動向」,
情報処理, Vol. 35, No. 11, November, 1994.
GCのさまざまな分野の解説。一読の価値あり。
- 日比野靖: ごみ集めの基本アルゴリズム, pp. 992 - 999
- 寺田実: ごみ集めの研究動向, pp. 1000 - 1003
- 湯浅太一: 実時間ごみ集め, pp. 1006 - 1013
- 中西正和, 田中詠子: 世代別ごみ集め, pp. 1006 - 1013
- 小野寺民也: 保守的ごみ集め, pp. 1014 - 1019
- 市吉伸行: 分散ごみ集め, pp. 1020 - 1026
- Hillel Kolodner (IBM Haifa Research Labratory):
Garbage Collection
JavaのGCを支える技術と、JDK 1.1のVMの実装に関する解説.
http://cs.haifa.ac.il/courses/java/gc.pdf
- Alexandre Petit-Bianco:
Java Garbage Collection for Real-Time Systems,
Dr. Dobb's Journal,
October,
1998.
JavaのGCの解説とインクリメンタルGCの実装についての記事.
http://www.ddj.com/articles/1998/9810/9810a/9810a.htm
- Richard L. Hudson and J. Eliot B. Moss:
Incremental Collection of Mature Objects,
Proceedings of International Workshop on Memory Management,
volume 637 of Lecture Notes in Computer Science,
St Malo, France, 16--18 September 1992, Springer-Verlag
HotSpot VMの世代別GCで採用されているTrainアルゴリズムの論文.
ftp://ftp.cs.umass.edu/pub/osl/papers/iwmm92.ps.Z
- John D. Howard:
Gargage collection on Java 1.1.8 JVMs,
2000.
IBMのJDK 1.1.8のVMのGCについての解説.
http://www-4.ibm.com/software/developer/library/garbage-collection.html
- Eriz Petrank (IBM Haifa Research Labratory:
An Advanced Memory Management Seminar
GCやメモリ管理関連のリンク集.
http://www.haifa.il.ibm.com/projects/systech/paper_list.html
- Garbage Collection
GC関連の論文などのリンク集.
http://accent88.jcamp.com/gc/
■ JIT 作成のための参考文書
■ Javaメモリモデルの参考文書
■ 関連会議
- Java Grande Conference
Java Grande ForumによるJava技術に関する会議.
http://www.javagrande.org/
1996,
1997,
1998,
1999,
2000
(added by 高木)
- JVM (Java Virtual Machine Research and Technology Symposium)
USENIXのJava VMに関する会議.
2001
(added by 酒井)
- OOPSLA (Conference on Object Oriented Programming Systems, Languages and Applications)
ACM SIGPLANのオブジェクト指向プログラミングに関する会議.
http://www.informatik.uni-trier.de/~ley/db/conf/oopsla/
1986,
1987,
1988,
1989,
1990,
1991,
1992,
1993,
1994,
1995,
1996,
1997,
1998,
1999
2000
- COOTS (Conference on Object-Oriented Technologies)
Usenixのオブジェクト指向技術とシステムの会議.
http://www.usenix.org/events/bytopic/coots.html
1995,
1996,
1997,
1998,
1999,
2001
- ISMM/IWMM (International Symposium/Workshop on Memory Management)
メモリ管理に関する会議.
1992,
1995,
1998,
2000
- JavaOne Conference
Sunが主催するJava開発者のための会議.
http://java.sun.com/javaone/
1996,
1997,
1998,
1999,
2000
- Java Community Process
Javaの新しい仕様に関しての討論.
http://java.sun.com/aboutJava/communityprocess/
- Java Developer Connection
Sunが提供するJavaの開発者のための情報のWebサーバ.オンラインでの討論や,バグ情報データベースなどが提供されている.
http://developer.java.sun.com/developer/
著者: 高木 浩光@電子技術総合研究所
http://www.etl.go.jp/~takagi/
(メンテナンス担当: 風間 一洋)