Abstrakt. Vi presenterar en ny statisk analysteknik som avsevärt förbättrar kvaliteten på invarianter som kan härledas av standard loop invarianta genereringsmetoder. Vår teknik bryter ner flerfasslingor, som kräver disjunktiva varianter, till en semantiskt ekvivalent sekvens av enfasslingor, som var och en kräver enkla, konjunktiva varianter. Vi definierar splitterpredikat som används för att identifiera fasövergångar i slingor, och vi presenterar en algoritm för att hitta användbara splitterpredikat som möjliggör fasreducerande transformation. Vi visar experimentellt på en uppsättning representativa riktmärken från litteraturen och verkliga kodexempel att vår teknik avsevärt ökar kvaliteten på invarianter som kan härledas från standard invarianta produktionstekniker. Vår teknik är konceptuellt enkel, lätt att implementera och kan integreras i vilken automatisk loop som helst.
Ett annat program omvandling kallas loop delning syftar till att förbättra precisionen av programanalysatorer genom att vrida flerfas loopar till en sekvens av enfas loopar REF.
A.: Simplifying loop invariant generation using splitter predicates
{'venue': 'In: CAV', 'journal': None, 'mag_field_of_study': ['Computer Science']}