## Abstract

Let ℱ denote a conventional flowchart. Any algorithm can be represented by a flowchart. If action nodes in ℱ call ℱ then ℱ is a recursive flowchart. We show how to decompose arbitrary non-self-modifying programs into structure and atomic parts. We specifically give the synthesis procedure for a controller ℳ. ℳ can serve as the only sequencer in an execution of ℱ. If ℱ is recursive then ℳ is a pushdown machine, otherwise ℳ is a finite state machine. The next-state function f and the output function g of ℳ represent respectively all of the structure-, i.e. the programmer-oriented-, and all of the atomic-, i.e. the data-oriented-, parts of ℱ. f defines the flow or pattern of computations and g the actual transformations or operations on data. Thus we construct and analyze programs by constructing and analyzing their sequencers ℳ. © 1970 BIT Foundations.