是否有处理器/插件可以在 Java 中强制引用透明性、不可变性等?

发布于 2024-10-08 08:18:10 字数 172 浏览 0 评论 0原文

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

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

It seems pretty straightforward:
For example, an @Immutable on a class that the processor would then give error if there were any non-final field accesses. It would have to ensure that all collaborators were also immutable.

A @ReferentiallyTransparent (better name?) could be put on methods that would then check to ensure that all calls and collaborators were also marked @RefTrans and @Immutable...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

時窥 2024-10-15 08:18:10

您可能对以下论文感兴趣:Java 中可验证的函数纯度

抽象的 :

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

You may be interested by the following paper : Verifiable Functional Purity in Java

Abstract :

Proving that particular methods within a code base are functionally
pure — deterministic and side-effect free — would aid verification of
security properties including function invertibility, reproducibility
of computation, and safety of untrusted code execution. Until now it
has not been possible to automatically prove a method is functionally
pure within a high-level imperative language in wide use, such as
Java. We discuss a technique to prove that methods are functionally
pure by writing programs in a subset of Java called Joe-E; a static
verifier ensures that programs fall within the subset. In Joe-E, pure
methods can be trivially recognized from their method signature. To
demonstrate the practicality of our approach, we refactor an AES
library, an experimental voting machine implementation, and an HTML
parser to use our techniques. We prove that their top-level methods
are verifiably pure and show how this provides high-level security
guarantees about these rou- tines. Our approach to verifiable purity
is an attractive way to permit functional-style reasoning about
security properties while leveraging the familiarity, convenience, and
legacy code of imperative languages.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文