2

RPython を適切に定義された静的に型付けされた言語 (たとえば、「RRuby」、「RJavaScript」、または RPython にマップされる Haskell または ML または C のサブセット) に置き換えることができるようにするために、PyPy ツールチェーンの更新に必要な手順は何ですか?機能)?これらの言語ごとに AST ジェネレーターを定義し、その AST をツールチェーンにフィードすることは可能でしょうか? それとも、RPython はツールチェーンに完全に組み込まれていますか?

私は、このようなものが PyPy プロジェクトを再定義すると考えていました。少なくとも、「インタープリター言語用のインタープリターを実装するためのツールのセット」を作成するという最初の目標です。それは、プロジェクトのその側面から Python を完全に切り離します。したがって、「PyPy ベースの Ruby 実装」だけでなく、たとえば「RuRu」と書くこともできます。

4

1 に答える 1

0

この質問には多くの可能な答えがあります。1 つの答えは、はい、試すことはできますが、あまり面白くないというものです。はい、同じツールチェーンにフィードする別のフロントエンドで遊ぶことができます。ただし、構文を変更するだけで、それだけです。

RPythonではなく「RRuby」で「RuRu」と書く例を見てみましょう。PyPy のフロントエンドのみを変更すると、得られる RRuby 言語は、ほとんどの場合、構文が異なる RPython になります。ツールチェーンは、RRuby が文字列、リスト、タプル、dict などの同じ種類のオブジェクトをすべて Python 風の動作で処理すると想定します。

これはおそらく、実際の RRuby に求められるものではありません。代わりに、Ruby のような動作をする Ruby のサブセットが必要です。それを PyPy でサポートするのは、はるかに手間がかかります。

于 2013-06-03T11:03:45.000 に答える