首页> 外文期刊>Science of Computer Programming >An evolutionary approach to translating operational specifications into declarative specifications
【24h】

An evolutionary approach to translating operational specifications into declarative specifications

机译:将操作规范转换为声明性规范的进化方法

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

摘要

Various tools for program analysis, including run-time assertion checkers and static analyzers such as verification and test generation tools, require formal specifications of the programs being analyzed. Moreover, many of these tools and techniques require such specifications to be written in a particular style, or follow certain patterns, in order to obtain an acceptable performance from the corresponding analyses. Thus, having a formal specification sometimes is not enough for using a particular technique, since such specification may not be provided in the right formalism. In this paper, we deal with this problem in the increasingly common case of having an operational specification, while for analysis reasons requiring a declarative specification. We propose an evolutionary approach to translate an operational specification written in a sequential programming language, into a declarative specification, in relational logic. We perform experiments on a benchmark of data structure implementations, for which operational invariants are available, and show that our evolutionary computation based approach to translating specifications achieves very good precision in this context, and produces declarative specifications that are more amenable to analyses that demand specifications in this style. This is assessed in two contexts: bounded verification of data structure invariant preservation, and instance enumeration using symbolic execution aided by tight bounds. (C) 2019 Elsevier B.V. All rights reserved.
机译:各种程序分析工具,包括运行时断言检查器和静态分析器,例如验证和测试生成工具,都需要对要分析的程序进行正式规范。而且,这些工具和技术中的许多要求以特定样式或遵循某些模式来编写这样的规范,以便从相应的分析中获得可接受的性能。因此,有时使用正式的规范不足以使用特定的技术,因为可能无法以正确的形式主义提供这种规范。在本文中,我们在具有操作规范的情况越来越普遍的情况下处理此问题,同时出于分析原因需要声明性规范。我们提出了一种进化的方法,可以将以顺序编程语言编写的操作规范转换为关系逻辑中的声明性规范。我们在数据结构实现的基准上进行了实验,并提供了操作不变式,并证明了在这种情况下我们基于演化计算的规范翻译方法可以达到非常好的精度,并且可以生成更适合于分析需求规范的声明性规范以这种风格。这在两种情况下进行评估:对数据结构不变保存进行有界验证,以及在严格限制的帮助下使用符号执行进行实例枚举。 (C)2019 Elsevier B.V.保留所有权利。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号