Vad är en kontrollflödesgraf?
Ett styrflödesdiagram (CFG) är en visuell representation av de olika banorna koden för ett datorprogram kan ta. En CFG består av en serie symboler, kallade noder, som är anslutna med pilar som visar rutt som var och en kan ta till nästa nod. Varje nod representerar en betydande linje eller linjer med programmeringskod. Det finns flera sätt att göra en CFG, men de är alla vanligtvis läses på samma sätt. I utseende är ett kontrollflödesdiagram inte till skillnad från ett flödesschema.
Ett av de främsta syftena med att skapa ett kontrollflödesdiagram är att upptäcka om det finns delar av ett datorprogram som är onödiga. Detta kan uppnås enkelt när man tittar på kontrollflödesschemat. En nod som inte har en pil som ansluter till resten av noderna kan tas bort.
Ett annat syfte som ett kontrollflödesdiagram tjänar är att hjälpa till att isolera problem såsom oändliga slingor, där programkörning inte rör sig bortom en enda nod. Varje pil på diagrammet visar vilket villkor som måste uppfyllas för att flytta till den nod till vilken den poäng, så att situationer där det villkoret aldrig uppfylls kan upptäckas, eftersom det gör att programmet återgår till föregående nod om och om igen.
Slutligen kan en kontrollflödesgraf hjälpa till att skapa ett programberoende-diagram. Denna typ av diagram visar vilka områden i ett program som är beroende av andra delar. I datavetenskap används detta för att upprätta en utvärderingsordning för se till att programkoden körs i rätt sekvens.
Den visuella naturen hos en kontrollflödesdiagram är en av funktionerna som kan göra det potentiellt ovärderligt. Kodbitar som aldrig direkt kallas eller nås kommer att vara ganska uppenbara, eftersom det antingen inte finns några pilar som länkar det till huvudprogrammet eller villkoren visar att de aldrig kan uppfyllas för att nå koden. Det finns datorprogram som automatiskt kan generera en kontrollflödesgraf baserad på en serie källkodfiler, vilket ytterligare förenklar processen.
En kontrollflödesdiagram kan representeras på valfritt antal sätt och kan därför visas annorlunda beroende på vem som har producerat den. Vissa grafer använder cirklar eller rutor uteslutande för att representera noder medan andra använder samma former som ett vanligt flödesschema. Även om de läses på exakt samma sätt, är den valda metoden rent personlig preferens.