{"department":[{"_id":"ToHe"}],"alternative_title":["LNCS"],"editor":[{"full_name":"Rosenblum, David","last_name":"Rosenblum","first_name":"David"},{"full_name":"Taenzer, Gabriele","last_name":"Taenzer","first_name":"Gabriele"}],"citation":{"short":"D. Beyer, T.A. Henzinger, G. Théoduloz, D. Zufferey, in:, D. Rosenblum, G. Taenzer (Eds.), Springer, 2010, pp. 263–277.","ama":"Beyer D, Henzinger TA, Théoduloz G, Zufferey D. Shape refinement through explicit heap analysis. In: Rosenblum D, Taenzer G, eds. Vol 6013. Springer; 2010:263-277. doi:10.1007/978-3-642-12029-9_19","ista":"Beyer D, Henzinger TA, Théoduloz G, Zufferey D. 2010. Shape refinement through explicit heap analysis. FASE: Fundamental Approaches To Software Engineering, LNCS, vol. 6013, 263–277.","ieee":"D. Beyer, T. A. Henzinger, G. Théoduloz, and D. Zufferey, “Shape refinement through explicit heap analysis,” presented at the FASE: Fundamental Approaches To Software Engineering, Paphos, Cyprus, 2010, vol. 6013, pp. 263–277.","mla":"Beyer, Dirk, et al. Shape Refinement through Explicit Heap Analysis. Edited by David Rosenblum and Gabriele Taenzer, vol. 6013, Springer, 2010, pp. 263–77, doi:10.1007/978-3-642-12029-9_19.","apa":"Beyer, D., Henzinger, T. A., Théoduloz, G., & Zufferey, D. (2010). Shape refinement through explicit heap analysis. In D. Rosenblum & G. Taenzer (Eds.) (Vol. 6013, pp. 263–277). Presented at the FASE: Fundamental Approaches To Software Engineering, Paphos, Cyprus: Springer. https://doi.org/10.1007/978-3-642-12029-9_19","chicago":"Beyer, Dirk, Thomas A Henzinger, Grégory Théoduloz, and Damien Zufferey. “Shape Refinement through Explicit Heap Analysis.” edited by David Rosenblum and Gabriele Taenzer, 6013:263–77. Springer, 2010. https://doi.org/10.1007/978-3-642-12029-9_19."},"intvolume":" 6013","author":[{"last_name":"Beyer","full_name":"Beyer, Dirk","first_name":"Dirk"},{"last_name":"Henzinger","full_name":"Henzinger, Thomas A","id":"40876CD8-F248-11E8-B48F-1D18A9856A87","orcid":"0000−0002−2985−7724","first_name":"Thomas A"},{"last_name":"Théoduloz","full_name":"Théoduloz, Grégory","first_name":"Grégory"},{"full_name":"Zufferey, Damien","last_name":"Zufferey","first_name":"Damien","orcid":"0000-0002-3197-8736","id":"4397AC76-F248-11E8-B48F-1D18A9856A87"}],"project":[{"name":"Microsoft Research Faculty Fellowship","_id":"2587B514-B435-11E9-9278-68D0E5697425"}],"abstract":[{"text":"Shape analysis is a promising technique to prove program properties about recursive data structures. The challenge is to automatically determine the data-structure type, and to supply the shape analysis with the necessary information about the data structure. We present a stepwise approach to the selection of instrumentation predicates for a TVLA-based shape analysis, which takes us a step closer towards the fully automatic verification of data structures. The approach uses two techniques to guide the refinement of shape abstractions: (1) during program exploration, an explicit heap analysis collects sample instances of the heap structures, which are used to identify the data structures that are manipulated by the program; and (2) during abstraction refinement along an infeasible error path, we consider different possible heap abstractions and choose the coarsest one that eliminates the infeasible path. We have implemented this combined approach for automatic shape refinement as an extension of the software model checker BLAST. Example programs from a data-structure library that manipulate doubly-linked lists and trees were successfully verified by our tool.","lang":"eng"}],"scopus_import":1,"quality_controlled":"1","has_accepted_license":"1","user_id":"4435EBFC-F248-11E8-B48F-1D18A9856A87","file_date_updated":"2020-07-14T12:46:29Z","date_published":"2010-04-21T00:00:00Z","date_created":"2018-12-11T12:08:38Z","oa_version":"Submitted Version","month":"04","type":"conference","ddc":["004"],"title":"Shape refinement through explicit heap analysis","status":"public","file":[{"creator":"system","file_name":"IST-2012-41-v1+1_Shape_refinement_through_explicit_heap_analysis.pdf","access_level":"open_access","checksum":"7d26e59a9681487d7283eba337292b2c","date_updated":"2020-07-14T12:46:29Z","file_id":"5332","relation":"main_file","file_size":312147,"content_type":"application/pdf","date_created":"2018-12-12T10:18:13Z"}],"page":"263 - 277","publist_id":"1061","doi":"10.1007/978-3-642-12029-9_19","_id":"4396","conference":{"end_date":"2010-03-28","name":"FASE: Fundamental Approaches To Software Engineering","location":"Paphos, Cyprus","start_date":"2010-03-20"},"date_updated":"2021-01-12T07:56:40Z","oa":1,"language":[{"iso":"eng"}],"day":"21","year":"2010","volume":6013,"publisher":"Springer","pubrep_id":"41","publication_status":"published"}