CLISP の使い方 (MS-Windows 版)

Commmon Lisp の処理系には様々なものが存在する。 本稿では無償で利用できる GNU CLISP の利用手順について説明する。

CLISP について

CLISP のホームページの URL は

http://clisp.cons.org/

である。 (なお、http://www.cons.org/ には様々な LISPに関連するページへのリンクがまとめられている。)

CLISP は UNIX や MS-Windows で利用することが出来る ANSI Common Lisp 規格に 準拠した LISP 処理系である。ANSI 規格のどの部分をサポートしているかは 上記ページなどにあるドキュメントを参照すること。

CLISP 以外の処理系を探す場合には、以下の WWW ページが役に立つ。


CLISP の入手方法

CLISP は前述のホームページからソースコード、RPM パッケージや Windows 用のバイナリパッケージをダウンロードすることが出来る。 また、CLISP のミラーサイトや SoruceForge.net、あるいは GNU のミラーサイトなどからダウンロードすることも可能である。

なお、本稿執筆時点 (2003年4月) 現在の最新版は 2.30 である。


利用手順

昨年度は各自で自分の環境にインストールをして使ってもらっていたが、 今年度からはインストール済みの処理系を使用してもらうことが可能に なった。そのため、インストール手順は省略する。自宅の PC などに インストールする際は、ダウンロードしたパッケージに含まれる README ファイルなどのインストール手順に従えば良い。

以下は、筑波大学学術情報処理センター春日サブセンター(旧図書館情報大学 総合情報処理センター)のメインコンピュータシステムの Windows 環境 (以下、toro)における利用手順である。

準備

toro において、CLISP (Ver.2.30) を以下のドライブ、ディレクトリにインストール している。
Y:\lecture\saka\clisp-2.30
簡単に CLISP の実行ができるようにコマンドサーチパスにこのディレクトリを 追加する。具体的には、以下の手順となる。
  1. 「マイ コンピュータ」でマウスの右ボタンを押し、メニュから 「プロパティ」を選択する。
  2. 表示された「システムのプロパティ」ウィンドウのタブの「詳細」を 選択する。
  3. 中ほどにある「環境変数...」というボタンを選択する。
  4. 表示された「環境変数」というウィンドウの上半分に 「…のユーザ環境変数」という欄があるので、そこの「変数」欄に 「PATH」という名前の有無を確認する。(注: 大文字か 小文字は関係ない)
  5. 変数「PATH」の有無に応じて以下のようにディレクトリと追加する。
  6. ウィンドウ「環境変数」の下部の「OK」を押す。
  7. ウィンドウ「システムのプロパティ」の下部の「OK」を押して、完了。

CLISP の実行

前述の手順で準備を済ませていれば、以下の手順で CLISP を使うことができる。
  1. コマンドプロンプトを表示する。
  2. コマンドとして「CLISP」と入力する。
  3. LISP の式を入力して、プログラムの実行などを行う。
  4. 式「(exit)」を入力して、CLISP を終了する。 (「(quit)」でも良い。)
  5. (必要に応じて)コマンドプロンプトを閉じる。
なお、CLISP を終了する際、「バッチジョブを終了しますか (Y/N)?」と 尋ねてくる場合があるが、これには「Y」を入力して、エンターキーを 押せば良い。

プログラムの入力と実行

プログラムはトップレベルから入力することもできるが、一般的には テキストエディタ(例えば、notepad)を使ってテキストファイルに保存し、 トップレベルから load 関数を用いて読み込んでから実行する。 プログラムを保存するファイルの名前は拡張子を「.lisp」とすると、 load 関数でファイル名を指定する際に拡張子を省略することができる。例えば、 ファイル名が「fact.lisp」であれば、「(load "fact")」で 済む(もちろん、「(load "fact.lisp")」でも良い)。

なお、notepad などではデフォルトの拡張子が「.txt」になっているので、 注意すること。notepad の実行開始の際に「notepad△fact.lisp」の ようにファイル名をコマンドライン引数で指定すると拡張子が変わってしまう ことはない。

load したら、実行したい関数を呼び出す式をトップレベルから入力すると プログラムが実行される。

インストールしてある CLISP はファイルがカレントディレクトリに なかった場合、「X:\」と「X:\CLISP\」を探すように 設定している。

実行のトレース

関数呼出しの様子をトレースしたい場合は trace マクロを用いる。 例えば、
(trace fact)
とすると、関数 fact の呼出しとリターンの様子が引数と返り値も含めて 表示される。トレースを止める際は、以下のように untrace を使う。
(untrace fact)

実行速度の計測

ある式を評価するのにかかる時間を計測することもできる。これには time マクロを用いる。例えば、
(time (fact 1000))
とすると、(fact 1000) を計算するのにかかった時間が表示され、最後に結果が 表示される。(この場合、スクロールしないと普通には時間は見えない。)

実行画面を残すには

実行した際の画面表示を残したい場合に、画面のコピー&ペーストを 用いれば良い。コマンドプロンプト・ウィンドウの左上のボタンをクリックして メニューを表示し、「編集」から「すべて選択」を選ぶと全体が反転する。そして、 もう一度メニューを表示し、やはり「編集」から「コピー」を選ぶと内部の バッファに反転した部分が貯えられるので、あとは notepad(メモ帳)などを開いて、 そこで、編集メニューのペースト(貼り付け)を選べば良い。なお、「すべて選択」 では、余分なものまで入って困る場合にはマウスを使って範囲選択をしてから コピーすれば良い。

プログラムの編集について

LISP のプログラムの編集の際に良く起こすミスに括弧の数の間違いが ある。 Windows に標準でついているメモ帳 (notepad) はテキストエディタとしては 最低限の機能しかないので、プログラムの編集作業には向いていない。

プログラマ向けの機能が充実したエディタを用いるとプログラムの入力・編集 作業が効率良くなる。LISP 向けの機能が比較的充実しているエディタとしては (GNU) emacs と vi がある。ここでは使い方については特に書かないが、 システム分野のページ「覚書・文書・マニュアル」 ページに emacs (mule) や vi の簡単な説明がある。

vi クローンの vim (gvim) は LISP 以外にも様々な言語に対応しており、Windows でも利用可能である。 以下のディレクトリにインストールしているので、必要に応じてコマンドサーチパスに 追加すれば toro でも利用できる。

Y:\lecture\saka\VIM
コマンドプロンプトのウィンドウ内部で編集する際は、コマンドとして 「vim ファイル名」を、GUI 版の vim を使う場合は、 「gvim ファイル名」のようにして実行してやれば良い。

vim 関連情報は以下のページを参照せよ。なお、 toro 用にインストールしたのは、 Kaoriya (香り屋) で提供されている日本語用にアレンジされたものである。


by Tetsuo Sakaguchi <saka@ulis.ac.jp>
$Date: 2003/04/22 11:13:56 $ GMT