Strategoプログラミング言語の理論上の限界は何ですか?


10

Strategoは、プログラミング変換言語/書き換えDSLです。

Anthony Sloaneは、Scalaで実行される実装を行うためにいくつかの作業を行っています。

関数型言語としてのStrategoの理論的な限界は何ですか?(実装に関係なく)。Strategoでアプリケーションオーダーycombinatorを記述できますか?


非常に興味深い質問です。
デイブクラーク

同じ論文の2つの些細な変形にリンクすることを本当に意味しましたか?
Randall Schulz

この質問の洗練:マクロ技術とは対照的に、この方法でプログラミング言語を拡張することにはどのような長所と短所がありますか?
Charles Stewart

回答:


6

答えはわかりますが、具体的なプログラムはありません。Eelco Visserの1つのブログエントリで、Strategoでエンコードされたラムダ計算を本質的に含むスクリーンショットを見ることができます(このコードは他の場所でも利用できると思います)。彼はStrategoでラムダ計算の通訳を紹介します。おそらく、これはStrategoがチューリング完全であることを示すのに十分です。

表現力のより具体的な概念に興味がある場合は、質問を言い換えることをお勧めします。

実際の使用に関しては、Strategoの主な制限として、Strategoは1つのデータ構造(つまり、変換されるツリー)でのみ動作することがわかりました。シンボルの表など、他のデータ構造を使用するのは不自然でした(少なくともStrategoでは5年以上前)。Strategoは単一のツリーでの変換に理想的ですが、2つのツリーで同時に操作を実行することは簡単ではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.