Skip to main content
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 生成,并经人工编辑审核。