2

Rascal のデータと関数は、さまざまなソース ファイルに散在する可能性があり、インポートされるとそれに応じてマージされます。つまり、Rascal はオープン データとオープン関数をサポートしています。Rascal は式の問題を解決しますか? するように設計されていますか?

4

1 に答える 1

2

Rascal が式の問題を「解決する」と書くのは少し強いと思いますが、式文法のオープンに拡張可能な実装を簡単に書くことができると言えます。これはまさにこのために設計されました。 http://www.rascal-mpl.org/from-functions-to-term-rewriting-and-back/を参照してください。

一方では、まさにあなたが言った理由で、Rascal の式の問題に悩まされないプログラムを書くことができます: データと関数の両方がオープンに拡張可能であり、パターン マッチングによる動的なディスパッチによって連携します。

一方で、拡張不可能な実装を Rascal で書くのはとても簡単です。特に、オープンに拡張できない現在の visit または switch ステートメントを使用する場合。また、相互に再帰的な関数のセットを作成する場合、予期しない方法でそれらを拡張するのはかなり難しい場合があります。また、この種のデザインの拡張をカバーする言語機能にも取り組んでいます。それは未来のためです。

于 2013-10-29T20:20:13.803 に答える