是否有处理器/插件可以在Java中强制执行参考透明度,immutabiliyt等?

时间:2010-12-17 22:04:32

标签: java functional-programming referential-transparency

看起来非常简单: 例如,如果存在任何非最终字段访问,则处理器将给出错误的类上的@Immutable。它必须确保所有合作者也是不可改变的。

@ReferentiallyTransparent(更好的名字?)可以放在方法上,然后检查以确保所有的调用和协作者也被标记为@RefTrans和@Immutable ......

1 个答案:

答案 0 :(得分:2)

您可能会对以下文章感兴趣:Verifiable Functional Purity in Java

摘要:

  

证明代码库中的特定方法是功能性的   纯粹的确定性和副作用 - 将有助于核实   安全属性包括功能可逆性,可重复性   计算和不受信任的代码执行的安全性。到现在为止   无法自动证明方法是功能性的   纯粹在广泛使用的高级命令式语言中,例如   Java的。我们讨论了一种证明方法在功能上的技术   通过在称为Joe-E的Java子集中编写程序来实现纯粹的;静止的   验证程序确保程序属于子集。在Joe-E中,纯粹   方法签名可以简单地识别方法。至   证明了我们方法的实用性,我们重构了AES   库,实验投票机实现和HTML   解析器使用我们的技术。我们证明了他们的顶级方法   是可验证的纯粹,并显示这如何提供高级别的安全性   保证这些常规。我们的可验证纯度的方法   是一种允许功能性推理的有吸引力的方法   安全属性,同时利用熟悉性,便利性和   命令式语言的遗留代码。