【24h】

TRANSIT: Specifying Protocols with Concolic Snippets

机译:传输:使用Condolic Sippet指定协议

获取原文

摘要

With the maturing of technology for model checking and constraint solving, there is an emerging opportunity to develop programming tools that can transform the way systems are specified. In this paper, we propose a new way to program distributed protocols using concolic snippets. Concolic snippets are sample execution fragments that contain both concrete and symbolic values. The proposed approach allows the programmer to describe the desired system partially using the traditional model of communicating extended finite-state-machines (EFSM), along with high-level invariants and concrete execution fragments. Our synthesis engine completes an EFSM skeleton by inferring guards and updates from the given fragments which is then automatically analyzed using a model checker with respect to the desired invariants. The counterexamples produced by the model checker can then be used by the programmer to add new concrete execution fragments that describe the correct behavior in the specific scenario corresponding to the counterexample. We describe TRANSIT, a language and prototype implementation of the proposed specification methodology for distributed protocols. Experimental evaluations of TRANSIT to specify cache coherence protocols show that (1) the algorithm for expression inference from concolic snippets can synthesize expressions of size 15 involving typical operators over commonly occurring types, (2) for a classical directory-based protocol, TRANSIT automatically generates, in a few seconds, a complete implementation from a specification consisting of the EFSM structure and a few concrete examples for every transition, and (3) a published partial description of the SGI Origin cache coherence protocol maps directly to symbolic examples and leads to a complete implementation in a few iterations, with the programmer correcting counterexamples resulting from underspecified transitions by adding concrete examples in each iteration.
机译:随着用于模型检查和约束解决的技术的成熟,有一个新兴机会开发可以改变指定方式的编程工具。在本文中,我们提出了一种使用Consolic Sippets编程分布式协议的新方法。 Concolic Sippets是包含具体和符号值的示例执行片段。所提出的方法允许程序员描述所需的系统,部分地使用传统的通信延长有限状态 - 机器(EFSM)的传统模型,以及高级不变量和具体执行碎片。我们的合成引擎通过从给定片段推断和更新来完成EFSM骨架,然后使用模型检查器相对于所需的不变性自动分析。然后,编程器可以使用模型检查器生成的反例,以添加新的具体执行片段描述对对应的特定场景中的正确行为。我们描述了用于分布式协议所提出的规范方法的过境,语言和原型实施。用于指定高速缓存协调协议的实验评估表明,(1)对CONEGOLIC片段的表达推断算法可以合成涉及典型运算符在常用类型的典型操作员的表达式,(2)对于基于经典目录的协议,Transit自动生成在几秒钟内,从由EFSM结构和每次转换的一些具体示例组成的规范的完整实现,以及(3)SGI原点高速缓存相干协议协议的公开的部分描述直接映射到符号示例并导致a在一些迭代中完成实现,程序员通过在每次迭代中添加具体示例,通过向外的转换来纠正由未指定的转换产生的反异行列。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号