Programming in MODULA-2 (3rd corrected ed.)
Programming in MODULA-2 (3rd corrected ed.)
Pascal user manual and report; 3rd ed.
Pascal user manual and report; 3rd ed.
The C programming language
The TEXbook
Characterizations of Reducible Flow Graphs
Journal of the ACM (JACM)
An Algorithm for Structuring Flowgraphs
Journal of the ACM (JACM)
A Comparison of Multilevel break and next Statements
Journal of the ACM (JACM)
Structured Programming with go to Statements
ACM Computing Surveys (CSUR)
Communications of the ACM
A genealogy of control structures
Communications of the ACM
Letters to the editor: go to statement considered harmful
Communications of the ACM
Flow diagrams, turing machines and languages with only two formation rules
Communications of the ACM
TEX: The Program
Reference Manual for the ADA Programming Language
Reference Manual for the ADA Programming Language
Automated assistance for program restructuring
ACM Transactions on Software Engineering and Methodology (TOSEM)
Interactive control restructuring
SETA2 Proceedings of the second international symposium on Environments and tools for Ada
Reverse engineering and system renovation—an annotated bibliography
ACM SIGSOFT Software Engineering Notes
Understanding natural programs using proper decomposition
ICSE '91 Proceedings of the 13th international conference on Software engineering
Semantics-preserving procedure extraction
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Decompiling Java Bytecode: Problems, Traps and Pitfalls
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Syntax-Directed Amorphous Slicing
Automated Software Engineering
IEEE Transactions on Software Engineering
Using Hammock Graphs to Structure Programs
IEEE Transactions on Software Engineering
A formalisation of the relationship between forms of program slicing
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Theoretical foundations of dynamic program slicing
Theoretical Computer Science
Ablego: a function outlining and partial inlining framework: Research Articles
Software—Practice & Experience
Krakatoa: decompilation in java (dose bytecode reveal source?)
COOTS'97 Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3
A cross-language framework for developing AJAX applications
Proceedings of the 5th international symposium on Principles and practice of programming in Java
The Böhm---Jacopini Theorem Is False, Propositionally
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Goto elimination in program algebra
Science of Computer Programming
Byte code level cross-compilation for developing web applications
Science of Computer Programming
From business process models to process-oriented software systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
JVM Bytecode Verification Without Dataflow Analysis
Electronic Notes in Theoretical Computer Science (ENTCS)
The Fortran parallel transformer and its programming environment
Information Sciences: an International Journal
A unifying theory of control dependence and its application to arbitrary program structures
Theoretical Computer Science
Whalesong: running racket in the browser
Proceedings of the 9th symposium on Dynamic languages
Hi-index | 0.01 |
Suppose we want to eliminate the local go to statements of a Pascal program by replacing them with multilevel loop exit statements. The standard ground rules for eliminating go to's require that we preserve the flow graph of the program, but they allow us to completely rewrite the control structures that glue together the program's atomic tests and actions. The go to's can be eliminated from a program under those ground rules if and only if the flow graph of that program has the graph-theoretic property named reducibility.This paper considers a stricter set of ground rules, introduced by Peterson, Kasami, and Tokura, which demand that we preserve the program's original control structures, as well as its flow graph, while we eliminate its go to's. In particular, we are allowed to delete the go to statements and the labels that they jump to and to insert various exit statements and labeled repeat-endloop pairs for them to jump out of. But we are forbidden to change the rest of the program text in any way. The critical issue that determines whether go to's can be eliminated under these stricter rules turns out to be the static order of the atomic tests and actions in the program text. This static order can be encoded in the program's flow graph by augmenting it with extra edges. It can then be shown that the reducibility of a program's augmented flow graph, augmenting edges and all, is a necessary and sufficient condition for the eliminability of go to's from that program under the stricter rules.