Category:

# What Is a Control Flow Graph?

Article Details
• Written By: Eugene P.
• Edited By: Angela B.
2003-2018
Conjecture Corporation
 India is building what will become the world’s biggest statue; it will be twice as tall as the Statue of Liberty.  more...

 June 20 ,  1877 :  The world's first commercial telephone was installed.  more...
wiseGEEK Slideshows

A control flow graph‭ (‬CFG‭) ‬is a visual representation of the various paths the code of a computer program can take.‭ ‬A CFG is comprised of a series of symbols, called nodes, that are connected by arrows showing the route that each‭ ‬one‭ ‬can take to the next node.‭ ‬Each node represents a significant line or lines of programming code.‭ ‬There are several‭ ‬ways to render a CFG,‭ ‬but they are‭ ‬all‭ ‬generally read in the same way.‭ ‬In appearance,‭ ‬a control flow graph is not unlike a flowchart.

One of the primary purposes of creating a control flow graph is to discover whether there are parts of a computer program that are unnecessary.‭ ‬This can be achieved easily when looking at the control flow diagram.‭ ‬Any node that does not have‭ ‬an arrow connecting it to the rest of the nodes can be removed.

Another purpose a control flow graph serves is to help isolate problems such as infinite loops,‭ ‬where program execution does not move beyond a single node.‭ Each arrow on the diagram shows what condition must be met to move to the node to which it points,‭ ‬so situations where that condition is never met can be spotted, because it causes the program to cycle back to the previous node over and over.

Finally,‭ ‬a control flow graph can help to create a program dependence graph.‭ ‬This type of graph shows what areas of a program are reliant on other parts.‭ ‬In computer science, this is used to establish an evaluation order to ensure that‭ ‬program‭ ‬code‭ ‬is executing in the‭ ‬correct sequence.

The visual nature of a control flow graph is one of the features that can make it potentially invaluable.‭ Pieces of code that are never directly called or accessed will be fairly obvious, because there will either be no arrows linking it to the main program‭ ‬or the conditions will show that they can never be met to reach the code.‭ ‬There are‭ ‬computer programs that can automatically generate a control flow graph based on a series of source code files, further simplifying the process.

A control flow graph‭ ‬can be represented in any number of ways and, therefore, might appear differently depending on who has produced it.‭ ‬Some graphs use‭ ‬circles or squares‭ ‬exclusively‭ ‬to represent nodes while others use the same shapes as‭ ‬a standard flowchart‭ .‭ ‬Although they are read in the exact same way,‭ ‬the method ‬chosen is purely personal preference.