Abstract
Side-effects are widely believed to impede program comprehension and have a detrimental effect upon software maintenance. This paper introduces an algorithm for side-effect removal which splits the side-effects into their pure expression meaning and their state-changing meaning. Symbolic execution is used to determine the expression meaning, while transformation is used to place the state-changing part in a suitable location in a transformed version of the program. This creates a program which is semantically equivalent to the original but guaranteed to be free from side-effects. The paper also reports the results of an empirical study which demonstrates that the application of the algorithm causes a significant improvement in program comprehension.
Original language | English |
---|---|
Title of host publication | IEEE International Conference on Software Maintenance |
Subtitle of host publication | proceedings : October 3-6, 2002, Montreal, Quebec, Canada |
Place of Publication | Los Alamitos, California, USA |
Publisher | IEEE Computer Society Press |
Pages | 2-11 |
Number of pages | 10 |
Volume | N/A |
Edition | N/A |
ISBN (Print) | 0769518192 |
DOIs | |
Publication status | Published - 2002 |