Warabi [蕨] Lisp for JavaApplet

マルチユーザ対応並列分散リスプ --- Java/CORBA Lisp

21-Feb-2001 version 0.145

This Lisp system starts from 16-Jan-2001 in Warabi. Copyright (C) 2001 GOMI Hiroshi

Warabi [蕨] Lisp for C# --- 25-Feb-2001 version 0.03

This Lisp system starts from 24-Feb-2001 in Warabi

Warabi Lisp for JavaApplet
Input Area

Result Area
Warabi [蕨] Lisp for Java/CORBA について about Warabi Lisp
Warabi Lisp プログラムの例 The examples for Warabi Lisp
Warabi Lisp プログラムの関数(現時点のもの) The functions for Warabi Lisp (on the NOW)
Warabi Lisp の歴史 The History for Warabi Lisp
Warabi Lisp for Java/CORBA のダウンロード (120 kByte) The Download for Warabi Lisp for Java/CORBA
Warabi Lisp for C# のダウンロード (40 kByte) The Download for Warabi Lisp for C#
注意:画面の版数と Lisp の変数 version に格納されている版数が異なるときは クラスファイルの再ロードを行なってください。

Warabi [蕨] Lisp について

About Warabi Lisp

Warabi Lisp は、Java で記述されています。実行環境として、JavaApplet、JavaAWTと CUI で動作します。
この Lisp の特徴は以下のようになっています。
  1. オブジェクト指向機能 --- Java のオブジェクト指向機能と互換
    未実現
  2. Java API のサポート --- JavaAPI のインタプリタ実行が可能
    一部の API をサポート(28-Jan-2001)。
  3. Java との親和性 --- Java クラスのサポート
    Javaの動的なクラスロードと実行をサポート。但し実行は以下の制限がある。
      引数と結果は文字列1個のみで、static なメソッドを実行する。(27-Jan-2001)
  4. マルチスレッドオブジェクト --- オブジェクト単位でマルチスレッド実行
    S 式関数によるマルチスレッド対応関数作成(7-Feb-2001)
  5. アプレット化可能な Lisp 処理系
    実装済み (20-Jan-2001)
  6. 他言語インタフェース
    JNI による実装 (25-Jan-2001)
  7. メモリマネージャはすべて JavaVM で行なう
    リストや文字列など、すべてのデータ型を Java のクラスで実装する。
    このため、Lisp 側で GC を含むメモリマネージャを作成する必要がない。
  8. コンポーネント指向
    リスプのリーダや評価機能をコンポーネントとして、他のプログラムから 利用することが可能。未実現。
  9. 分散化機能
    CORBA/IDL をサポート(8-Feb-2001)。Lispサーバ、クライアントとして動作する。 CORBA コールバックをサポート。

Warabi [蕨] Lisp for Java/CORBA の例

The examples for Warabi Lisp for Java/CORBA

(注) 現時点で、スレッドやプログラム、関数は first class object ではありません。

Warabi [蕨] Lisp for Java/CORBA の関数一覧

The function list for Warabi Lisp for Java/CORBA

  1. リスト関連
    car, cdr, cons, add-list, length, list, set-car, set-cdr (Java)
    first, second, third, cadr, cddr, nth, nthcdr, nconc, append, remove,
    reverse, member, mapcar, get, put, replace, push, pop (S式)
  2. シンボル
    set, value-of (Java)
  3. 文字列
    string= (Java)
  4. 特殊形式
    defun, setf, setq, if, quote, progn, loop, return, catch (Java)
    defmacro (Java)
    let (S式)
  5. 入出力
    read, read-from-string, print(*1), write-to-string, write (Java)
    terpri, read-string (Java)
  6. ファイル
    load, open, close(*1), sload (Java)
  7. 評価
    apply, eval (Java)
  8. 述語関数
    atom, listp, eq, = (Java)
    equal, null, not, integerp, floatp, numberp, stringp,
    symbolp, threadp, errorp (S式)
  9. 算術関数(整数、浮動小数のみ)
    +, -, *, /, >=, <=, <, >, = (Java)
    zerop, 1+, 1-, plusp, minusp, inc, dec (S式)
  10. タイプ(クラス)
    type-of, class-of (Java)
  11. 他言語インタフェース
    jni:send-string(*2), java:load-class, java:send-string (Java)
  12. Java API
    ta:open, ta:append (Java)
  13. スレッド
    thread, result, finishp, run (Java)
    sync, sync2, sync3, monitor (S式)
  14. マルチユーザ
    su, value-of, describe, sload(Java)
    all-user-set(S式)
  15. CORBA
    start-orb-server, orb, callback, regist-callback, callback-result (java)
  16. エラー
    error, throw, catch (Java)
    break (S式)
  17. その他
    oblist, gc, time, exec, ed (Java)
  18. 定数
    t, nil, version(*3) (Java)
