Tue, 11 May 2010 10:11:35 +0100

Related articles |
---|

Decompiler, Expression Propagation, Intermediate Representation proble r3831110n@gmail.com (Rebel Lion) (2010-05-09) |

Re: Decompiler, Expression Propagation, Intermediate Representation pr jsinger@cs.man.ac.uk (Jeremy Singer) (2010-05-11) |

Re: Decompiler, Expression Propagation, Intermediate Representation pr r3831110n@gmail.com (Rebel Lion) (2010-05-13) |

From: | Jeremy Singer <jsinger@cs.man.ac.uk> |

Newsgroups: | comp.compilers |

Date: | Tue, 11 May 2010 10:11:35 +0100 |

Organization: | University of Manchester |

References: | 10-05-038 |

Keywords: | disassemble, analysis, bibliography |

Posted-Date: | 12 May 2010 00:55:55 EDT |

*> (1) Expression Propagation Problem*

*> c = a + b*

*> e = c + d*

*>*

*> they will be the following after expression propagation*

*>*

*> c = a + b*

*> e = a + b + d*

Cristina Cifuentes [1] refers to this as the "forward substitution"

method. She restricts its application to temporary variables that are

defined then used only once. Cifuentes' thesis [2] has lots of

nitty-gritty detail.

Regards,

Jeremy

[1]

@article{cifuentes1995decompilation,

title={Decompilation of binary programs},

author={Cifuentes, C. and Gough, K.J.},

journal={Software: Practice and Experience},

volume={25},

number={7},

pages={811--829},

year={1995},

doi = "10.1002/spe.4380250706",

*}*

[2] C Cifuentes, Reverse Compilation Techniques, PhD thesis, Faculty of

Information Technology, Queensland University of Technology, July 1994.

ftp://ftp.it.uq.edu.au/pub/CSM/dcc/decompilation_thesis.ps.gz

*>*

*> in a situation it's not safe:*

*>*

*> c = a + b*

*> e = c + d*

*> a = 1*

*> some_use(e) ; we must forbid the propagation of e = c+d since a = 1*

*> kills c = a + b so does e = c + d*

*>*

*> Now is the question: How to efficently/correctly implement this*

*> propagation? What's the analysis' name in theory?*

Post a followup to this message

Return to the
comp.compilers page.

Search the
comp.compilers archives again.