Category: 

What Is a Control Flow Graph?

Article Details
  • Written By: Eugene P.
  • Edited By: Angela B.
  • Last Modified Date: 08 November 2016
  • Copyright Protected:
    2003-2016
    Conjecture Corporation
  • Print this Article
Free Widgets for your Site/Blog
President Richard Nixon had an entire speech prepared in case the Apollo 11 astronauts became stranded on the Moon.  more...

December 8 ,  1965 :  Pope Paul VI promulgated Vatican II into ecumenical law.  more...

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.

Ad

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.

Ad

You might also Like

Recommended

Discuss this Article

Post your comments

Post Anonymously

Login

username
password
forgot password?

Register

username
password
confirm
email