2020
Compiling C and C++ Programs for Dynamic White-Box Analysis
BARANOVÁ, Zuzana a Petr ROČKAIZákladní údaje
Originální název
Compiling C and C++ Programs for Dynamic White-Box Analysis
Autoři
BARANOVÁ, Zuzana (703 Slovensko, domácí) a Petr ROČKAI (703 Slovensko, domácí)
Vydání
Cham, Workshop on Practical Formal Verification for Software Dependability (AFFORD 2019), od s. 30-45, 16 s. 2020
Nakladatel
Springer International Publishing
Další údaje
Jazyk
angličtina
Typ výsledku
Stať ve sborníku
Obor
10201 Computer sciences, information science, bioinformatics
Stát vydavatele
Švýcarsko
Utajení
není předmětem státního či obchodního tajemství
Forma vydání
tištěná verze "print"
Impakt faktor
Impact factor: 0.402 v roce 2005
Kód RIV
RIV/00216224:14330/20:00115150
Organizační jednotka
Fakulta informatiky
ISBN
978-3-030-54993-0
ISSN
Klíčová slova anglicky
DIVINE; automated compilation; formal verification; model checking; C; C++
Příznaky
Mezinárodní význam, Recenzováno
Změněno: 31. 10. 2020 02:42, RNDr. Petr Ročkai, Ph.D.
Anotace
V originále
Building software packages from source is a complex and highly technical process. For this reason, most software comes with build instructions which have both a human-readable and an executable component. The latter in turn requires substantial infrastructure, which helps software authors deal with two major sources of complexity: first, generation and management of various build artefacts and their dependencies, and second, the differences between platforms, compiler toolchains and build environments. This poses a significant problem for white-box analysis tools, which often require that the source code of the program under test is compiled into an intermediate format, like the LLVM IR. In this paper, we present divcc, a drop-in replacement for C and C++ compilation tools which transparently fits into existing build tools and software deployment solutions. Additionally, divcc generates intermediate and native code in a single pass, ensuring that the final executable is built from the intermediate code that is being analysed.