2017年07月13日

numb-lambda インタープリタ

numb-lambdaは、LISPの方言であるSchemeに、よく似た言語です。ただし、大文字と小文字を区別します。また、大きな数値や分数、複素数は取り扱うことができません。あくまで、schemeのサブセットと認識してください。ただし、Schemeにはない機能をもっています。今後、これを利用してLISP様言語のインタープリタを作成していきます。

以下は簡単な使い方です。

まずはLinuxや*BSDなどのUNIX系OSから。

numb-lambdaはJavaで記述されています。使用に際してはJREまたはJDKをインストールして使用可能な状態にしておいてください。

prizo.jarをダウンロードして、ホームディレクトリ下のlib/ ディレクトリ下にコピーします。

以下のシェルスクリプトを作成し、numb-lambdaという名前で${HOME}/bin/下に置きます。${HOME}/binディレクトリにPATH通ってなければPATHを通してください。そして、このファイルには実行属性を与えてください。(chmod +x ${HOME}/bin/numb-lambda)

#!/bin/sh
exec java -cp ${HOME}/lib/prizo.jar net.prizo.scmlib2.scheme

その後、numb-lambdaというコマンドにて、numb-lambdaインタープリタが起動します。

Windowsでも同様に設定できます。

numb-lambdaはJavaで記述されています。使用に際してはJREまたはJDKをインストールして使用可能な状態にしておいてください。

コマンドプロンプトを開いて、systempropertiesadvancedというコマンドを実行します。ダイアログが表示されるので、環境変数(N)から、HOMEディレクトリを指定してください。
後はUNIXと同様に設定します。
まずは、prizo.jarをダウンロードして、HOMEディレクトリ下にlibディレクトリを作って、そこにコピーします。

java -cp %HOME%\lib\prizo.jar net.prizo.scmlib2.scheme

のようにすれば実行できます。
(Numb-Lambda バージョン 0.7.1 以降を利用する際には、prizo.jarscmlib2-0.7.1.jar のように読み換えてください)
次のようなバッチファイルを用意して利用すると便利です。
@echo off
java -cp %HOME%\lib\prizo.jar net.prizo.scmlib2.scheme

起動すると、プロンプトが表示されます。終了するには、(quit)と入力してください。

*1 numb-lambda 処理系の著作権は放棄しません。著作権は、コピーを含め作者(筆者)に帰属します。ただし、コピーの配布は自由とします。これを用いることによって生じた、いかなる損害も、その賠償の責を負いません。全て個人の責任において使用してください。
*2 numb-lambda 処理系のソースコードは公開しません。これから作成するLISP様言語の処理系は、その全ソースを公開します。その処理系は最終的にnumb-lambdaを置換できる性能と機能を提供します。ただし、これも同様に著作権を放棄しません。
*3 numb-lambda にはマニュアルがありません。また、それを作成する計画はありません。使い方は今後、このブログにて公開するサンプルを参照してください。Scheme処理系のマニュアルが役に立つかも知れませんが保証はしません。
*4 numb-lambda は十分にテストされていません。予期しない入力を与えるとABORTすることがあります。