3-address intermediate language from CIL

Topics: Metadata Model, Source Model
Apr 8, 2010 at 8:45 PM



I've been searching without success for a program that transforms method bodies from CIL into 3-address form [1].

Actually, the algorithm I've found in a paper by Bellamy et al. [2], but not an implementation for CIL.

BTW, I also haven't found any decompiler with an open-source license. Do you know any?.

In any case, obtaining a 3-address form seems more flexible, as it does not commit to a particular syntax for the target high-level language.

Any hints?



[1] three-address form, http://en.wikipedia.org/wiki/Three_address_code

[2] http://progtools.comlab.ox.ac.uk/publications/oopsla08abc


Apr 8, 2010 at 9:59 PM


Another request for hints: there's this handy feature "Metadata as source", http://msdn.microsoft.com/en-us/library/ms236403.aspx 

Any *hint* on any open-source utility providing that functionality? (I'm asking because, no, I'm not proficient in the ways the C# compiler encodes (into CLR-level method signatures) the syntax sugar for events, properties, and indexers. All I know is this overview http://www.mhprofessional.com/downloads/products/0071597832/0071597832_chap01.pdf )