Controle stroomanalyse - Control flow analysis

In de informatica is control-flow-analyse ( CFA ) een statische-code-analysetechniek voor het bepalen van de controlestroom van een programma. De controlestroom wordt uitgedrukt als een controlestroomgrafiek (CFG). Voor zowel functionele programmeertalen als objectgeoriënteerde programmeertalen verwijzen de term CFA en uitwerkingen zoals k -CFA naar specifieke algoritmen die de controlestroom berekenen.

Voor veel imperatieve programmeertalen is de besturingsstroom van een programma expliciet in de broncode van een programma. Dientengevolge verwijst interprocedurele controlestroomanalyse meestal impliciet naar een statische analysetechniek voor het bepalen van de ontvanger (s) van functie- of methodeaanroepen in computerprogramma's die zijn geschreven in een programmeertaal van hogere orde . In een programmeertaal met functies van een hogere orde, zoals Scheme , is het doel van een functieaanroep bijvoorbeeld mogelijk niet expliciet: in de geïsoleerde uitdrukking

(lambda (f) (f x))

het is onduidelijk op welke procedure f betrekking kan hebben. Een controlestroomanalyse moet overwegen waar deze uitdrukking kan worden aangeroepen en welk argument deze kan krijgen om de mogelijke doelen te bepalen.

Technieken zoals abstracte interpretatie , het oplossen van beperkingen en type-systemen kunnen worden gebruikt voor controle-stroomanalyse.

Zie ook

Referenties

Externe links