首页> 外文期刊>Higher-order and symbolic computation >Dependent Types for Program Termination Verification
【24h】

Dependent Types for Program Termination Verification

机译:程序终止验证的相关类型

获取原文
获取原文并翻译 | 示例
       

摘要

Program termination verification is a challenging research subject of significant practical importance. While there is already a rich body of literature on this subject, it is still undeniably a difficult task to design a termination checker for a realistic programming language that supports general recursion. In this paper, we present an approach to program termination verification that makes use of a form of dependent types developed in Dependent ML (DML), demonstrating a novel application of such dependent types to establishing a liveness property. We design a type system that enables the programmer to supply metrics for verifying program termination and prove that every well-typed program in this type system is terminating. We also provide realistic examples, which are all verified in a prototype implementation, to support the effectiveness of our approach to program termination verification as well as its unobtrusiveness to programming. The main contribution of the paper lies in the design of an approach to program termination verification that smoothly combines types with metrics, yielding a type system capable of guaranteeing program termination that supports a general form of recursion (including mutual recursion), higher-order functions, algebraic datatypes, and polymorphism.
机译:程序终止验证是具有重大实际意义的具有挑战性的研究主题。尽管已经有大量有关此主题的文献,但是为支持通用递归的逼真的编程语言设计终止检查器仍然是一项艰巨的任务。在本文中,我们提出了一种程序终止验证的方法,该方法利用了在Dependent ML(DML)中开发的一种依赖类型的形式,证明了这种依赖类型在建立活跃性方面的新颖应用。我们设计了一个类型系统,使程序员能够提供度量标准来验证程序终止,并证明该类型系统中每个正确类型的程序都将终止。我们还提供了现实的示例,所有示例均在原型实现中进行了验证,以支持我们的程序终止验证方法的有效性以及其对编程的理解。本文的主要贡献在于设计了一种程序终止验证的方法,该方法将类型与度量平稳地结合在一起,从而产生了一种类型系统,该类型系统能够保证程序终止支持通用的递归形式(包括相互递归),高阶函数。 ,代数数据类型和多态性。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号