Java

SParser-2.2 released

大きな進展はないが、しばらくいじれないので修正版を公開しておく。 ファイルport、文字列portの実装(一部)と、defineの仕様を勘違いしていた*1ことの修正がメイン。インタプリタ方式で作り始めたけど、効率のためだけでなく文法の面からもコンパイルは必要…

日経ソフトウェア2005年10月号「Javaで作るオリジナル言語〜やさしいLispインタプリタの作り方」

特集「究極のプログラミング体験 プログラム言語を作る!」の中の一記事。今日立ち読みして知った。掲載されたプログラムはWebページからダウンロード可能。 日経ソフトウエア 2005年10月号目次

Jatha - LISP Library in Java

http://jatha.sourceforge.net/ Jatha is a Java library that implements a fairly large subset of Common LISP. おお〜。Common Lispだから継続はないのか。でもコンパイル機能は多分あるだろうな。

SParser-2.1 released

http://fhuman.esys.tsukuba.ac.jp/~nozom/SParser-2.1.zip変更点は、 終端文脈で無駄な継続を生成しないようにした read, writeを実装した 有理数(分数)に対応した GUIに入力履歴が付いて若干使いやすくなった その他バグ修正多数 例によってドキュメントも…

末尾再帰と継続(メモ)

レキシカルスコープと継続ができたので、あとSchemeに必要なものとしては末尾再帰の最適化がある。せっかくだからこれも実装したい。 どうやって実装すればいいか。最初はインタプリタではなくコンパイラを作らないといけないと思ったが、ひょっとすると継続…

継続(Continuation)

なんかゴニョゴニョやってるうちに出来たみたい。 > (+ (call/cc (lambda (x) (x 1) 2)) 3) ==> 4 以下のページなども参考にしつつ、継続スタックを自前で管理することで実現した。継続に対応させるために、プリミティブ関数の実装がとても力業になってしま…

LispオブジェクトをJavaで実装する

ここ数日Java版Lispインタープリタを作っている。実装できそうなところから作っていったので、現時点ではEmacs LispとSchemeの混ざったようなへんてこな言語仕様になっているが、それでもそれなりのことはできるようになった。まだいくつかバグが残っている…

JavaのGUIをXMLから生成する gui4j 1.1公開 (MYCOM PC WEB)

http://pcweb.mycom.co.jp/news/2005/06/09/012.html(from AOISAKURA - 日記)Swing(に限らずgtkなども含めたGUIライブラリ全般)の一番嫌いなところは、ロジックを表現するソースコードに、デザインのためのコードが混在することだ。ソースコードがごちゃご…

ITmedia エンタープライズ:「Java 10周年」以後のSunの未来

http://www.itmedia.co.jp/enterprise/articles/0505/13/news089.htmlJavaのオープンソース化、サードパーティーによるJ2EE互換のJava実装、ソフトウェアライセンスからサービスへ。

RMI(Remote Method Invocation)

Java RMI 入門 http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/rmi/hello/hello-world.html RMIについて http://ash.or.jp/java/rmi.htm RMIによるクラスのダウンロード http://ash.or.jp/java/rmi_codebase.htm スタブ不要なRMI http://www.02.246.ne.jp…

RPCとシリアライズのテスト

XML-RPCにシリアライズの機能を加えて、こんなテストコードができた。オブジェクトが文字通りマシンを超えて生き続けるのは、なんだか面白い。 今のところ既知のクラスしか送れないけど、Javaにはネットワーク上にあるパッケージを透過的にダウンロードする…

EmacsからJavaアプリケーションを呼び出す

Emacsは大抵のことは何でもできるけど、GUIに凝ろうとすると途端に行き詰まってしまう。 たとえば現代的なGUIツールキットなら必ず含んでいるような、コンボボックスとかツリービューとかは、等価な機能を提供できたとしても、GUIレベルで同じようなものを実…

Looking Glass

憧れの3Dデスクトップを試してみた。以下導入手順。 (基本的にはLG3D インストールに従いつつ適宜アドリブで) 1.J2SE Developer Kit 5.0のインストール % sh jdk-1_5_0_01-linux-i586.bin # mkdir -p /opt/java # cp -a jdk1_5_0_01 /opt/java/jdk-1_5_0_01/…

WindowsでJavaからCaboChaを呼ぶ 一応解決

前回へのポインタ→id:nozom:20040918#p2結局エラーの原因は分からず。これ以上深入りしてもしょうがないので、ライブラリとしてではなくて子プロセスで実行ファイルを起動して標準出力を読み取る方向で一応目的は達した。 しかし、大したことをするつもりも…

WindowsでJavaからChaSenを呼ぶとエラー

前回(id:nozom:20040917#p3)の続き。 エラーはChaSen内部で起こっている。ためしに直接ChaSenを呼んでみたら同じエラーが出たので、問題はCaboChaではなくChaSenの方にあるんだろう。 An unexpected exception has been detected in native code outside the…

WindowsでJavaからCaboChaを呼ぶとエラー

前回 「多分Windowsでも同じだと思う」なんて書いたが、この予想は大きく外れていて、Windowsだと別の原因で別のエラーが発生する模様(がーん)。目下調査中。とりあえずWindows環境にJava SDKをインストールするところから…。

libchasen.so: undefined symbol: cerr

JavaからJNIでCaboChaを呼ぶと上記のエラーが出る。 以下、とりあえず状況の整理をしてみた。Linuxで検証したけど多分Windowsでも同じだと思う。libchasen.soはlibstdc++.aがリンクされていないので、呼び出し元にリンクしておく必要がある。 ところで、Aと…

クラス設計に関するメモ

http://homepage3.nifty.com/satoshis/oo/memo.html(from: DP/ML)Javaでクラス設計するときの経験則。デザインパターン適用の指針など。