Abstrakt. Moderna objektorienterade programmeringsspråk som C++ ger praktiska abstraktioner och datainkapslingsmekanismer för programvaruutvecklare. Dessa funktioner komplicerar dock även testning och statisk analys av program som använder objektorienterade programmeringskoncept. I synnerhet C++ språket uppvisar funktioner som flera arv, statisk och dynamisk typgjutning som gör statiska analysatorer för C++ ganska svårt att genomföra. I detta dokument presenterar vi ett tillvägagångssätt där statisk analys utförs genom att sänka det ursprungliga C++-programmet till ett semantiskt likvärdigt C-program. Till skillnad från befintliga översättningsmekanismer som använder komplexa pekare aritmetiska operationer, virtuella-bas offset, virtual-function pekar tabeller, och samtal till run-time bibliotek till modell C++ funktioner, vår översättning är inriktad på att göra statiska programanalysatorer för C++ lättare att skriva och ge mer exakta resultat. Vi har implementerat våra idéer i ett ramverk för C++ kallat CILpp som är jämförbart med det populära C Intermediate Language (CIL) ramverket. Vi utvärderar effektiviteten av vår översättning i ett felsökningsverktyg som använder abstrakt tolkning och modellkontroll. Felsökningsverktyget avslöjade flera tidigare okända fel i C++ projekt med öppen källkod.
Jing Yang m.fl. presentera ett översättningsverktyg kallat Class Hierarchy Representation Object Model Extension (CHROME) som är inriktat på att göra statiska programanalysatorer för C++ lättare att skriva och ge mer exakta resultat REF.
Object Model Construction for Inheritance in C++ and its Applications to Program Analysis
{'venue': 'CC', 'journal': None, 'mag_field_of_study': ['Computer Science']}