An Algorithm for Structuring Flowgraphs

  • Authors:
  • Brenda S. Baker

  • Affiliations:
  • Bell Laboratories, Murray Hill, New Jersey

  • Venue:
  • Journal of the ACM (JACM)
  • Year:
  • 1977

Quantified Score

Hi-index 0.05

Visualization

Abstract

This paper describes an algorithm which transforms a flowgraph into a program containing control constructs such as if then else statements, repeat (do forever) statements, multilevel break statements (causing jumps out of enclosing repeats), and multilevel next statements (causing jumps to iterations of enclosing repeats). The algorithm can be extended to create other types of control constructs, such as while or until. The program appears natural because the constructs are used according to common programming practices. The algorithm does not copy code, create subroutines, or add new variables. Instead, goto statements are generated when no other available control construct describes the flow of control. The algorithm has been implemented in a program called STRUCT which rewrites Fortran programs using constructs such as while, repeat, and if then else statements. The resulting programs are substantially more readable than their Fortran counterparts.