Rascal解决了表达问题吗?

问题描述 投票:0回答:1

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

rascal
1个回答
3
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.