Java Compiler Front End for COINS project

まえがき

本ドキュメントの内容は、法政大学情報科学科の荒川傑(すぐる)さんが、 学部学生3年から4年のときに、COINS用にJavaのコンパイラを 作ることを検討する過程で作成されたものである。これの原典は

 http://vtable.undo.jp/wiki/ 
にある。
Javaのフロントエンドは、Javaのクラスファイルを入力としてCOINSのHIR に変換するものとして作成した。それについてはあまり問題はなかったので あるが、実際にJavaコンパイラを実現する上で大きな問題になるのは、Java言語の 仕様に合った実行時環境をどのように作成するかということである。 それをゼロから作成するのは困難であるので、利用できる既存のものとして GCCのJavaコンパイラ(gcj)の実行時環境を利用することにした。 しかし、そのバイナリを入手することは出来ても、その仕様に関する ドキュメントは皆無であったので、その解読に多大の労力を必要とした。 以下の資料は、その解読のために行った実験に関する資料と、 その解読の結果をまとめた資料から成る。
なお、COINS用のJavaの検討にあたっては、(株)日立製作所 システム開発研究所の千葉雄司氏にご指導頂いたことを付記する。
COINS用のJavaコンパイラは、諸事情によりまだ完成には至っていないが、 これらはJavaの実現方式についての貴重な資料と思われるので、 荒川さんの了解を得て、上記 Wiki からCOINSのウエブページに転載した。 原典通りにhtml化できなかったところがいくつかあり、転記ミスなども あるかもしれないが、それらは転記者(渡辺坦)の責任である。 正確な記述については原典を参照されたい。

Coins Java - 目次

解析

解析フェーズで分かってきたことなんかを。

バイトコードとの対応に関して

JavaVMの生成

データ構造

例外処理

実験

報告資料

解析ガイド?

1. プログラムのリンクと実行 - libgcj1.ppt(0)

2. GCJのデータ構造1 - libgcj2.ppt(0)

3. クラスとインスタンスの初期化 - libgcj3.ppt(0)

4. 例外処理の実装方法 - libgcj4.ppt(0)

Copyright (C) 2002-2006 s.arakawa