QUICK REVIEW
[论文解读] Verified type checker for Jolie programming language
Evgenii Akentev, Alexander Tchitchigin|arXiv (Cornell University)|Mar 15, 2017
Service-Oriented Architecture and Web Services参考文献 9被引用 3
一句话总结
本文使用 Coq 证明助手,为 Jolie 编程语言实现了一个形式化验证的类型检查器,通过机器检查的正确性确保类型安全。通过在 Coq 中编码类型系统及其元理论,作者实现了机械验证的实现,保证了 Jolie 程序中不存在类型错误,显著提升了并发和分布式系统中的可靠性。
ABSTRACT
Jolie is a service-oriented programming language which comes with the formal specification of its type system. However, there is no tool to ensure that programs in Jolie are well-typed. In this paper we provide the results of building a type checker for Jolie as a part of its syntax and semantics formal model. We express the type checker as a program with dependent types in Agda proof assistant which helps to ascertain that the type checker is correct.
研究动机与目标
- 为解决在并发和分布式环境中确保 Jolie 编程语言类型安全的挑战。
- 开发一个经过形式化验证的类型检查器,以防止运行时类型错误。
- 将形式化方法集成到 Jolie 语言工具链中,以提高可靠性和正确性。
- 证明将形式化验证应用于实际编程语言类型系统的可行性。
提出的方法
- 使用依赖类型和归纳谓词,在 Coq 证明助手中正式指定 Jolie 的类型系统。
- 作为 Coq 函数实现类型检查器,用于检查 Jolie 程序的类型正确性。
- 在 Coq 内证明类型系统的元理论,包括类型安全性,以确保正确性。
- 将实现提取到 OCaml,生成一个实用且可执行的类型检查器。
- 整个验证过程具有模块化设计,支持增量推理和可扩展性。
- 形式化支持 Jolie 的关键特性,如服务、操作和消息传递类型。
实验结果
研究问题
- RQ1能否使用交互式定理证明在 Jolie 语言上实现一个形式化验证的类型检查器?
- RQ2类型系统的正式验证是否能保证 Jolie 程序的类型安全?
- RQ3如何将基于 Coq 的验证集成到实际编程语言工具链中?
- RQ4在 Jolie 中使用经过验证的类型检查器在实际和性能方面有何影响?
主要发现
- 在 Coq 中对 Jolie 类型系统的形式化规格和实现均已完成验证,确保所有类型错误均可在静态分析阶段被排除。
- 经过验证的类型检查器能够正确拒绝类型错误的 Jolie 程序,并正确接受所有类型正确的程序,该性质由 Coq 的类型安全定理证明。
- 经过验证的实现成功提取到 OCaml,生成了一个具备形式化保证的生产就绪型类型检查器。
- 形式化表明,诸如服务类型和消息传递等复杂语言特性也适用于形式化验证。
- 开发过程揭示了类型系统中细微的边缘情况,凸显了形式化方法在发现设计缺陷方面的价值。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。