Program Slicing using Abstract Interpretation

요약 해석을 이용한 프로그램 슬라이싱

  • Jeong, In-Sang (School of Information and Computer Engineering Hansung University) ;
  • Chang, Byeong-Mo (Dept.of Information Science, Sookmyung Women's University)
  • 정인상 (한성대학교 정보전산학부) ;
  • 창병모 (숙명여자대학교 정보과학부)
  • Published : 2001.08.01

Abstract

정적 슬라이싱과 동적 슬라이싱의 차이는 동적 슬라이싱은 프로그램에 주어진 입력을 가정하는 반면에 정정 슬라이싱은 입력에 대한 가정을 하지 않는다는 점이다. 동적 슬라이싱은 실행-시간 정보를 이용할 수 있으므로 정적 슬라이싱보다 적은 슬라이스를 만들 수 있으나 특정 입력 상태에만 적용될 수 있다는 제한을 갖는다. 이 논문은 초기 상태들의 집합에 대해서 프로그래을 슬라이싱하는 요약 프로그램 슬라이싱이라는 새로운 기법을 제시한다. 이 방법은 프로그램으로부터 슬라이스를 구하는데 요약 해석을 이용한다. 요약 해석을 프로그램 실행 없이 프로그램의 실행-시간 동작에 대한 안전한 정보를 제공한다. 따라서 결과적으로 얻은 요약 슬라이스는 주어진 입력 상태들의 집합에 대해서 정적으로 계산되었다는 점에서 동적 슬라이스와는 다르다. 또한 요약 프로그램 슬라이싱은 배열과 같은 자료구조를 정적 슬라이싱보다 정확하게 다룰 수 있으며 슬라이스 크기도 줄일 수 있다.

Keywords

References

  1. Hiralal Agrawal and Joseph R. Horgan, 'Dynamic program slicing'. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pp. 246-256, June 1990 https://doi.org/10.1145/93542.93576
  2. J. Bieman and B. K. Kang, 'Measuring design-level cohesion,' IEEE Trans, on Software Engineering, vol. 24, no. 2, 1998, pp.111-124 https://doi.org/10.1109/32.666825
  3. Patrick Cousot and Radhia Cousot, 'Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints.' In Proceedings of the 4th ACM Symposium on Principles of Programming Languages, pp. 238-252, Los Angeles, California, January, 1977 https://doi.org/10.1145/512950.512973
  4. P. Cousot and R. Cousot, 'Systematic design of program analysis frameworks,' in Proc. of 4th ACM Symp. on Principle of Programming Languages, pp.269-282, ACM Press, 1979 https://doi.org/10.1145/567752.567778
  5. R. Gupta, M. J. Harrold, and M. L. Soffa, 'An approach to regression testing using slicing,' in Proc. of Conf. on Software Maintenance, Orlando, Florida, U. S. A., IEEE CS Press, 1992, pp.299-308
  6. S. Horwitz, T. Reps and D. Binkley, 'Interprocedural slicing using dependence graphs,' ACM Transactions on Programming Languages and systems, 12(1), pp.35-46, January, 1990 https://doi.org/10.1145/77606.77608
  7. M. Kamkar, 'Interprocedural dynamic slicing with applications to debugging and testing,' Ph.D Thesis, Linkoping University, 1993
  8. H. S. Kim, Y. R. Kwon, and I. S. Chung, 'Restructuring programs through program slicing,' International Journal of Software Engineering and Knowledge Engineering. vol. 4, no. 3, pp.349-368, 1994 https://doi.org/10.1142/S0218194094000179
  9. B. Korel and J. Laski, 'Dynamic program slicing,' Information Processing Letters, Vol. 29, pp. 155-163, 1988 https://doi.org/10.1016/0020-0190(88)90054-3
  10. F. Lanubile and G. Visaggio, 'Extracting reusable functions by flow-graph based program, slicing,' IEEE Trans, on Software Engineering, vol. 23, no. 4, pp.246-259, April 1997 https://doi.org/10.1109/32.588543
  11. A. De Lucia, A. R. Fasolino, and M. Munro, 'Understanding function behaviors through program slicing,' in Proc of 4th Workshop on Program Comprehension, Berlin, Germany, IEEE CS Press, 1996, pp.9-18 https://doi.org/10.1109/WPC.1996.501116
  12. F. Tip, 'A survey of program slicing techniques,' Journal of Programming Languages, vol. 3, 1995, pp.121-189
  13. M. Weiser, 'Programmers Use Slices When Debugging,' CACM 25(7), pp.446-452, July, 1982 https://doi.org/10.1145/358557.358577
  14. M. Weiser, 'Program slicing,' IEEE Trans, on Software Engineering, vol. 10, no. 4, pp.352-357, July 1984
  15. G. A. Venkatesh, 'The semantic approach to program slicing,' In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and implementation, pp. 107-119, June, 1991 https://doi.org/10.1145/113445.113455