Compiling E: Phases of Transformations

Ralph Hartley hartley@AIC.NRL.Navy.Mil
Mon, 07 Aug 2000 14:35:12 -0400


> The transformation from User-E to Kernel-E is standard, portable, and 
> canonical.  Modulo choice of generated names, two E implementations must 
> transform the same User-E program into the same Kernel-E program.  This is 
> the form of E normally seen by programs that manipulate programs.

If you're going to make the transformation canonical, make it
canonical.

All you need to do is to specify a canonical way of generating names.
There is no reason to generate names differently in diferent
implementations. If instead of Kernel-E the transformation was into
some other language, with implementation dependent rules about what is
a legal name, that would be different.

Ralph Hartley