Today's computer programs are logical constructs described in human-readable form as source code. Manipulating such source code can be challenging even to trained programmers, as modifications in one location can affect program behaviour described in other locations in nontrivial ways.
While there are many programs that help programmers modify source code to evolve programs, these tools are typically very limited in their scope: they either give few (if any) guarantees to the programmer about what program behaviour they will affect, or they promise near-total behaviour preservation but accomplish this by means that the programmer may not always agree with.
In this work we introduce a novel mechanism for program evolution. Our principal idea is that we capture program behaviour in the form of program models and then permit the programmer to apply an arbitrary number of changes to the program. After these changes, we compute behavioural differences between the original program behaviour and the modified program behaviour. Programmers can then choose which changes they accept and which changes they wish to undo, and how.
We find that our approach subsumes and extends on the existing approaches for transforming programs with near-total behaviour preservation, with stronger guarantees of behaviourpreservation even for a language for which such guarantees are traditionally hard to obtain (Java). Furthermore, we show that for another language (SML) our behaviour-preservation guarantees can be near-absolute whilst permitting complex multi-step transformations that speed up program execution (algorithmic optimisation).
|Advisor:||Diwan, Amer S.|
|Commitee:||Anderson, Kenneth M., Chang, Bor-Yuh E., Martin, James H., Siek, Jeremy|
|School:||University of Colorado at Boulder|
|School Location:||United States -- Colorado|
|Source:||DAI-B 71/06, Dissertation Abstracts International|
|Keywords:||Algorithmic optimization, Program metamorphosis, Refactoring|
Copyright in each Dissertation and Thesis is retained by the author. All Rights Reserved
The supplemental file or files you are about to download were provided to ProQuest by the author as part of a
dissertation or thesis. The supplemental files are provided "AS IS" without warranty. ProQuest is not responsible for the
content, format or impact on the supplemental file(s) on our system. in some cases, the file type may be unknown or
may be a .exe file. We recommend caution as you open such files.
Copyright of the original materials contained in the supplemental file is retained by the author and your access to the
supplemental files is subject to the ProQuest Terms and Conditions of use.
Depending on the size of the file(s) you are downloading, the system may take some time to download them. Please be