Andy Wingo <wi...@pobox.com> writes: > * Just as we have a tower compilers (and thus languages), we now have a > tower of /decompilers/. Currently I've only implemented > value->objcode (only valid for values of type program or objcode), > objcode->bytecode, and bytecode->assembly, but it's possible to > implement passes decompiling all the way back to Scheme. > > Or JavaScript! That's the crazy thing: since multiple languages exist > on top of one substrate, decompilers allow us to do language > translation -- what Guile originally wanted to do, but as artifact > rather than as mechanism.
That does sound interesting. But it sounds more like something educational to me, rather than a solution to the original translation desire. For example, it would allow us to show people the equivalent of a given Scheme program in their own preferred language - which would ultimately be helpful for teaching people Scheme. And by adding more sophisticated decompilation passes it might allow us to demonstrate how a given program can be written (through provable transformations) in several different ways, and consider which ways are conventionally considered to be more elegant. But is that the kind of thing that you had in mind, or have I missed your point? Regards, Neil