拡張と構成のためにスクリプト言語を埋め込んだプログラムを書き直しています。古いプログラムは Lua を使用していました。Lua はプログラムに簡単に埋め込むことができます。ソースをダウンロードし、解凍し、すべてのソース ファイルをプログラム ディレクトリに移動し、lua を削除します。 .c と luac.c、そしてすべてが非常にうまく機能します。関数型プログラミング言語の学習のために、新しいスクリプト バックエンドとして Lisp の方言 (スキーム) を選択することにしましたが、スキームの実装がたくさんありますが、組み込みにはどれが最適ですか?
3 に答える
埋め込み用に作られたスキームはたくさんあります。個人的におすすめしたいのは以下の2つです。
2 つのうち、Chibi はコードとメモリのフットプリントを小さく保つために懸命に取り組んでいます。一方、Guile は提供される機能の点でより高度です。R7RS をサポートしているのは Chibi だけですが、Guile はそれに向けて取り組んでいると思います。
他の優れたスキームについては、ウィキペディアのスキーム実装のリストをご覧ください。
Biglooを試すことをお勧めします。彼らのウェブサイトから:
Bigloo は、C(++) が通常必要とされる場所で、Scheme ベースのプログラミング スタイルを有効にするという 1 つの目標に専念する Scheme 実装です。Bigloo は、Scheme や関数型プログラミングでは提供されない従来のプログラミング言語で通常提供される機能を提供することで、Scheme を実用的なものにしようとしています。Bigloo は、Scheme モジュールをコンパイルします。小さくて高速なスタンドアロンのバイナリ実行可能ファイルを提供します。Bigloo は、Scheme と C プログラムの間、Scheme と Java プログラムの間、Scheme と C# プログラムの間の完全な接続を可能にします。
スキームをCアプリケーションに埋め込むために、本番環境で正常に使用されているのを見てきました。他のプロジェクトに対する Bigloo の主な利点は、完全にコンパイルされたスキーム コードをサポートしていることです。そしてもちろん、必要に応じて、それを解釈されたスキーム コードと組み合わせることができます。