Font Size: a A A

Program metamorphosis

Posted on:2011-09-04Degree:Ph.DType:Dissertation
University:University of Colorado at BoulderCandidate:Reichenbach, ChristophFull Text:PDF
GTID:1448390002467092Subject:Computer Science
Abstract/Summary:
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).
Keywords/Search Tags:Program, Behaviour, Source code, Guarantees
Related items