Structured program theorem: Difference between revisions

Content deleted Content added
Line 67:
Up to 1990 there were quite a few proposed methods for eliminating gotos from existing programs, while preserving most of their structure. The various approaches to this problem also proposed several notions of equivalence, which are stricter than simply Turing equivalence, in order to avoid output like the folk theorem discussed above. The strictness of the chosen notion of equivalence dictates the minimal set of control flow structures needed. The 1988 [[JACM]] paper by Lyle Ramshaw surveys the field up to that point, as well proposing its own method.{{sfn|Ramshaw|1988}} Ramshaw's algorithm was used for example in some Java [[decompiler]]s because the [[Java virtual machine]] code has branch instructions with targets expressed as offsets, but the high-level Java language only has multi-level <code>break</code> and <code>continue</code> statements.{{sfn|Nolan|2004}}{{sfn|Proebsting|Watterson|1997}}{{sfn|Maruyama|Ogawa|Matsuoka|1999}} Ammarguellat (1992) proposed a transformation method that goes back to enforcing single-exit.{{sfn|Ammarguellat|1992}}
 
==Application to CobolCOBOL==
{{More citations needed section|date=August 2013}}
In the 1980s [[IBM]] researcher [[Harlan Mills]] oversaw the development of the [[COBOL Structuring Facility]], which applied a structuring algorithm to [[COBOL]] code. Mills's transformation involved the following steps for each procedure.