TRANSIT: Specifying Protocols with Concolic Snippets

被引:98
|
作者
Udupa, Abhishek [1 ]
Raghavan, Arun [1 ]
Deshmukh, Jyotirmoy V. [1 ]
Mador-Haim, Sela [1 ]
Martin, Milo M. K. [1 ]
Alur, Rajeev [1 ]
机构
[1] Univ Penn, Philadelphia, PA 19104 USA
关键词
Program Synthesis; Distributed Protocol Synthesis; Cache Coherence Protocols; Programming by Example; VERIFICATION;
D O I
10.1145/2499370.2462174
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:287 / 296
页数:10
相关论文
共 35 条
  • [1] Bliss: Specifying Declarative Service Protocols
    Singh, Munindar P.
    [J]. 2014 IEEE INTERNATIONAL CONFERENCE ON SERVICES COMPUTING (SCC 2014), 2014, : 235 - 242
  • [2] SPECIFYING AND PROVING COMMUNICATION CLOSEDNESS IN PROTOCOLS
    JANSSEN, W
    ZWIERS, J
    [J]. PROTOCOL SPECIFICATION, TESTING AND VERIFICATION, XIII, 1993, 16 : 323 - 339
  • [3] Modularizing and Specifying Protocols among Threads
    Jongmans, Sung-Shik T. Q.
    Arbab, Farhad
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2013, (109): : 34 - 45
  • [4] An ACL for specifying fault-tolerant protocols
    Dragoni, N
    Gaspari, M
    Guidi, D
    [J]. AI*IA2005: ADVANCES IN ARTIFICIAL INTELLIGENCE, PROCEEDINGS, 2005, 3673 : 237 - 248
  • [5] A unified algebraic framework for specifying communication protocols
    Jmaiel, M
    [J]. ICFEM 2000: THIRD INTERNATIONAL CONFERENCE ON FORMAL ENGINEERING METHODS, PROCEEDINGS, 2000, : 57 - 65
  • [6] ON SPECIFYING PROTOCOLS BASED ON LOTOS AND TEMPORAL LOGIC
    ANDO, T
    KATO, Y
    TAKAHASHI, K
    [J]. IEICE TRANSACTIONS ON COMMUNICATIONS, 1994, E77B (08) : 992 - 1006
  • [7] A METHOD FOR SPECIFYING AND VALIDATING COMMUNICATION PROTOCOLS IN LOTOS
    CARRASCO, FJ
    GIL, JJ
    [J]. IFIP TRANSACTIONS C-COMMUNICATION SYSTEMS, 1993, 10 : 247 - 262
  • [8] An ACL for specifying fault-tolerant protocols
    Dragoni, Nicola
    Gaspari, Mauro
    Guidi, Davide
    [J]. APPLIED ARTIFICIAL INTELLIGENCE, 2007, 21 (4-5) : 361 - 381
  • [9] Specifying and Verifying CRDT Protocols Using TLA+
    Ji, Ye
    Wei, Heng-Feng
    Huang, Yu
    Lü, Jian
    [J]. Ruan Jian Xue Bao/Journal of Software, 2020, 31 (05): : 1332 - 1352
  • [10] Specifying Protocols for Multi-Agent Systems Interaction
    Poslad, Stefan
    [J]. ACM TRANSACTIONS ON AUTONOMOUS AND ADAPTIVE SYSTEMS, 2007, 2 (04)