Top
Photo Drawings Software Writing Reading Memo Study Profile Bookmark 
Amethyst DumLambda PetitLambda Yamanba JSharp JFlat OOPS yash KumonoIto ML Toys 

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