This is not an entirely bizarre proposal. It would probably be fairly
easy to do -- at least for a generic interpreter. (Your Z-to-C
translator would output a bunch of C files. You would then throw away
all the emulator source code from ZIP and plop down those in their
place; they would use the existing interface source code in ZIP.
Compile and run.) People who wanted to run translated games on fancy
ewmulators would be in trouble.
Maintaining the portability would almost certainly be a headache.
Right now we have variances in the Z-machine spec and variances in the
Z-machine emulators. Throwing in another level of uncertainty would
drive me over the edge.
Performance gains... probably significant. I mean... *all* the time is
spent interpreting Z-code. Drop out that layer and your life becomes
an order of magnitude happier.
By the way, I object to your emphasis of "compiler". Inform is a
compiler; it outputs object code, even if nobody's ever built the
hardware to run it. Your idea outputs source code. (If anyone wants to
argue that it's possible to build a chip that runs C source natively,
I will have a good laugh.)
--Z
"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the borogoves..."