{"status":"public","year":"2005","day":"24","date_published":"2005-03-24T00:00:00Z","date_updated":"2021-01-12T07:59:51Z","conference":{"name":"FASE: Fundamental Approaches To Software Engineering"},"volume":3442,"quality_controlled":0,"_id":"4579","type":"conference","doi":"10.1007/978-3-540-31984-9_2","date_created":"2018-12-11T12:09:34Z","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"}],"author":[{"last_name":"Beyer","full_name":"Beyer, Dirk","first_name":"Dirk"},{"orcid":"0000−0002−2985−7724","first_name":"Thomas A","id":"40876CD8-F248-11E8-B48F-1D18A9856A87","last_name":"Henzinger","full_name":"Thomas Henzinger"},{"full_name":"Jhala, Ranjit","last_name":"Jhala","first_name":"Ranjit"},{"last_name":"Majumdar","full_name":"Majumdar, Ritankar S","first_name":"Ritankar"}],"citation":{"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.","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.","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","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","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.","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."},"intvolume":" 3442","publication_status":"published","extern":1,"month":"03","publisher":"Springer","page":"2 - 18","alternative_title":["LNCS"],"acknowledgement":"This research was supported in part by the NSF grants CCR-0234690, CCR-0225610, and ITR-0326577.","publist_id":"131","title":"Checking memory safety with BLAST"}