kontrollflytgrafer
Kontrollflytgrafer (CFG) er en grafisk representasjon av mulig kontrollflyt i et program eller en funksjon. I en CFG er hver node en grunnblokk, som er en sekvens av instruksjoner uten avbryting i midten, og kantene viser hvordan kontrollen kan flyte fra en blokk til en annen. Startnoden representerer program- eller funksjonens start, mens en avslutningsnode representerer slutten. Kantene tar hensyn til fall-through ved vanlig rekkefølge, betingede og ubetingede hopp, samt unntakshåndtering og kall til andre funksjoner i utvidede varianter.
Bygging og struktur: En CFG genereres vanligvis fra en mellomliggende representasjon av programmet. Grunnblokker identifiseres gjennom
Bruksområder og egenskaper: CFG-er brukes i kompilatorer og statiske analyseverktøy for å støtte optimeringer (som dødkode-eliminering,
Begrensninger: CFG-er er en kontekstfri representasjon av kontrollflyt og fanger ikke alle dataflyt- eller avhengighetsaspekter ved