[FoRK] restructured programming

Dave Long dave.long at bluewin.ch
Fri Nov 16 06:54:14 PST 2012

In the pursuit of being exhaustive, Zakai's Relooper[0] rediscovers  
Zahn's construct[1].

> If we can return to all of the entries, create a Loop
> block, whose Inner block is comprised of all labels that
> can reach one of the entries, and whose Next block is
> comprised of all the others. The entry labels for the cur-
> rent block become entry labels for the Inner block (note
> that they must be in the Inner block by definition, as each
> one can reach itself). The Next block’s entry labels are
> all the labels in the Next block that can be reached by the
> Inner block.


(cf http://sbel.wisc.edu/Courses/ME964/Literature/ 
In FP languages pattern matching over sum types (and in OOP,  
polymorphism) helps to hide such label nests)

[0] Zakai, "Emscripten: An LLVM-to-JavaScript Compiler", 2011
[1] Zahn, "A control statement for natural top-down structured  
programming", 1974

More information about the FoRK mailing list