An Enhanced Equivalence Checking Method to Handle Bugs in Programs with Recurrences

Sudakshina Dutta, Dipankar Sarkar

2016

Abstract

Software designers often apply automatic or manual transformations on the array-handling source programs to improve performance of the target programs. Verdoolaege et al. (Verdoolaege et al., 2012) have proposed a method to automatically prove equivalence of the output arrays of the source and the generated transformed programs. Unlike the other approaches, the method of (Verdoolaege et al., 2012) provides the most sophisticated techniques to validate programs with non-uniform recurrences besides programs with uniform recurrences. However, if the recurrence expressions of the source and the transformed programs refer to more than one base cases of which some are non-equivalent and also if the domain of the output arrays partition based on dependences on different base cases, then some imprecision in the equivalence checking results is observed. The equivalence checker reports that the entire index spaces of the output arrays of the source program to be non-equivalent with that of the transformed program instead of the portion of the output arrays which depend on the non-equivalent base cases of the programs. In the current work, we have enhanced the method of equivalence checking of (Verdoolaege et al., 2012) so that it can precisely indicate the equivalent and non-equivalent portions of the output arrays.

References

  1. Cousot, P. and Cousot, R. (1992). Comparing the galois connection and widening/narrowing approaches to abstract interpretation. In Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming, PLILP 7892, pages 269-295, London, UK, UK. Springer-Verlag.
  2. Karfa, C., Banerjee, K., Sarkar, D., and Mandal, C. (2011). Equivalence checking of array-intensive programs. In VLSI (ISVLSI), 2011 IEEE Computer Society Annual Symposium on, pages 156-161.
  3. Shashidhar, K. C., Bruynooghe, M., Catthoor, F., and Janssens, G. (2005). Functional equivalence checking for verification of algebraic transformations on arrayintensive source code. In Design, Automation and Test in Europe, 2005. Proceedings, pages 1310-1315 Vol. 2.
  4. Verdoolaege, S., Janssens, G., and Bruynooghe, M. (2012). Equivalence checking of static affine programs using widening to handle recurrences. ACM Trans. Program. Lang. Syst., 34(3):11:1-11:35.
Download


Paper Citation


in Harvard Style

Dutta S. and Sarkar D. (2016). An Enhanced Equivalence Checking Method to Handle Bugs in Programs with Recurrences . In Proceedings of the 11th International Conference on Evaluation of Novel Software Approaches to Software Engineering - Volume 1: ENASE, ISBN 978-989-758-189-2, pages 254-259. DOI: 10.5220/0005914802540259


in Bibtex Style

@conference{enase16,
author={Sudakshina Dutta and Dipankar Sarkar},
title={An Enhanced Equivalence Checking Method to Handle Bugs in Programs with Recurrences},
booktitle={Proceedings of the 11th International Conference on Evaluation of Novel Software Approaches to Software Engineering - Volume 1: ENASE,},
year={2016},
pages={254-259},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0005914802540259},
isbn={978-989-758-189-2},
}


in EndNote Style

TY - CONF
JO - Proceedings of the 11th International Conference on Evaluation of Novel Software Approaches to Software Engineering - Volume 1: ENASE,
TI - An Enhanced Equivalence Checking Method to Handle Bugs in Programs with Recurrences
SN - 978-989-758-189-2
AU - Dutta S.
AU - Sarkar D.
PY - 2016
SP - 254
EP - 259
DO - 10.5220/0005914802540259