Project Description
Decompilation is the process of taking a low-level artifact, like a computer program's binary or a chip's boolean logic graph, and finding high-level structure inside it that can be represented in a high-level programming language, effectively undoing the work of the compiler. While the former case, software decompilation, has been around for a long time (and has led to cool capabilities like recompiling old games for new platforms), hardware decompilation is a new idea which was introduced by our group. We first showed the opportunity to look for repetitions in the boolean logic graph and turn them back into loops ("loop rerolling") and more recently have identified a whole suite of potential decompilation tasks that we would like to pursue. That's where we would like for you to help us! Come join us in figuring out how to turn all sorts of low level structures into high-level abstractions that programmers can better understand - we're having a blast and we think you will, too.
Team Members
- Ya (Hannah) Su
- Mihir Srivastava
- Sharanya Gehlot
- Susan Clay
Professor and Mentors
- Prof. Jonathan Balkind