*1 --- CUI 版のみ表示
*2 --- JavaApplet 版ではファイルのアクセスは一般的にはできない
*3 --- バージョンを格納している変数

Warabi [蕨] Lisp for C# の関数一覧

The function list for Warabi Lisp for C#

  1. リスト関連
    car, cdr, cons(C#)
  2. 特殊形式
    defun, setf, setq, if, quote, progn(C#)
  3. 数値
    -, >=(C#)
  4. 定数
    t, nil, version (C#)

Warabi [蕨] Lisp の歴史

The history for Warabi Lisp

16-Jan-2001ver 0.00作成開始
17-Jan-2001ver 0.01動作開始
18-Jan-2001ver 0.02Window(awt.TextArea)からの Lisp 実行
19-Jan-2001ver 0.021Applet対応(JDK のみ)
20-Jan-2001ver 0.03Applet対応(IE (MS VM) もサポート)
22-Jan-2001ver 0.04Jar ファイル化、WWW 公開
23-Jan-2001ver 0.041算術演算等のサポート
24-Jan-2001ver 0.042eval, load のサポート
25-Jan-2001ver 0.05JNI(Java Native Interface)による他言語インタフェースのサポート
26-Jan-2001ver 0.051Java のクラスローダのサポート
27-Jan-2001ver 0.06システム関数のルックアップを O(1) に改良(内部クラスで実装)
27-Jan-2001ver 0.061動的に Java のメソッドを実行可能にした
28-Jan-2001ver 0.062TextArea の Java API をサポート
29-Jan-2001ver 0.063Tak 動作: tak6 = 25.366sec on my machine
30-Jan-2001ver 0.064list, time, gc のサポート
31-Jan-2001ver 0.07シンボルの扱いの変更、束縛方法の変更
1-Feb-2001ver 0.071exec のサポート、tak6 = 24.025sec on my machine
3-Feb-2001ver 0.072Eval の改良。tak6 = 13.108sec on my machine
3-Feb-2001ver 0.073引数チェックの改良。tak6 = 3.676sec, tak7 = 21.401sec on my machine
4-Feb-2001ver 0.08浮動小数のサポート。tak6 = 2.444sec, tak7 = 14.871 sec on my machine
4-Feb-2001ver 0.08tak6.0 = 2494 msec, tak7.0 = 15512 msec on my machine
5-Feb-2001ver 0.09スレッドのサポート。環境を保って Lisp Listner スレッド生成、Evaluator生成/実行
6-Feb-2001ver 0.10 tak6 = 1.312sec, tak7 = 8.202sec, tak6.0 = 1.362sec, tak7.0 = 8.462sec
7-Feb-2001ver 0.11 マルチスレッド用関数の増強(finishp, sync, sync2, sync3)、Common Lisp関数作成(S式)
8-Feb-2001ver 0.111 start.lsp を起動時にロードするようにした、open, close, write, terpri, string= の追加。
8-Feb-2001ver 0.12 Lisp 評価機構を CORBA サーバ、クライアントとして動作するようにした。
9-Feb-2001ver 0.121 マシンを越えての CORBA 通信の確認。
10-Feb-2001ver 0.122 マルチユーザ対応開始。
10-Feb-2001ver 0.123 マルチユーザ対応中。リーダ、環境、エバルをコンポーネント化完成。
10-Feb-2001ver 0.124 マルチユーザ対応中。別環境版一応動作。
11-Feb-2001ver 0.125 マルチユーザ基本部完成。同一環境版(将来のユーザ間通信のため)。
11-Feb-2001ver 0.13 マルチユーザ用拡張部(ツール)作成。value-of, sload, describe 作成。
12-Feb-2001ver 0.131 マルチユーザ用拡張部作成2(su, run 作成)。 エラー統一の開始(error, throw の作成)。
13-Feb-2001ver 0.132 エラー統一。catch, throw の作成。エラーキャッチの作成。
14-Feb-2001ver 0.133 マクロのサポート。tak-6,7,6.0,7.0,8 = (1212 7440 1242 7771 46708) msec
15-Feb-2001ver 0.14 CORBA のコールバックをサポート。
18-Feb-2001ver 0.143 tak-6,7,6.0,7.0,8 = (1091 6770 1142 7080 42662) msec。
javadoc 対応のコメントに変更中。
19-Feb-2001ver 0.144 tak-6,7,6.0,7.0,8 = (611 3856 661 4146 24195) msec。
21-Feb-2001ver 0.145 class-of の作成。
24-Feb-2001C# ver 0.00 C# への移植開始、 Read-Print Loop 版動作。
25-Feb-2001C# ver 0.03 Read-Eval-Print Loop 完成。
兎に角 Tak 動作版 tak-7,8 = (9 57) sec。単位に注意。