Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2591062.2591197acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Incremental reachability checking of KernelC programs using matching logic

Published: 31 May 2014 Publication History

Abstract

A fundamental phase in software development deals with verifying that software behaves correctly. Although accurate testing can discover many wrong behaviours, formal software verification techniques can help in developing applications that dependably satisfy their requirements. However, since formal verification techniques are time consuming and software changes continuously, incremental verification methods, i.e., methods which reuse the results of the verification of a previous version when verifying a new version of a program, are very useful, since they can significantly reduce the time required to perform the verification.
In this work I apply a syntactic-semantic incremental approach to reachability checking of KernelC programs using matching logic. KernelC is a significant, non-trivial subset of the C programming language. Matching logic is a language-independent proof system to reason about programs in any language that has a rewrite-based operational semantics. Incrementality is achieved by encoding the verification procedure in a syntax-driven fashion based on semantic attributes defined on top of an operator-precedence grammar.

References

[1]
MatchC Verifier. http://fsl.cs.illinois.edu/index.php/Special: MatchCOnline.
[2]
D. Bianculli, A. Filieri, C. Ghezzi, and D. Mandrioli. Syntactic-Semantic Incrementality for Agile Verification. Science of Computer Programming, 2013. In Press.
[3]
S. Chaki, N. Sharygina, and N. Sinha. Verification of evolving software, 2004.
[4]
J. M. Cobleigh, D. Giannakopoulou, and C. S. Păsăreanu. Learning assumptions for compositional verification. In Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems, TACAS’03, pages 331–346, Berlin, Heidelberg, 2003. Springer-Verlag.
[5]
C. L. Conway, K. S. Namjoshi, D. Dams, and S. A. Edwards. Incremental algorithms for inter-procedural analysis of safety properties. In Proceedings of the 17th international conference on Computer Aided Verification (CAV’05), volume 3576 of LNCS, pages 449–461. Springer, 2005.
[6]
S. Crespi Reghizzi and D. Mandrioli. Operator precedence and the visibly pushdown property. In Proceedings of the 4th international conference on Language and Automata Theory and Applications, LATA’10, pages 214–226, Berlin, Heidelberg, 2010. Springer-Verlag.
[7]
L. De Moura and N. Bjørner. Z3: an efficient smt solver. In Proceedings of the 14th international conference on Tools and algorithms for the construction and analysis of systems, Theory and practice of software, TACAS’08/ETAPS’08, pages 337–340, Berlin, Heidelberg, 2008. Springer-Verlag.
[8]
G. Fedyukovich, O. Sery, and N. Sharygina. evolcheck: Incremental upgrade checker for c. In N. Piterman and S. Smolka, editors, Tools and Algorithms for the Construction and Analysis of Systems, volume 7795 of Lecture Notes in Computer Science, pages 292–307. Springer Berlin Heidelberg, 2013.
[9]
R. W. Floyd. Bounded context syntactic analysis. Commun. ACM, 7(2):62–67, Feb. 1964.
[10]
C. Ghezzi. Evolution, adaptation, and the quest for incrementality. In R. Calinescu and D. Garlan, editors, Large-Scale Complex IT Systems. Development, Operation and Management, volume 7539 of Lecture Notes in Computer Science, pages 369–379. Springer Berlin Heidelberg, 2012.
[11]
C. Ghezzi and D. Mandrioli. Incremental parsing. ACM Trans. Program. Lang. Syst., 1(1):58–70, Jan. 1979.
[12]
T. A. Henzinger, R. Jhala, R. Majumdar, and M. A. A. Sanvido. Extreme model checking. Verification: Theory and Practice, pages 180–181, 2004.
[13]
F. Jalili. A general incremental evaluator for attribute grammars. Sci. Comput. Program., 5(1):83–96, Feb. 1985.
[14]
C. B. Jones. Tentative steps toward a development method for interfering programs. ACM Trans. Program. Lang. Syst., 5(4):596–619, Oct. 1983.
[15]
D. E. Knuth. Semantics of context-free languages. Mathematical systems theory, 2(2):127–145, 1968.
[16]
M. Kwiatkowska, G. Norman, D. Parker, and H. Qu. Assume-guarantee verification for probabilistic systems. In J. Esparza and R. Majumdar, editors, Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’10), volume 6105 of LNCS, pages 23–37. Springer, 2010.
[17]
S. Lauterburg, A. Sobeih, D. Marinov, and M. Viswanathan. Incremental state-space exploration for programs with dynamically allocated data. In Proceedings of the 30th international conference on Software engineering, ICSE ’08, pages 291–300, New York, NY, USA, 2008. ACM.
[18]
S. Person, G. Yang, N. Rungta, and S. Khurshid. Directed incremental symbolic execution. In PLDI, pages 504–515, 2011.
[19]
A. M. Rizzi. Incremental reachability checking of KernelC programs using matching logic. Master’s thesis, Politecnico di Milano, Italy, 2013. http://hdl.handle.net/10589/85206.
[20]
G. Ro¸su and A. ¸ Stefănescu. Checking reachability using matching logic. In Proceedings of the 27th conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’12), pages 555–574. ACM, 2012.
[21]
G. Ro¸su and A. ¸ Stefănescu. From hoare logic to matching logic reachability. In Proceedings of the 18th international symposium on Formal Methods (FM’12), volume 7436 of Lecture Notes in Computer Science, pages 387–402. Springer, 2012.
[22]
G. Ro¸su, A. ¸ Stefănescu, ¸ S. Ciobˆ acă, and B. M. Moore. One-path reachability logic. In Proceedings of the 28th symposium on Logic in Computer Science (LICS’13). IEEE, June 2013.
[23]
G. Ro¸su, C. Ellison, and W. Schulte. Matching logic: An alternative to Hoare/Floyd logic. In M. Johnson and D. Pavlovic, editors, Proceedings of the 13th international conference on Algebraic Methodology And Software Technology (AMAST ’10), volume 6486 of Lecture Notes in Computer Science, pages 142–162, 2010.
[24]
N. Sharygina, S. Chaki, E. Clarke, and N. Sinha. Dynamic component substitutability analysis. In J. Fitzgerald, I. Hayes, and A. Tarlecki, editors, FM 2005: Formal Methods, volume 3582 of Lecture Notes in Computer Science, pages 512–528. Springer Berlin Heidelberg, 2005.
[25]
G. Yang, M. B. Dwyer, and G. Rothermel. Regression model checking. In Proceedings of the 25th IEEE international conference on Software Maintenance (ICSM’09), pages 115–124. IEEE, 2009.

