Ph.D. Thesis Proposal: Cong Hou

*********************************
There is now a CONTENT FREEZE for Mercury while we switch to a new platform. It began on Friday, March 10 at 6pm and will end on Wednesday, March 15 at noon. No new content can be created during this time, but all material in the system as of the beginning of the freeze will be migrated to the new platform, including users and groups. Functionally the new site is identical to the old one. webteam@gatech.edu
*********************************

Event Details
  • Date/Time:
    • Monday October 8, 2012 - Tuesday October 9, 2012
      1:00 pm - 2:59 pm
  • Location: KACB 1315
  • Phone:
  • URL:
  • Email:
  • Fee(s):
    N/A
  • Extras:
Contact

Cong Hou

Summaries

Summary Sentence: Synthesis for Program Inversion

Full Summary: No summary paragraph submitted.

Ph.D. Thesis Proposal

Title: Synthesis for Program Inversion

Cong Hou
School of Computational Science and Engineering
College of Computing
Georgia Institute of Technology

Date: October 8th (Monday), 2012
Time: 1:00PM - 3:00PM (EDT)
Location: KACB 1315

Committee:

  • Dr. Richard Vuduc (Advisor, School of Computational Science and Engineering, Georgia Tech)
  • Dr. Richard Fujimoto (School of Computational Science and Engineering, Georgia Tech)
  • Dr. Santosh Pande (School of Computer Science,Georgia Tech)
  • Dr. Daniel Quinlan (Lawrence Livermore National Laboratory)
  • Dr. David Jefferson (Lawrence Livermore National Laboratory)


Abstract:
Program inversion has been successfully applied to several areas such as optimistic parallel discrete event simulation (OPDES) and reverse debugging. Given a program P with input state I and output state O, its inverse or reverse program, P-, produces I given O. When P is not injective or reversible, we need to build an instrumented and reversible version of P that we call a forward program and is denoted by P+, so that it becomes possible to construct P- from P+. The instrumented code in P+ stores control flow information and values that cannot be recovered. However, constructing forward and reverse programs manually is a tedious, time-consuming, and error-prone task. We need an automated tool that can generate forward and reverse programs automatically.

In this thesis we introduce an automatic program inversion framework for imperative languages. In our method, we transform the task of program inversion into a problem of retrieving values. Specifically, we build a value search graph (VSG) that explicitly expresses equality relations between values in the program. Values in the graph are represented by single static assignment (SSA) names or constant values. Equalities are detected from assignments, comparisons, some special operations, global value numbering, etc.. Each equality is constrained by a set of control flow paths on which the equality exists. The problem of building forward and reverse programs then becomes a combinatorial search problem on the VSG. The forward and reverse programs are then generated based on the search result.

Using the same framework, we first describe how to retrieve scalar values, then extend it to handling arrays and other data structures (e.g. object access and linked data structure). To handle arrays, we introduce the array subregion representations into the VSG so that the equality between two arrays holds only in the subregion attached to it. Then we retrieve an array by retrieving subregions of it. We also show that object access and linked data structure can be transformed into array-like representations so that the same method will be employed to handle them.

Additional Information

In Campus Calendar
No
Groups

College of Computing, School of Computational Science and Engineering

Invited Audience
No audiences were selected.
Categories
No categories were selected.
Keywords
No keywords were submitted.
Status
  • Created By: Jupiter
  • Workflow Status: Published
  • Created On: Oct 4, 2012 - 11:21am
  • Last Updated: Oct 7, 2016 - 10:00pm