Related articles |
---|
[5 earlier articles] |
Re: code transformations? meulenbr@prl.philips.nl (1996-09-26) |
Re: code transformations? albaugh@agames.com (1996-09-26) |
Re: code transformations? torbenm@diku.dk (1996-09-29) |
Re: code transformations? ndc@icanect.net (Norman Culver) (1996-09-29) |
Re: code transformations? kaz@nt.com (1996-10-03) |
Re: code transformations? hdlambri@cs.arizona.edu (Henry Dan Lambright) (1996-10-20) |
Re: code transformations? hogan@rintintin.Colorado.EDU (1996-10-24) |
Re: code transformations? bill@amber.ssd.csd.harris.com (1996-10-24) |
Re: code transformations hdlambri@cs.arizona.edu (Henry Dan Lambright) (1996-10-25) |
From: | hogan@rintintin.Colorado.EDU (Apollo) |
Newsgroups: | comp.compilers |
Date: | 24 Oct 1996 22:04:07 -0400 |
Organization: | University of Colorado, Boulder |
References: | 96-09-094 96-10-101 |
Keywords: | translator |
[re semantically based program obfuscators]
Henry Dan Lambright <hdlambri@cs.arizona.edu> wrote:
>Suppose you modify a program's source, but do not modify it in a way so
>that it performs differently (ie the modified version never yields
>different output for any given input.) I would like to know if the
>underlying control and data flow graphs would be similar enough (between
>the former and later versions of the program) for you to be able to "diff"
>the two graphs. ie. the text may have been changed, but the underlying
>functionality (represented by the graphs) remains the same. Does anyone
>out there know if an algorithm exists which counts the minimum number of
>steps to change one DAG into another ?
According to Garey & Johnson, "Maximum Subgraph Matching" is NP-complete.
But your algorithm would solve MSM, hence your problem is NP-hard.
It also appears that it is in NP, so it seems that a 'diff' of DAGs is
an NP-complete problem. If the DAGs turn out to be _trees_, though, it
seems likely that there is a polynomial algorithm for the problem.
--Apollo
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.