Skip to main content

Compositional recurrence analysis revisited

Author(s): Kincaid, Zachary; Breck, Jason; Boroujeni, Ashkan F; Reps, Thomas

Download
To refer to this page use: http://arks.princeton.edu/ark:/88435/pr1882b
Abstract: Compositional recurrence analysis (CRA) is a static-analysis method based on a combination of symbolic analysis and abstract interpretation. This paper addresses the problem of creating a context-sensitive interprocedural version of CRA that handles recursive procedures. The problem is non-trivial because there is an "impedance mismatch" between CRA, which relies on analysis techniques based on regular languages (i.e., Tarjan's path-expression method), and the context-free-language underpinnings of context-sensitive analysis. We show how to address this impedance mismatch by augmenting the CRA abstract domain with additional operations. We call the resulting algorithm Interprocedural CRA (ICRA). Our experiments with ICRA show that it has broad overall strength compared with several state-of-the-art software model checkers.
Publication Date: Jun-2017
Citation: Kincaid, Zachary, Jason Breck, Ashkan Forouhi Boroujeni, and Thomas Reps. "Compositional recurrence analysis revisited." Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation 52, no. 6 (2017): 248-262. doi:10.1145/3062341.3062373
DOI: 10.1145/3062341.3062373
ISSN: 1531-7102
Pages: 248 - 262
Type of Material: Conference Article
Journal/Proceeding Title: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation
Version: Author's manuscript



Items in OAR@Princeton are protected by copyright, with all rights reserved, unless otherwise indicated.