7

Lisp の構文と Python のライブラリを使いたいからです。

おそらく、Parenscript のようないくつかのツールは、Javascript の代わりに Python コードを生成します。

4

2 に答える 2

8

私はPython バイトコードを対象とする Lisp コンパイラで少し実験してきました。

ここで小さなビデオを見ることができます。

これは単なる概念実証のおもちゃですが、IMO は実行可能なパスであり、最終結果は Python から自由に呼び出して呼び出すことができます (そして、任意の Python 拡張ライブラリと互換性があります)。ただし、これらすべてがマクロの力を維持しています (メタプログラミングは、おそらく Python が Lisp から最も離れている分野です)。

Lisp のコンパイルを困難にする明示的な構文制限があるため、代わりに Python ソース コードをターゲットにするのは非常に面倒です (たとえば、代入は式ではなく、ラムダではステートメントは許可されず、キャプチャされた変数は Python 2.x では読み取り専用です)。

ただし、VM ランタイムにはこれらの制限がなく、Python バイトコードはかなり優れています。

私のおもちゃは現在、Python 2.x、Python 3.x をターゲットにすることができ、PyPy でも動作します (したがって、JIT コンパイラも取得できます)。

もちろん、完全に準拠した Common Lisp 実装を目指すことは、技術的な観点からはナンセンスですが、Python ランタイム タイプに基づいた Lisp 方言は、Python オブジェクト システムと互換性があり、代わりに実用的なアプリケーションを備えた合理的なツールになる可能性があります。

于 2013-08-31T10:22:09.390 に答える