Elispの再実装


12

Emacsは、事実上の参照実装として機能するCのelispのインタープリターを実装します。他の言語(特にJavascript)でのelispの他の実装はありますか?elispを完全に再実装するために必要なプリミティブの最小セットは何ですか?そうすることの本質的な困難は何ですか(例:動的スコープ)。


良い出発点は次のとおりです。en.wikibooks.org / wiki / Write_Yourself_a_Scheme_in_48_Hours schemeとelispには違いがありますが、必要な基本的なことを理解するには良い出発点だと思います。
レナンラネリ14年

回答:


5

Guile Emacsは、元のEmacs Lispインタープリターがlibguileに最近置き換えられたEmacs実装です。相互運用上の問題はまだありますが(たとえば、GuileとEmacsは文字列について異なる考えを持っています)、既存のEmacs Lispコードは既に使用できます(ただし、パフォーマンスをかなり脅かす)。

あるいは、nicferrierEjitがあります。そのREADMEには、Emacsでコンテキストを作成する特定のものや、Emacs LispをJavascriptにコンパイルする前にプリミティブの最小セットを選択する方法など、関連する困難が記載されています。したがって、実際には再実装ではありませんが、後者の質問に答えるのに役立つ場合があります。


ご注意: EjitはJSにコンパイルされますが、JSで作成されていません。
マラバルバ14年

ええ、その段落は、JSにコンパイルする前に可能な限りそれらを認識し、単純化することを意図しているため、プリミティブの最小セットが何であるかという質問に対する回答として意図されました。いくつかの困難(バッファーやその性質があまり意味をなさないなど)も説明されています。
wasamasa

2
あなたはGuile自身を指し示したいと思います。Guile Emacsプロジェクトは、重要なユースケースですが、ここでは補足的なものです。
PHILS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.