3 ms·
And yet, if the output you are decompiling is known to come from a particular compiler, the search will terminate.
by shasta 16y ago
And yet, if the output you are decompiling is known to come from a particular compiler, the search will terminate.
- peti 16y agoIf you know the compiler (and every other tools involved in the process), then yes, there exist at least one solution (the original input). The search will eventually find it.
- burgerbrain 16y agoAssuming all possible inputs to the compiler cause it to halt. Not true for many high-profile languages. And while not strictly related to "is it decidable", in the real world we have to keep in mind the complexity of the solution. The presence of the naive solution for a particular language doesn't say much about how well we can* actually do it. Is the problem actually decidable within the confines of the physical observable universe for real world inputs?
- jerf 16y ago"Assuming all possible inputs to the compiler cause it to halt." If the compiler did not halt, then we don't have anything to disassemble in the first place. Formally, it is obvious that a diagonalization-based search will eventually find a correct input, regardless of the halting status of any given input. In practice, none of this matters very much.
- burgerbrain 16y agoAs I explained in my other comment, the compiler certainly does halt for the correct input, but that does not mean it will halt for all inputs. You are however correct that this can be circumvented with diagonalization.