CSDL Home A ASE 2006 Proceedings. 21st IEEE International Conference on Automated Software Engineering
Sept. 18, 2006 to Sept. 22, 2006
Ward Douglas Maurer , George Washington University
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/ASE.2006.66
According to a recently discovered theorem, the flow graph of any program, no matter how much "spaghetti code" it contains, may be reordered in such a way that it shows a loop structure. The rearranged program has no backward branches except for loopbacks, which go to the head of some loop from somewhere within that loop. No new vertices or variables are introduced; only the order of the vertices is changed. Rearrangement may be automated, for either low-level or high-level languages. We have constructed a tool, which we call a rearranger, to act on a description of an assembly language, followed by a program written in that language. A spaghetti-code version of depth-first search has been programmed for Intel, MIPS, G3, Motorola 68000, and the IBM mainframe, and successfully rearranged for all these machines.
Ward Douglas Maurer, "The Rearranger - A New Assembler Utility", ASE, 2006, Proceedings. 21st IEEE International Conference on Automated Software Engineering, Proceedings. 21st IEEE International Conference on Automated Software Engineering 2006, pp. 357-358, doi:10.1109/ASE.2006.66