issta07 - Interface Grammars for Modular Software Model...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
Interface Grammars for Modular Software Model Checking * Graham Hughes and Tevfk Bultan Computer Science Department University oF CaliFornia Santa Barbara, CA 93106, USA { graham,bultan } @cs.ucsb.edu ABSTRACT We propose an interface speciFcation language based on grammars for modular software model checking. In our interface speciFcation language, component interfaces are speciFed as context free grammars. An interface grammar for a component speciFes the sequences of method invoca- tions that are allowed by that component. Using interface grammars one can specify nested call sequences that can- not be speciFed using interface speciFcation formalisms that rely on Fnite state machines. Moreover, our interface gram- mars allow speciFcation of semantic predicates and actions, which are Java code segments that can be used to express additional interface constraints. We have built an interface compiler that takes the interface grammar for a component as input and generates a stub for that component. The re- sulting stub is a table-driven parser generated from the input interface grammar. Invocation of a method within the com- ponent becomes the lookahead symbol for the stub/parser. The stub/parser uses a parser stack, the lookahead, and a parse table to guide the parsing. The semantic predicates and semantic actions that appear in the right hand sides of the production rules are executed when they appear at the top of the stack. We conducted a case study by writing an interface grammar for the Enterprise JavaBeans (EJB) persistence interface. Using our interface compiler we au- tomatically generated an EJB stub using the EJB interface grammar. We used the JP± model checker to check EJB clients using this automatically generated EJB stub. Our results show that EJB clients can be veriFed e²ciently us- ing our approach. Categories and Subject Descriptors D.2.4 [ Software/Program VeriFcation ]; ±.3.1 [ Specifying and Verifying and Reasoning about Programs ] * This work is supported by NS± grants CC±-0614002 and CC±-0341365. Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for proFt or commercial advantage and that copies bear this notice and the full citation on the Frst page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior speciFc permission and/or a fee. ISSTA’07, July 9–12, 2007, London, England, United Kingdom. Copyright 2007 ACM 978-1-59593-734-6/07/0007 . .. $ 5.00. Keywords interface grammars, modular veriFcation, model checking General Terms VeriFcation 1. INTRODUCTION The application of model checking techniques directly to programs [11, 16, 4] has shown promise for speciFc veriFca- tion tasks, such as checking for concurrency errors [16] or checking device drivers for interface violations [4]. However, there are two related problems that hinder applicability of model checking to software in a wider scale: 1) state space explosion (i.e., exponential increase in the search space by
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 2
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 11

issta07 - Interface Grammars for Modular Software Model...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online