Vad är en kontrollflödesgraf?
En kontrollflödesdiagram (CFG) är en visuell representation av de olika sökvägarna som koden för ett datorprogram kan ta. En CFG består av en serie symboler, kallade noder, som är anslutna med pilar som visar rutten som varje kan ta till nästa nod. Varje nod representerar en betydande linje eller rader av programkod. Där är det flera sätt att göra en cfg, men de är alla i allmänhet i samma sätt i det är inte en form av en betydelse. Till skillnad från ett flödesschema.
Ett av de främsta syftena med att skapa en kontrollflödesgraf är att upptäcka om det finns delar av ett datorprogram som är onödigt. Detta kan lätt uppnås när man tittar på kontrollflödesdiagrammet. Varje nod som inte har en pil som ansluter det till resten av noderna kan tas bort. Programutförande går inte längre än en enda nod. Var och enPilen på diagrammet visar vilket tillstånd som måste uppfyllas för att flytta till den nod som den pekar på, så situationer där det tillståndet aldrig uppfylls kan upptäckas, eftersom det får programmet att cykla tillbaka till föregående nod om och om igen.
Slutligen kan en kontrollflödesgraf hjälpa till att skapa en programberoende graf. Denna typ av graf visar vilka områden i ett program är beroende av andra delar. I datavetenskap används detta för att fastställa en utvärderingsorder för att säkerställa att programkoden körs i rätt sekvens.
Den visuella karaktären hos en kontrollflödesgraf är en av funktionerna som kan göra den potentiellt ovärderlig. Kodstycken som aldrig direkt kallas eller åtkomst kommer att vara ganska uppenbara, eftersom det antingen kommer att finnas några pilar som länkar det till huvudprogrammet eller villkoren kommer att visa 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å vilket antal sätt som helst och kan därför verka 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 en standardflödesschema. Även om de läses på exakt samma sätt, är metoden vald rent personlig preferens.