D 2017

Using Off-the-Shelf Exception Support Components in C++ Verification

ŠTILL, Vladimír, Petr ROČKAI and Jiří BARNAT

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

Language

English

Type of outcome

Stať ve sborníku

Field of Study

10201 Computer sciences, information science, bioinformatics

Confidentiality degree

není předmětem státního či obchodního tajemství

Publication form

electronic version available online

References:

RIV identification code

RIV/00216224:14330/17:00095127

Organization unit

Faculty of Informatics

ISBN

978-1-5386-0592-9

UT WoS

000426842400006

Keywords in English

C++; Exceptions; Verification; Testing; Model Checking; DIVINE

Tags

International impact, Reviewed
Změněno: 1/10/2018 16:25, prof. RNDr. Jiří Barnat, Ph.D.

Abstract

V originále

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 project
Name: Analýza korektnosti vícevláknových programů v C a C++
Investor: Czech Science Foundation
MUNI/A/0897/2016, interní kód MU
Name: Rozsáhlé výpočetní systémy: modely, aplikace a verifikace VI.
Investor: Masaryk University, Category A
MUNI/A/0992/2016, interní kód MU
Name: Zapojení studentů Fakulty informatiky do mezinárodní vědecké komunity (Acronym: SKOMU)
Investor: Masaryk University, Category A