ŠTILL, Vladimír, Petr ROČKAI and Jiří BARNAT. Using Off-the-Shelf Exception Support Components in C++ Verification. In IEEE International Conference on Software Quality, Reliability and Security - QRS 2017. Neuveden: IEEE. p. 54-64. ISBN 978-1-5386-0592-9. doi:10.1109/QRS.2017.15. 2017.
Other formats:   BibTeX LaTeX RIS
Basic information
Original name Using Off-the-Shelf Exception Support Components in C++ Verification
Authors ŠTILL, Vladimír (203 Czech Republic, belonging to the institution), Petr ROČKAI (703 Slovakia, belonging to the institution) and Jiří BARNAT (203 Czech Republic, guarantor, belonging to the institution).
Edition Neuveden, IEEE International Conference on Software Quality, Reliability and Security - QRS 2017, p. 54-64, 11 pp. 2017.
Publisher IEEE
Other information
Original language English
Type of outcome Proceedings paper
Field of Study 10201 Computer sciences, information science, bioinformatics
Confidentiality degree is not subject to a state or trade secret
Publication form electronic version available online
WWW URL
RIV identification code RIV/00216224:14330/17:00095127
Organization unit Faculty of Informatics
ISBN 978-1-5386-0592-9
Doi http://dx.doi.org/10.1109/QRS.2017.15
UT WoS 000426842400006
Keywords in English C++; Exceptions; Verification; Testing; Model Checking; DIVINE
Tags firank_B
Tags International impact, Reviewed
Changed by Changed by: prof. RNDr. Jiří Barnat, Ph.D., učo 3496. Changed: 1/10/2018 16:25.
Abstract
An important step toward adoption of formal methods in software development is support for mainstream programming languages. Unfortunately, these languages are often rather complex and come with substantial standard libraries. However, by choosing a suitable intermediate language, most of the complexity can be delegated to existing execution-oriented (as opposed to verification-oriented) compiler frontends and standard library implementations. In this paper, we describe how support for C++ exceptions can take advantage of the same principle. Our work is based on DiVM, an LLVM-derived, verification-friendly intermediate language. Our implementation consists of 2 parts: an implementation of the 'libunwind' platform API which is linked to the program under test and consists of 9 C functions. The other part is a preprocessor for LLVM bitcode which prepares exception-related metadata and replaces associated special-purpose LLVM instructions.
Links
GA15-08772S, research and development projectName: Analýza korektnosti vícevláknových programů v C a C++
Investor: Czech Science Foundation
MUNI/A/0897/2016, interní kód MUName: Rozsáhlé výpočetní systémy: modely, aplikace a verifikace VI.
Investor: Masaryk University, Category A
MUNI/A/0992/2016, interní kód MUName: Zapojení studentů Fakulty informatiky do mezinárodní vědecké komunity (Acronym: SKOMU)
Investor: Masaryk University, Category A
PrintDisplayed: 19/4/2024 01:06