UtiLisp/C


概要

UtiLispは1982年に東京大学和田研究室の大学院生近山隆氏(現東京大学教授) によって作成されたメインフレーム用のLisp処理系です。

  • 効率を重視して決定された言語仕様
  • アセンブリ言語で書かれた高速な処理系
  • 実用的な規模のデータ型、組込み関数 などの特徴から、1980年代は日本国内で良く使われました。

その後、UtiLispは和田研究室を中心に、68000,68020,VAX,8086,80386などに 移植されましたがUtiLisp/Cは、C言語で書かれた処理系で1988年に開発が開始 されました。C言語で書かれているにもかかわらず、SPARCプロセッサの特徴を 生かした最適化をおこなっている点が売りだったのですが、C言語 で書かれているので、他のプロセッサでも動かすことができます。今は、SPARC プロセッサ上で走らせるよりもi386系のプロセッサ上で走らせる方が速いケースが 多くなっています。

ダウンロード

従来の配布サイトは武市研究室ftpサーバ だったのですが、最近のバージョンは臨時に 田中の個人のページに置いてあります。最新のバージョンは1.14です。

インストール

展開したディレクトリにあるINSTALLを見てそれにしたがって下さい。

コメント

  • UtiLisp の Copyright とライセンスはどのようになっているでしょうか? -- 岩井? 2003-06-29 (日) 21:33:01
  • すみません。まだ、ライセンス文書はできていません。UtiLisp/Cのライセンスに関してはBSDライセンスに準ずる形を考えていますが、それ以外のUtiLisp処理系に関してはわかりません。 -- 田中哲朗? 2003-06-30 (月) 15:44:58
  • なるほど、了解しました。 -- 岩井? 2003-06-30 (月) 21:48:36
  • (defun foo (&key (k1 (required-arg k1) k2)) (break)) と定義して、(foo :k1 :k2) を実行すると、関数の本体が実行されずに戻ってきてしまうようです。ulx/sample/w.l を 1 回実行してもウィンドウが表示されず、2 回目の実行でウィンドウが表示される原因を調べているうちに判明しました。 -- 狩野宏樹? 2003-09-03 (水) 19:37:34
  • 昨日の記述が不十分でしたので補足します。先にlisplib/common.l , lisplib/defun.l を実行しておく必要があります。また、上の例の括弧の位置を正しく直した (defun foo (&key (k1 (required-arg k1)) k2) (break)) では、ちゃんとbreakに届くようです。同様の現象が発生する構文的に正しい例としては、(defun bar &key *1 (k2 'default) k3) (break)) と定義して (bar :k1 :k2 :k3)を実行するというのがあります。 -- 狩野宏樹? 2003-09-04 (木) 08:32:37
  • UtiLisp ではキーワード引数は本来サポートしていません。Common Lisp用に書かれたCLX(X window library)を移植するために、マクロでごまかして一見使えるようにみえますが、CLXを動かすための最小限のサポートしかしていないため、ご指摘のような問題が起きる可能性はあります。 -- 田中哲朗? 2003-09-10 (水) 22:51:26
  • その後、utilispc-1.13 に含まれている ulx のソースと skeleton-edit/ 以下のソースを修正することによって、手元の環境(FreeBSD 4.8+XFree86 4.3.0)でスケルトンエディタが動くようになりました。これでプリミティブの新設もできそうです。ありがとうございました。 -- 狩野宏樹? 2003-09-10 (水) 23:39:43
  • cp lispsys.main.o /home/shinji/program//lib/utilispcp: cannot stat `lispsys.main.o': No such file or directory とでます。プログラムを起動することは問題なくできますがエラーが気になります。 -- yamamoto? 2006-12-08 (金) 18:16:21
  • lispsys.main.oはUtiLispコンパイラもインストールするとできるファイルですね.なくても動きますが,ないと組み込み関数もインタプリタで動くのでちょっと遅くなります. -- 田中哲朗? 2006-12-08 (金) 18:42:08
  • 迅速なお返事ありがとうございます。コンパイラをインストールするには./configure;make;make installだけでは足りませんか。ubuntu edgy eftで利用したいと思ってがんばってます。小さなLISP処理系でソースコードがCで記述されているものを探してUTILISPを知りました。マニュアルも英語ですがあるのでありがたく思います。お手数お掛けしますがお時間のあるときにでもお答え頂ければあり難く思います。 -- yamamoto? 2006-12-08 (金) 19:20:07
  • cp lispsys.main.o /home/shinji/program//lib/utilispcp: cannot stat `lispsys.main.o': No such file or directory とでます。プログラムを起動することは問題なくできますがエラーが気になります。 -- yamamoto? 2006-12-08 (金) 19:21:41
  • 二重投稿してしまったようです。削除お願いします。 -- yamamoto? 2006-12-08 (金) 19:36:17

*1 k1 (required-arg k1

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-02-14 (土) 15:04:59 (953d)