Synthesis of Machine Code from Semantics
| dc.contributor.author | Srinivasan, Venkatesh | |
| dc.contributor.author | Reps, Thomas | |
| dc.date.accessioned | 2015-02-03T18:12:25Z | |
| dc.date.available | 2015-02-03T18:12:25Z | |
| dc.date.issued | 2015-02-03 | |
| dc.description.abstract | In this paper, we present a technique to synthesize machine-code instructions from a semantic specification, given as a Quantifier-Free Bit-Vector (QFBV) logic formula. Our technique uses an instantiation of the Counter-Example Guided Inductive Synthesis (CEGIS) framework, in combination with search-space pruning heuristics to synthesize instruction-sequences. To counter the exponential cost inherent in enumerative synthesis, our technique uses a divide-and-conquer strategy to break the input QFBV formula into independent sub-formulas, and synthesize instructions for the sub-formulas. Synthesizers created by our technique could be used to create semantics-based binary rewriting tools such as optimizers, partial evaluators, program obfuscators/de-obfuscators, etc. Our experiments for Intel's IA-32 instruction set show that, in comparison to our baseline algorithm, our search-space pruning heuristics reduce the synthesis time by a factor of 473, and our divide-and-conquer strategy reduces the synthesis time by a further 3 to 5 orders of magnitude. | en |
| dc.identifier.citation | TR1814 | en |
| dc.identifier.uri | http://digital.library.wisc.edu/1793/70465 | |
| dc.subject | abstract semantic-footprint | en |
| dc.subject | divide-and-conquer | en |
| dc.subject | CEGIS | en |
| dc.subject | machine-code synthesis | en |
| dc.title | Synthesis of Machine Code from Semantics | en |
| dc.type | Technical Report | en |