Problems with automatic restructurers
ACM SIGPLAN Notices
Eliminating go to's while preserving program structure
Journal of the ACM (JACM)
The syntax definition formalism SDF—reference manual—
ACM SIGPLAN Notices
A meta-environment for generating programming environments
ACM Transactions on Software Engineering and Methodology (TOSEM)
Estimating software costs
The Expression of Algorithms by Charts
Journal of the ACM (JACM)
A Comparison of Multilevel break and next Statements
Journal of the ACM (JACM)
Fast Algorithms for Solving Path Problems
Journal of the ACM (JACM)
Structured Programming with go to Statements
ACM Computing Surveys (CSUR)
Communications of the ACM
A program data flow analysis procedure
Communications of the ACM
The new math of computer programming
Communications of the ACM
A genealogy of control structures
Communications of the ACM
On the capabilities of while, repeat, and exit statements
Communications of the ACM
Letters to the editor: go to statement considered harmful
Communications of the ACM
Böhm and Jacopini's reduction of flow charts
Communications of the ACM
Flow diagrams, turing machines and languages with only two formation rules
Communications of the ACM
Software Engineering Economics
Software Engineering Economics
Semi-automatic grammar recovery
Software—Practice & Experience
Cracking the 500-Language Problem
IEEE Software
Graph-based tools for re-engineering
Journal of Software Maintenance: Research and Practice
Restructuring of COBOL/CICS legacy systems
Science of Computer Programming - Software maintenance and reengineering (CSMR 99)
Extracting Business Logic from Existing COBOL Programs as a Basis for Redevelopment
IWPC '01 Proceedings of the 9th International Workshop on Program Comprehension
Revitalizing modifiability of legacy assets: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice - Seventh European Conference on Software Maintenance and Reengineering (CSMR 2003)
Towards lightweight checks for mass maintenance transformations
Science of Computer Programming
Automatically proving the correctness of program analyses and transformations
Automatically proving the correctness of program analyses and transformations
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Introduction to Automata Theory, Languages, and Computation (3rd Edition)
Software—Practice & Experience
A Thread Algebra with Multi-Level Strategic Interleaving
Theory of Computing Systems
Thread algebra for strategic interleaving
Formal Aspects of Computing
Maurer computers for pipelined instruction processing†
Mathematical Structures in Computer Science
Hi-index | 0.00 |
This paper shows that program algebra (PGA) [J.A. Bergstra, M.E. Loots, Program algebra for sequential code, J. Logic Algebraic Programm. 51 (2002) 125-156] offers a mathematical and systematic framework for reasoning about correctness and equivalence of algorithms and transformation rules for goto removal. We study correctness and equivalence for the algorithm proposed by Cooper for goto elimination with additional boolean variables. To remove goto statements without the use of additional variables, we propose a technique to get rid of head-to-head crossings and subsequently employ the results of Peterson et al. and Ramshaw. Finally, we provide formal correctness proofs in the setting of PGA for industrial transformation rules given recently by Veerman for restructuring Cobol programs in real-life applications. We hereby show that PGA can explain goto elimination with mathematical rigor to a larger public.