[Vm-dev] squeak decompiler

Whiter Walt whiter.walt at gmail.com
Mon Oct 20 12:59:50 UTC 2014


Hi,

thanks for your reply!
do you know for sure, there is information about decompiling in one of 
these books? Because I could not find anything!

Regards,
Walt

Am 20.10.2014 13:13, schrieb karl ramberg:
>   
>
>
> Free books here:
> http://stephane.ducasse.free.fr/FreeBooks.html
> Early Squeak was pretty similar to the description in
> http://sdmeta.gforge.inria.fr/FreeBooks/BlueBook/
> Karl
>
> On Mon, Oct 20, 2014 at 12:01 PM, Casey Ransberger 
> <casey.obrien.r at gmail.com <mailto:casey.obrien.r at gmail.com>> wrote:
>
>
>     I don't know anything about how the Squeak decompiler works.
>
>     One approach to translating code in one language to another is to
>     build a parser for the source language in order to obtain an
>     abstract syntax tree (AST) and then use a pretty-printer for the
>     target language on the AST. That's the short, short version of an
>     explanation of how we translate the Squeak VM from Slang to C.
>
>     In the case of a decompiler for a byte compiled system, the source
>     language (using the above approach) would be the bytecodes
>     themselves, and the target language could be any language with
>     sufficient facilities to support the semantics of the source
>     language (in the case of a decompiler, the target language would
>     be the original language used to compile the e.g. bytecode.)
>
>     I hesitated to respond, because I definitely don't know anything
>     about Squeak's decompiler, and also because what I've described is
>     in some ways a massive oversimplification (if the compiler is
>     optimizing things, deoptimization may be necessary to approach the
>     intent and style of the original programmer's code, and that's
>     just one thing I can think of.)
>
>     We have available to us a couple of tools which make it
>     (relatively) easy to play around with this idea and get a feel for
>     it (OMeta/Squeak and PetitParser.)
>
>     I'd recommend checking out PetitParser if you're messing with
>     stuff to do with compilation, as OMeta's development seems to
>     mostly have shifted to Javascript. PetitParser is actively maintained.
>
>     Decompilation hasn't been an area of interest for me, and I don't
>     know much about it, so I may be sending you down the primrose
>     path. In the immortal words of LeVar Burton, "don't take my word
>     for it."
>
>     I know that several research papers have been written about OMeta,
>     and I'd bet some have been written about PetitParser as well. The
>     focus of these systems is on parsing expression grammars (PEGs,)
>     but language to language translation is a thing, and it seems to
>     me that a decompiler can be viewed as a special case of this
>     thing. Following the references cited in such papers could prove
>     valuable to whatever your cause is.
>
>     For historical perspective on OMeta and PetitParser, it might be
>     helpful looking into the meta language called Meta-2.
>
>     Arguably, this question would be as well addressed on squeak-dev,
>     as both the compiler and the decompiler are image-residents, and
>     not built into the VM (though both are tied to the VM's behavior
>     wrt interpreting bytecode.)
>
>     HTH, sorry if it doesn't.
>
>     Casey
>
>     P.S.
>
>     People who actually know how Squeak's decompiler works should
>     still probably chime in here :D
>
>     > On Oct 20, 2014, at 1:51 AM, Whiter Walt <whiter.walt at gmail.com
>     <mailto:whiter.walt at gmail.com>> wrote:
>     >
>     > Hi,
>     >
>     > I am interested in the Squeak Decompiler class. Is there any
>     technical information in the net, which explains the
>     functionality? Or maybe it follows some common "rules", I can find
>     in some paper or book?
>     >
>     > cheers
>     > Walt
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20141020/36933efc/attachment.htm


More information about the Vm-dev mailing list