Cited By

View all
  • (2015)Syntax-driven program verification of matching logic propertiesProceedings of the Third FME Workshop on Formal Methods in Software Engineering10.5555/2820126.2820143(68-74)Online publication date: 16-May-2015
  • (2015)Syntax-Driven Program Verification of Matching Logic PropertiesProceedings of the 2015 IEEE/ACM 3rd FME Workshop on Formal Methods in Software Engineering10.1109/FormaliSE.2015.18(68-74)Online publication date: 18-May-2015

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE Companion 2014: Companion Proceedings of the 36th International Conference on Software Engineering
May 2014
741 pages
ISBN:9781450327688
DOI:10.1145/2591062
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 profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

  • TCSE: IEEE Computer Society's Tech. Council on Software Engin.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 May 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Matching logic
  2. incremental verification
  3. operator-precedence grammars
  4. reachability checking

Qualifiers

  • Article

Conference

ICSE '14
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2015)Syntax-driven program verification of matching logic propertiesProceedings of the Third FME Workshop on Formal Methods in Software Engineering10.5555/2820126.2820143(68-74)Online publication date: 16-May-2015
  • (2015)Syntax-Driven Program Verification of Matching Logic PropertiesProceedings of the 2015 IEEE/ACM 3rd FME Workshop on Formal Methods in Software Engineering10.1109/FormaliSE.2015.18(68-74)Online publication date: 18-May-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media