J#
J#は、JAVAプログラミング言語を拡張した言語のコンパイラです。
Jflatをもとにしています。
J#は、セルフコンパイル可能です。
J# - JAVA = ?
J#はJAVAに対してつぎのような拡張を加えています。
- プリミティブ演算子のオーバーロード・再定義
- "+"や"*"といったプリミティブ演算子とおなじ名前の関数を定義
できます。
- 任意の名前を中置二項演算子として使用可能
- Standard MLのように、infix文で任意の名前を中置二項演算子とし
て使うことができます。
- importlibによるライブラリの取り込み
- importlib文でクラスを指定すると、そのクラスのpublic staticな
フィールドやメソッドをグローバル変数・関数と同様に使用すること
ができます。
これらの機能を利用するとつぎのようなコードを記述できます。
このコード例は、集合に関する演算を定義しています。
setoperator.js
package test;
import java.util.*;
class setoperator{
bool in(Object o,Collection container){
return container.contains(o);
}
Collection +(Collection container,Object o){
Vector newcol = new Vector(container);
newcol.add(o);
return newcol;
}
Collection +(Collection container,Collection right){
Vector newcol = new Vector(container);
newcol.addAll(right);
return newcol;
}
}
|
setoperatortest.js
package test;
import java.util.*;
importlib jp.ac.jaist.kiyoshiy.jsharp.JsLib;
importlib test.setoperator;
infix 0 in;
public class setoperatortest{
public static void main(String[] args){
Collection c = new Vector();
Collection d = new LinkedList();
Object o = new Object();
c += (Object)o;
if(o in c){
println("o is in c.");
}else{
println("o is not in c.");
}
d += c;
if(o in d){
println("o is in d.");
}else{
println("o is not in d.");
}
}
}
|
ToDo
| 確実な初期化チェック(実装) | |
| 確実な初期化チェックに関するドキュメント | |
| キャスト変換チェック | |
| T.class式のサポート | |
| finalローカル変数 | |
| ブランク・ファイナル | |
Download
- コンパイル済みパッケージ
-
JsharpCompiled-0.4.tar.gz
- ソースパッケージ
-
Jsharp-0.4.tar.gz
- ドキュメント
- ps pdf
- スライド
- ps pdf
- ドキュメントとスライドのLaTexソース
- Jsharp_doc_texs.tar.gz
そのほか、コンパイルにはJavaCC、実行にはJavaClassが必要です。
以下のURLからダウンロードできますが、学校のWSであれば、PATHに
~kiyoshiy/Package/JavaCC/bin
を加え、CLASSPATHに
~kiyoshiy/Package/JavaClass
を加えればコンパイル・実行が可能です。
- JavaCC(コンパイル時のみ必要)
- http://www.metamata.com/JavaCC/
- JavaClass(実行時に必要)
- http://www.inf.fu-berlin.de/~dahm/JavaClass/
install
コンパイル済みパッケージの場合
以下のコマンドを実行してください。
gtar zxf JsharpCompiled-0.4.tar.gz
cd JsharpCompiled_0.4/
./install
このコマンドを実行すると以下のようにパスを尋ねてきますので各自の環境に
あわせて適切なパスを指定してください。
bash$ ./install
Enter path to install J# compiler [/home/i0005/kiyoshiy/bin]:
Enter path to install Jsharp.jar [/home/i0005/kiyoshiy/lib]:
Enter path of java command (Newest version is prefered). [/pkg/all/bin/java1.3]:
J# file has been installed. Now ,compiling test program. Wait a little.
J# has been installed successfully !
ソースパッケージの場合
以下のコマンドにより、J#コンパイラをコンパイルします。
gmake
つぎに、jscファイルを編集してCLASSPATHを適切に設定してください。
testディレクトリ以下にいくつかテストコードを置いてありますので、コ
ンパイルできることを確認してください。
./jsc test/nametest.js
java test.nametest
|