Abstrakt. C++ Undantag ger ett användbart sätt att hantera onormalt programbeteende, men leder ofta till oregelbunden interprocedural kontrollflöde som komplicerar kompilatoroptimering och statisk analys. I detta dokument presenterar vi en interprocedural undantagsanalys och transformationsramverk för C++ som fångar det kontrollflöde som orsakas av undantag och omvandlar det till ett undantagsfritt program som kan användas för exakt statisk analys. Kontrollflöde som orsakas av undantag fångas upp i en modulär kontroll-/flödeskurva för undantag från förfarandet (IECFG). IECFG förfinas ytterligare med hjälp av en ny algoritm för interprocedural dataflow analys baserat på en kompakt representation för en uppsättning typer som kallas domänen Signed-TypeSet. Resultaten av den interprocedurala analysen används av en lägre omvandling för att generera en undantagsfri C++ program. De lägre omvandlingarna påverkar inte precisionen och noggrannheten i någon efterföljande programanalys. Vårt ramverk hanterar alla funktioner i synkron C++ undantagshantering och alla undantag under-typningsregler från C++0x-standarden. Vi demonstrerar två tillämpningar av vårt ramverk: a) automatisk slutsats om undantagsspecifikationer för C++-funktioner för dokumentation, och b) kontroll av "no-throw" och "no-leak" undantag-säkerhetsegenskaper.
Prabhu m.fl. REF presenterar en interprocedural undantagsanalys och transformationsram för C++ som registrerar det kontrollflöde som skapas av undantagen och skapar ett undantagsfritt program.
Interprocedural exception analysis for C
{'venue': 'In European. Conf. on Object-oriented Programming', 'journal': None, 'mag_field_of_study': ['Computer Science']}