Starting from an operational specification of a translation from a structured to an unstructured imperative language, we point out how a compositional and context-insensitive translation gives rise to static chains of jumps. Taking an inspiration from the notion of continuation, we state a new compositional and context-sensitive specification that provably gives rise to no static chains of jumps, no redundant labels, and no unused labels. It is defined with one inference rule per syntactic construct and operates in linear time and space on the size of the source program (indeed it operates in one pass).
Semantics, Applications, and Implementation of Program Generation, 2001, p. 92-107
Main Research Area:
Second International Workshop on Semantics, Applications, and Implementation of Program generation. SAIG 2001