Ontwikkelingsomgevingen integreren vandaag vaak statische programma analyses om het ontwikkelingsproces te ondersteunen.
Ze zijn in staat om bepaalde eigenschappen van een programma, zoals de locatie van een potentiële bug, te rapporteren zonder het programma effectief uit te voeren.
Om nuttig te zijn dienen deze programma analyses echter voldoende precisie en performantie te bieden.
Een goede balans tussen deze twee eigenschappen is niet vanzelfsprekend, aangezien de ene vaak de andere op onvoorspelbare wijze kan beïnvloeden.
Precisie duidt meestal op de context-sensitiviteit van de analyse.
Echter bestaat er geen unieke, optimale configuratie van context-sensitiviteit die passend is voor alle mogelijke programma’s of zelfs voor het hele verloop van een analyse van een enkel programma.
Bovendien ontstaan er extra uitdagingen doordat programma’s vandaag verschillende paradigma’s door elkaar gebruiken.
Dit beïnvloedt de keuze van een optimale configuratie van precisie voor bepaalde soorten programma’s (zoals event-driven programma’s).
Aangezien geen vaste configuratie van precisie adequaat lijkt, stellen we voor om over te schakelen op een adaptieve configuratie.
Zo dienen precisie, context-sensitiviteit, en in the algemeen het gedrag van de analyse gewijzigd en verfijnd te worden tijdens de analyse zelf.
Op die manier kan de analyse zich beter aanpassen aan het programma voor handen en is het zelfs mogelijk om het gedrag ervan tijdens de analyse zelf bij te sturen of verder te specialiseren.
We beogen een systematische en elegante aanpak om dit doel te bereiken door een meta-protocol te ontwerpen dat de analyse toelaat om over haar eigen gedrag te redeneren en zich daarop gebaseerd aan te passen.
Hierdoor kan men de flexibiliteit en begrip van bestaande technieken in programma analyse verhogen.