[ English ]

logo 拡張可能 Java プリプロセッサ EPP

産業技術総合研究所 一杉裕志


EPP の開発は終了しました。


EPP は、以下のようなシステムの実装をサポートするフレームワークです。 EPP は Java 言語の構文解析と型チェックをサポートしています。 EPP を用いることで、 Java 言語のセマンティックスに依存した複雑な処理も比較的簡単に 行なうことができます。

EPP 自体も、「EPP によって機能拡張された Java 言語」で書かれており、 ソースコード処理を容易にする言語拡張がなされています。


ドキュメント


EPP 最新版のダウンロード

epp115.zip
(注: 日本語ドキュメントはすべて JIS コードです。)

What's new ?

2002-12-11 (EPP 1.1.5)
シェルスクリプトを少し変更。
T.this, T.super.f, T.super.m(), exp.super() という式の型チェックをサポート。

2002-04-23 (EPP 1.1.4)
J2SE 1.4 でクラスファイルのバージョンが変わったのに対応。 (JavaClass3.3.2 に patch 。)

2001-12-20 (EPP 1.1.3)
" byte b = 'c'; " が型チェックパスを通るように修正。

2001-12-19 (EPP 1.1.2)
Collection plug-in に NullOr<T> と ifNull 構文を追加。

2001-07-31 (EPP 1.1.1)
JDK14assert plug-in を追加。 この plug-in を使えば、 EPP は JDK1.4 で導入された assert 文を 通すようになります。
シェルスクリプトが cygwin1.3.2 で動くようにしました。 これより古いバージョンの cygwin は今後サポートされません。
出力のエンコードのバグを修正。

2001-05-14 (EPP 1.1.0)
EPP 1.1.0 を non-beta version にしました。
シェルスクリプトを少し変更。

2001-04-11 (EPP 1.1.0 beta 15)
Collection plug-in を追加。

2000-09-03 (EPP 1.1.0 beta 14)
使用している JavaClass API を 3.3.2 にバージョンアップ。

2000-06-09 (EPP 1.1.0 beta 13)
小さいバグを修正。

2000-02-29 (EPP 1.1.0 beta 12)
小さいバグを修正。

1999-11-20 (EPP 1.1.0 beta 11)
-encoding, -target-classpath オプションを追加。
JDK1.2 を使う場合、 rt.jar を CLASSPATH に 明示的に入れなくてもよいようにした。

1999-11-05 (EPP 1.1.0 beta 10)
型チェックパスでのエラーリカバリを実装。
MultipleInheritance plug-in, AssociationArray plug-in のバグを修正。 Generic plug-in は未修正。
開発用シェルスクリプトが Windows Cygwin b20.1 上でも動作するようになりました。

1999-08-01 (EPP 1.1.0 beta 9)
小さいバグを修正。

1999-07-04 (EPP 1.1.0 beta 8)
Linux JDK1.2 pre-release-v2 でも動くようになりました。

1999-07-01 (EPP 1.1.0 beta 7)

1999-06-01 (EPP 1.1.0 beta 6)
beta 5 のバグ修正版。

1999-04-03 (EPP 1.1.0 beta 5)
ParseParen, ParseComment plug-in の追加。 -tree-with-string, -tree-with-property オプションの追加。 Tree の開始位置・終了位置情報の実装。

1999-03-02
English documents(preliminary version)公開。

1999-01-20 (EPP 1.1.0 beta 4)
Generic plug-in (GJの サブセット)と、 TransStringEqual plug-in (プログラムの一括変換の例)を追加。

1998-12-06 (EPP 1.1.0 beta 3.1)
文字列からの抽象構文木を読み込むメソッド Tree.readTree を追加。
backquote より簡単に展開関数を書けるようにするクラス StringNode を追加。 使用例は、 epp/sample/SWAP2/PlugIn.java を見て下さい。

1998-11-14
EPP 1.1.0 beta 3 plug-in プログラマ向けドキュメントが できました。
zip でかためたものは、こちら eppjdoc110beta3.zip

1998-11-04 (EPP 1.1.0 beta 3)
EPP の型チェック機能を用いた、 MultipleInheritance, OperatorOverloading, typedef, AssociationArray などの plug-in を追加。
EPP plug-in プログラマ向け mailing-list、 epp-plug-in-j を開設! 参加者を募集します。

1998-10-01 (EPP 1.1.0 beta 2)
-global option 追加。

1998-09-01
EPP plug-in プログラマ向けドキュメントを書きました。

1998-08-01 (EPP 1.1.0 beta 1)
EPP 本体と全 plug-in のパッケージ名を変更。
インストール方法の変更。
RenamePackage, SharpPlus plug-in の追加。
型チェックの一部実装。

1998-06-01 (EPP 1.0.1)
エラーリカバリの実装。
-v, -comment-colon, -D オプションの追加。
-comment-colon オプションのテストプログラムはこちら。
"ifdef" plug-in の更新。
テストプログラムは、 epp/plugins/src/test/Testifdef.txt

1998-05-02 (EPP 1.0.0)
EPP が non-beta バージョンになりました。
JDK1.1 のシンタックスがすべてサポートされました。

1998-04-01
"ifdef" plug-in を epplib.jar に追加しました。

1998-03-01
Java 版 epp 配布開始。


JavaClass API

EPP は "JavaClass API" というパッケージを内部で用いています。 JavaClass は Markus Dahm 氏が開発した LGPL のクラスライブラリです。 JavaClass のソースとドキュメントは、以下の URL から取得できます。

http://www.inf.fu-berlin.de/~dahm/JavaClass/index.html
または
http://staff.aist.go.jp/y-ichisugi/epp/JavaClass/JavaClass3.3.2.tar.gz

JavaClass3.3.2 を J2SE 1.4 以降のクラスファイルに使った時、 警告メッセージを出ないようにするパッチ:
http://staff.aist.go.jp/y-ichisugi/epp/JavaClass/JavaClass/jdk14.patch


本ソフトウエアは、一杉裕志が旧電子技術総合研究所(現在は産総研)での職務として 作成したものです。 (職務作成プログラム等管理番号 1998-ETL-E9301-01 。)
本ソフトウエアは、無保証です。研究目的あるいは評価目的に限り、 無償で利用できます。


To the Home Page of Yuuji Ichisugi.