0

スキームインタープリターが組み込まれているソフトウェアを使用しています。ユーザーは、インタプリタでコマンドを入力することにより、ソフトウェアを通信/操作できます。また、ユーザーはバイナリファイルを環境にロードすることもできます。私はこのようなスキームコードを書きました:

(define test (lambda() (display "This is a test!"))) ---- d:/test.scm

そして、それをバイナリファイルにコンパイルします。バイナリファイルは、はるかに高速にロードおよび実行されます。ただし、このドキュメントには、スキームコードのコンパイルに関する情報はありません。コンパイル後、ユーザーは次のように入力してバイナリファイルをロードできます。

(fast-load "d:/test.bin" (the-environment))

「高速ロード」は、読み取りと評価を行うだけだと思います。では、コンパイルは単なる暗号化プロセスですか?誰かがこれらのことを知っていますか?どんな情報でも大歓迎です!前もって感謝します。

そして別の例があります:AutoCADシステム。ユーザーは、AutoCADを操作するためのlispコードを書くことができます。また、ユーザーはlispコードを* .fasファイルにコンパイルして、AutoCADにロードすることができます。それで、それが本当に暗号化プロセスだけである場合、どうすればコンパイラを書くことができますか?それについての文書はありますか?

                                                                       Joe
4

1 に答える 1

1

アプリケーションの組み込みインタープリターについて厳密に話している場合 (質問に基づいているようです)、標準的な答えはありません。アプリケーション設計者がコンパイルを実装に組み込み、その機能を公開しているかどうかを確認する必要があります。そうでない場合は、運が悪いです。

スタンドアロンの Scheme アプリケーションまたはライブラリについて質問すると、多くの実装 ( Chickenなど) が何らかの種類の Scheme コンパイラを提供します (前述の Chicken Scheme は最初に C にコンパイルされます)。

Common Lisp について質問している場合 (タイトルと質問で特に Scheme に言及しているという事実は無視してください)。質問の最後で言及した .fasl 形式を生成する標準関数compile-fileを使用できます。

于 2010-12-30T18:02:30.770 に答える