Automatic Preparation of Flow Chart Listings

The project to develop a means of automating the production of computer program flow charts was begun in the fall of 1955. At that time, the primary consideration was to present the diagnostic test routines to the maintenance personnel in such a manner that they would be rapidly and readily understandable. During maintenance periods, the engineers must use computer routines written by others--routines in which the methods or philosophies may not be apparent. Data processing systems require many of these test programs to check the numerous possibilities of failure that exist. I t is not practical to expect the maintenance people to be intimately familiar with every one of the test routines. Therefore, they must be presented in such a form that the logical flow may be easily traced. Figure 1 is an illustration of a typical computer program listing. I t is the list of the commands that the computer is to execute in solving a fractional part of a problem. I t shows where the commands are stored, what they are to do, and contains some descriptive comments. I t is difficult to get a clear picture of the logical flow from this listing. For this reason logical block diagrams are normally published with the program listing. Figure 2 exhibits the essential features of a logical block diagram. I t is a pictorial presentation of the control flow of an entire computer program. Special symbols (e.g., a diamond representing a decision point) reduce the amount of necessary written description. However, a problem of correlating the logical flow chart with the machine listing of the program still exists. One solution to this problem is to produce a program listing where the information is blocked identically to the logical block diagram. This listing we will refer to as a flow chart listing. Another reason for developing the flo~ chart listing technique was to make it unnecessary to publish detailed logical block diagrams. A combination diagram automatically produced at the same time that the program is translated into machine lar/guage could save the time and expense normally required for drawing up the detailed block diagrams. At the inception of the project, it was felt that the flow chart listing might also be of value as a debugging tool. Early usage showed that this feature far outweighed the primary reasons for developing it. I t has been estimated tha t about two-thirds of the cost and more than ninety per cent of the time spent in solving most scientific and engineering problems on large computers is devoted

[1]  J. W. Backus,et al.  The FORTRAN automatic coding system , 1899, IRE-AIEE-ACM '57 (Western).