| L. Ramshaw, "Eliminating Goto's While Preserving Program Structure," J. ACM, vol. 35, no. 4, pp. 893-920, 1988. |
.... slicing programs with goto statements [4, 14, 52] although there are other non SDG based approaches to handling goto statements [1, 38] However, for amorphous slicing, goto statements present less of an issue, because they can be transformed out using standard restructuring transformations [65, 73]. Section 6.1 explains the advantages of the SDG based approach, while Section 6.2 explains the disadvantages. In general, the SDG based approach can be thought of as a compilation, by contrast with the AST based approach which is interpretive. The strengths and weaknesses that accrue from the ....
Lyle Ramshaw. Eliminating goto's while preserving program structure. Journal of the ACM, 35(4):893-920, 1988.
....themselves. Also, the transformations need not preserve traditional notions of equivalence, marking a radical departure from conventional approaches to transformation. We have experimented with flag removal [3] and plan to experiment with side effect removal [4] and restructuring transformations [5]. In the talk we present the initial results of our flag removal work which show that testability transformation has the potential to greatly improve test data generation ability. ....
L. Ramshaw. Eliminating goto's while preserving program structure. Journal of the ACM, 35(4):893--920, 1988.
....source level transformation rule de nition can be deployed to de ne transformations for websites. In an illustrated example, the authors show how their approach can be used to refactor a website to improve its structure, in a manner reminiscent of the restructuring work to remove goto statements [5]. The TXL transformation system has been developed over a period of some ten years. TXL is both transformation system and programming language. The paper by Cordy et al. describes the TXL approach to rapid 3 prototyping of structural source code transformation. The authors present experience ....
Lyle Ramshaw. Eliminating goto's while preserving program structure. Journal of the ACM, 35(4):893-920, 1988.
....to testing concerns will require a reformulation of the semantic relations to be preserved by transformation. Such a semantics could be captured using abstract interpretation [15] Algorithmic Development Existing work transformation to remove side effects [26] and to restructure programs [2, 48] may be reused or adapted for testability transformation. However, Testability Transformation will require new and radically different transformation algorithms. These new transformations need not preserve the meaning of a program, in the traditional sense. For instance, existing transformation ....
L. Ramshaw. Eliminating goto's while preserving program structure. Journal of the ACM, 35(4):893--920, 1988.
....be applied to generate a doall loop. The program structuring is based on a hammock transformation which makes the resulting program readable and clarifies the control scope. A lot of related work has been done on the program structuring. These techniques are applied either on reducible graphs [8, 15, 19, 20] or on irreducible graphs [7] New variables are introduced to register the state of the condition of a if goto statement. The newly proposed technique focuses on the discussion of forward, backward and exit branches. The processing of reducible and irreducible flow graph is not distinguished. ....
....which an interval analysis can be applied to structure the graph. R.E. Tarjan [17] has discussed the properties of a reducible flow graph and an algorithm is proposed to reduce a reducible graph. B.S. Baker [8] proposed an algorithm to transform a flow graph into a structured program. L. Ramshaw [15] gave theorems and rules to eliminate goto s and preserve the program structure. These techniques are only applied on reducible graphs. However, unstructured forms may remain in the irreducible flow graph of the program. J.R Allen [5] proposed guarded statements to convert control dependencies ....
Ramshaw, L., Eliminating go to's while Preserving Program Structure. JACM. Vol.35, No. 4, October, pp. 893-920, 1988.
....chain C with the chain C 0 in P then: P and P 0 are semantically equivalent. 7 Related Work Related work falls into two main categories: work related to procedure extraction (including [GN93, LD98, LV97, BG98] and work on semantics preserving transformations (including [BD77, LMW79, Ram88, PP96, Fea82, LV97, BG98, BDFH97, CLZ86, FOW87] GN93] describes a tool that supports a set of meaningpreserving transformations on Scheme programs, including one that extracts a given contiguous sequence of expressions into a new function and replaces the sequence by a call to the function. ....
....it is likely that similar techniques could be used to move the statements in M together via a series of simple meaning preserving transformation steps. Much has been reported in the literature about converting unstructured programs to structured programs by eliminating goto s (e.g. LMW79, Ram88] Our work is related to this work in the sense that it involves meaningpreserving program transformations, although the goals of the transformations are di erent. In a similar sense, our work is related to work done on optimizing transformations such as code motion out of loops and other ....
L. Ramshaw. Eliminating go to's while preserving program structure. J. ACM, 35(4):893-920, October 1988.
....again on the next loop iteration, it selects the case corresponding to that label (See Figure 6.1) This proves unsatisfying when the gotos are tangled, as the result is not much prettier than the original. Some approaches try to preserve the original structure of the program during goto removal [Ramshaw 88] These techniques use control flow graphs, an early precursor to, and important subrepresentation of, PDGs. Automatic restructuring systems such as SUPERSTRUCTURE [Morgan 84] and RECODER [Federal Software Management Support Center 87] have successfully exploited 128 const Terminate = 0; const ....
L. Ramshaw. Eliminating go to's while preserving program structure. Journal of the ACM, 35(4):893--920, October 1988.
....version of a program was easier to understand. In the case of Pascal, gotos can transfer control not only within the procedure, but also from one procedure to another. Different methods have been proposed; most of them introduce new local and global variables[3] or make use of multilevel exits[7]. Only one method was directly related to decompilation, and it explained only how to structure loops by means of intervals; other constructs were not mentioned[8] Since this decompiler took as input only programs compiled in the Mixal language, it did not have to consider complex control ....
L.Ramshaw, "Eliminating go to's while preserving program structure," Journal of the ACM, vol. 35, pp. 893--920, Oct. 1988.
....one. 5. Retranslation from picture to text (in original or some other language) or from picture to picture. It includes also output of pictures and texts into a typographic editor format (e.g. T E X) In particular, sketchifying and retranslation together provide a means for eliminating gotos [9]. 6. Auxiliary tools for getting different display formats (suppress reveal and compress depress displayed program parts) 7. Tools for improving readability of texts (e.g. syntax highlighting, indentation) 8. Providing overall information (list of modules, procedures and functions, module ....
Ramshaw, L.: Eliminating goto's while preserving program structure. J.ACM 35 4 1988 893--920
....control flow analysis phase. 7 Previous Work Most structuring algorithms have concentrated on the removal of goto statements from control flow graphs at the expense of introduction of new boolean variables [8, 29, 22, 28, 6, 13] code replication [17, 27, 29] the use of multilevel exits [7, 24], or the use of a set of high level structures not available in commonly used languages [25] None of these methods are applicable to a decompiler because: the introduction of new boolean variables modifies the semantics of the underlying program, as these variables did not form part of the ....
L. Ramshaw. Eliminating go to's while preserving program structure. Journal of the ACM, 35(4):893--920, October 1988.
....goto s (along with implicit fall through behavior) determine control flow. Java, however, has no goto statement, so its control flow must be expressed with structured statements. Ramshaw presented an algorithm for eliminating goto s from Pascal programs while preserving the program s structure [Ram88]. This algorithm replaces each goto with a multilevel break to a surrounding loop. The algorithm determines the appropropriate locations for these surrounding loops. We trivially extended his algorithm to use multilevel continue s. Ramshaw s (extended) algorithm replaces each forward goto with a ....
....to mix code and data. It is impossible to jump to the middle of instructions. It is impossible to generate bytecode and then jump to it. 7 Related Work Ramshaw presented a technique for eliminating goto s in Pascal programs by replacing them with multilevel break s and surrounding loops [Ram88]. He made no attempt to recover high level control constructs. All high level control structures were provided by the original Pascal. Several decompilation systems have used a series of graph transformations to recover high level constructs [Lic85, Cif93] These systems encounter difficulties in ....
Lyle Ramshaw. Eliminating go to's while preserving program structure. Journal of the Association for Computing Machinery, 35(4):893--920, October 1988.
No context found.
L. Ramshaw, "Eliminating Goto's While Preserving Program Structure," J. ACM, vol. 35, no. 4, pp. 893-920, 1988.
No context found.
Lyle Ramshaw. Eliminating goto's while preserving program structure. Journal of the ACM, 35(4):893-920, 1988.
No context found.
L. Ramshaw. Eliminating go to's while preserving program structure. J. ACM, 35(4):893--920, Oct. 1988.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC