Eliminating go to's while preserving program structure
Journal of the ACM (JACM)
GOTO removal based on regular expressions
Journal of Software Maintenance: Research and Practice
On the capabilities of while, repeat, and exit statements
Communications of the ACM
Flow diagrams, turing machines and languages with only two formation rules
Communications of the ACM
Analysis of structured programs
STOC '73 Proceedings of the fifth annual ACM symposium on Theory of computing
Nonlocal Flow of Control and Kleene Algebra with Tests
LICS '08 Proceedings of the 2008 23rd Annual IEEE Symposium on Logic in Computer Science
Regular expressions and the equivalence of programs
Journal of Computer and System Sciences
Hi-index | 0.00 |
The Böhm---Jacopini theorem (Böhm and Jacopini, 1966) is a classical result of program schematology. It states that any deterministic flowchart program is equivalent to a whileprogram. The theorem is usually formulated at the first-order interpreted or first-order uninterpreted (schematic) level, because the construction requires the introduction of auxiliary variables. Ashcroft and Manna (1972) and Kosaraju (1973) showed that this is unavoidable. As observed by a number of authors, a slightly more powerful structured programming construct, namely loop programs with multi-level breaks, is sufficient to represent all deterministic flowcharts without introducing auxiliary variables. Kosaraju (1973) established a strict hierarchy determined by the maximum depth of nesting allowed. In this paper we give a purely propositional account of these results. We reformulate the problems at the propositional level in terms of automata on guarded strings, the automata-theoretic counterpart to Kleene algebra with tests. Whereas the classical approaches do not distinguish between first-order and propositional levels of abstraction, we find that the purely propositional formulation allows a more streamlined mathematical treatment, using algebraic and topological concepts such as bisimulation and coinduction. Using these tools, we can give more mathematically rigorous formulations and simpler and more revealing proofs.