rascal - Rascal 解决了表达式问题吗?

标签 rascal

Rascal 中的数据和函数可以分散在不同的源文件中,导入时会相应地合并。换句话说,Rascal 支持 open data and open functions 。那么Rascal解决了表达问题吗?它是这样设计的吗?

最佳答案

我认为写 Rascal“解决”表达式问题有点强,但你可以说你可以轻松地在其中编写表达式语法的开放可扩展实现。它正是为此而设计的,请参阅http://www.rascal-mpl.org/from-functions-to-term-rewriting-and-back/

一方面,我们可以编写不受 Rascal 中表达式问题困扰的程序,正是出于您所说的原因:数据和函数都是可公开扩展的,并且它们通过模式匹配动态调度来协同工作。

另一方面,在 Rascal 中编写不可扩展的实现也非常容易。特别是在使用当前访问或 switch 语句时,这些语句不可公开扩展。此外,如果您编写一组相互递归的函数,则可能很难以不可预见的方式扩展它们。我们还在研究语言功能以涵盖扩展这些类型的设计。这是为了 future 。

关于rascal - Rascal 解决了表达式问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19663349/

相关文章:

rascal - 如何使用 Rascal Regex 简单地提取变量

adt - 在 Rascal 中使用 "parent"标签注释 ADT/节点树

runtime-error - 解析时出现CallFailed错误

caching - 如何在 Rascal MPL 中序列化/反序列化数据到文件

rascal - 如何避免Rascal中模块之间的名称冲突?

rascal - 查找 Java 语法

pattern-matching - Rascal 中的函数模式、节点和值类型

rascal - 获得圈复杂度