Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/1770351.1770381guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Shape analysis for composite data structures

Published: 03 July 2007 Publication History
  • Get Citation Alerts
  • Abstract

    We propose a shape analysis that adapts to some of the complex composite data structures found in industrial systems-level programs. Examples of such data structures include "cyclic doubly-linked lists of acyclic singly-linked lists", "singly-linked lists of cyclic doubly-linked lists with back-pointers to head nodes", etc. The analysis introduces the use of generic higher-order inductive predicates describing spatial relationships together with a method of synthesizing new parameterized spatial predicates which can be used in combination with the higher-order predicates. In order to evaluate the proposed approach for realistic programs we have performed experiments on examples drawn from device drivers: the analysis proved safety of the data structure manipulation of several routines belonging to an IEEE 1394 (firewire) driver, and also found several previously unknown memory safety bugs.

    References

    [1]
    Berdine, J., Calcagno, C., O'Hearn, P.W.: Symbolic execution with separation logic. In: Yi, K. (ed.) APLAS 2005. LNCS, vol. 3780, Springer, Heidelberg (2005).
    [2]
    Biering, B., Birkedal, L., Torp-Smith, N.: BI hyperdoctrines and higher-order separation logic. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, Springer, Heidelberg (2005).
    [3]
    Bouajjani, A., Habermehl, P., Rogalewicz, A., Vojnar, T.: Abstract tree regular model checking of complex dynamic data structures. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, Springer, Heidelberg (2006).
    [4]
    Distefano, D., O'Hearn, P.W., Yang, H.: A local shape analysis based on separation logic. In: Hermanns, H., Palsberg, J. (eds.) TACAS 2006 and ETAPS 2006. LNCS, vol. 3920, Springer, Heidelberg (2006).
    [5]
    Gotsman, A., Berdine, J., Cook, B., Sagiv, M.: Thread-modular shape analysis. In: To appear in PLDI (2007).
    [6]
    Hackett, B., Rugina, R.: Region-based shape analysis with tracked locations. In: POPL (2005).
    [7]
    Lee, O., Yang, H., Yi, K.: Automatic verification of pointer programs using grammar-based shape analysis. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, Springer, Heidelberg (2005).
    [8]
    Lev-Ami, T., Immerman, N., Sagiv, M.: Abstraction for shape analysis with fast and precise transfomers. In: Ball, T., Jones, R.B. (eds.) CAV 2006. LNCS, vol. 4144, Springer, Heidelberg (2006).
    [9]
    Lev-Ami, T., Sagiv, M.: A system for implementing static analyses. In: Palsberg, J. (ed.) SAS 2000. LNCS, vol. 1824, Springer, Heidelberg (2000).
    [10]
    Loginov, A., Reps, T., Sagiv, M.: Abstraction refinement via inductive learning. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, Springer, Heidelberg (2005).
    [11]
    Manevich, R., Yahav, E., Ramalingam, G., Sagiv, M.: Predicate abstraction and canonical abstraction for singly-linked lists. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, Springer, Heidelberg (2005).
    [12]
    Podelski, A., Wies, T.: Boolean heaps. In: Hankin, C., Siveroni, I. (eds.) SAS 2005. LNCS, vol. 3672, Springer, Heidelberg (2005).
    [13]
    Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: LICS (2002).
    [14]
    Rinetzky, N., Ramalingam, G., Sagiv, M., Yahav, E.: Componentized heap abstraction. TR-164/06, School of Computer Science, Tel Aviv Univ. (December 2006).
    [15]
    Sagiv, M., Reps, T., Wilhelm, R.: Solving shape-analysis problems in languages with destructive updating. ACM TOPLAS 20(1), 1-50 (1998).
    [16]
    Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. ACM TOPLAS 24(3), 217-298 (2002).
    [17]
    Češka, M., Erlebach, P., Vojnar, T.: Generalised multi-pattern-based verification of programs with linear linked structures. Formal Aspects Comput (2007).

    Cited By

    View all
    • (2021)Loop parallelization using dynamic commutativity analysisProceedings of the 2021 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO51591.2021.9370319(150-161)Online publication date: 27-Feb-2021
    • (2019)Linear capabilities for fully abstract compilation of separation-logic-verified codeProceedings of the ACM on Programming Languages10.1145/33416883:ICFP(1-29)Online publication date: 26-Jul-2019
    • (2018)TwASProceedings of the 33rd Annual ACM Symposium on Applied Computing10.1145/3167132.3167330(1857-1864)Online publication date: 9-Apr-2018
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Guide Proceedings
    CAV'07: Proceedings of the 19th international conference on Computer aided verification
    July 2007
    562 pages
    ISBN:9783540733676
    • Editors:
    • Werner Damm,
    • Holger Hermanns

    Sponsors

    • German Science Foundation
    • Artist2 Network of Excellence
    • Cadence Design Systems
    • Informatik Saarland
    • IBM: IBM

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 03 July 2007

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)Loop parallelization using dynamic commutativity analysisProceedings of the 2021 IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO51591.2021.9370319(150-161)Online publication date: 27-Feb-2021
    • (2019)Linear capabilities for fully abstract compilation of separation-logic-verified codeProceedings of the ACM on Programming Languages10.1145/33416883:ICFP(1-29)Online publication date: 26-Jul-2019
    • (2018)TwASProceedings of the 33rd Annual ACM Symposium on Applied Computing10.1145/3167132.3167330(1857-1864)Online publication date: 9-Apr-2018
    • (2017)Compositional entailment checking for a fragment of separation logicFormal Methods in System Design10.5555/3169142.316918951:3(575-607)Online publication date: 1-Dec-2017
    • (2017)Using the coq theorem prover to verify complex data structure invariantsProceedings of the 15th ACM-IEEE International Conference on Formal Methods and Models for System Design10.1145/3127041.3127061(118-121)Online publication date: 29-Sep-2017
    • (2017)Semantic-directed clumping of disjunctive abstract statesACM SIGPLAN Notices10.1145/3093333.300988152:1(32-45)Online publication date: 1-Jan-2017
    • (2017)Semantic-directed clumping of disjunctive abstract statesProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009881(32-45)Online publication date: 1-Jan-2017
    • (2016)Type Inference on ExecutablesACM Computing Surveys10.1145/289649948:4(1-35)Online publication date: 2-May-2016
    • (2016)Automatic fault location for data structuresProceedings of the 25th International Conference on Compiler Construction10.1145/2892208.2892215(99-109)Online publication date: 17-Mar-2016
    • (2015)Analyzing Inductively Defined Properties for Recursive Data StructuresProceedings of the 7th Asia-Pacific Symposium on Internetware10.1145/2875913.2875930(221-228)Online publication date: 6-Nov-2015
    • Show More Cited By

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media