{"status":"public","year":"2005","volume":3442,"extern":1,"_id":"4579","type":"conference","alternative_title":["LNCS"],"day":"24","citation":{"apa":"Beyer, D., Henzinger, T. A., Jhala, R., & Majumdar, R. (2005). Checking memory safety with BLAST (Vol. 3442, pp. 2–18). Presented at the FASE: Fundamental Approaches To Software Engineering, Springer. https://doi.org/10.1007/978-3-540-31984-9_2","chicago":"Beyer, Dirk, Thomas A Henzinger, Ranjit Jhala, and Ritankar Majumdar. “Checking Memory Safety with BLAST,” 3442:2–18. Springer, 2005. https://doi.org/10.1007/978-3-540-31984-9_2.","ista":"Beyer D, Henzinger TA, Jhala R, Majumdar R. 2005. Checking memory safety with BLAST. FASE: Fundamental Approaches To Software Engineering, LNCS, vol. 3442, 2–18.","ieee":"D. Beyer, T. A. Henzinger, R. Jhala, and R. Majumdar, “Checking memory safety with BLAST,” presented at the FASE: Fundamental Approaches To Software Engineering, 2005, vol. 3442, pp. 2–18.","mla":"Beyer, Dirk, et al. Checking Memory Safety with BLAST. Vol. 3442, Springer, 2005, pp. 2–18, doi:10.1007/978-3-540-31984-9_2.","short":"D. Beyer, T.A. Henzinger, R. Jhala, R. Majumdar, in:, Springer, 2005, pp. 2–18.","ama":"Beyer D, Henzinger TA, Jhala R, Majumdar R. Checking memory safety with BLAST. In: Vol 3442. Springer; 2005:2-18. doi:10.1007/978-3-540-31984-9_2"},"quality_controlled":0,"acknowledgement":"This research was supported in part by the NSF grants CCR-0234690, CCR-0225610, and ITR-0326577.","author":[{"first_name":"Dirk","full_name":"Beyer, Dirk","last_name":"Beyer"},{"last_name":"Henzinger","first_name":"Thomas A","full_name":"Thomas Henzinger","id":"40876CD8-F248-11E8-B48F-1D18A9856A87","orcid":"0000−0002−2985−7724"},{"first_name":"Ranjit","full_name":"Jhala, Ranjit","last_name":"Jhala"},{"full_name":"Majumdar, Ritankar S","first_name":"Ritankar","last_name":"Majumdar"}],"intvolume":" 3442","month":"03","publication_status":"published","publist_id":"131","publisher":"Springer","conference":{"name":"FASE: Fundamental Approaches To Software Engineering"},"date_updated":"2021-01-12T07:59:51Z","date_published":"2005-03-24T00:00:00Z","abstract":[{"text":"BLAST is an automatic verification tool for checking temporal safety properties of C programs. Given a C program and a temporal safety property, BLAST statically proves that either the program satisfies the safety property or the program has an execution trace that exhibits a violation of the property. BLAST constructs, explores, and refines abstractions of the program state space based on lazy predicate abstraction and interpolation-based predicate discovery. We show how BLAST can be used to statically prove memory safety for C programs. We take a two-step approach. First, we use Ccured, a type-based memory safety analyzer, to annotate with run-time checks all program points that cannot be proved memory safe by the type system. Second, we use BLAST to remove as many of the run-time checks as possible (by proving that these checks never fail), and to generate for the remaining run-time checks execution traces that witness them fail. Our experience shows that BLAST can remove many of the run-time checks added by Ccured and provide useful information to the programmer about many of the remaining checks.","lang":"eng"}],"date_created":"2018-12-11T12:09:34Z","page":"2 - 18","doi":"10.1007/978-3-540-31984-9_2","title":"Checking memory safety with BLAST"}