DOI QR코드

DOI QR Code

Program Slicing in the Presence of Complicated Data Structure

복잡한 자료 구조를 지니는 프로그램 슬라이싱

  • 류호연 (경상대학교 컴퓨터과학과) ;
  • 박중양 (경상대학교 통계정보학과) ;
  • 박재흥 (경상대학교 컴퓨터과학과)
  • Published : 2003.10.01

Abstract

Program slicing is s method to extract the statements from the program which have an influence on the value of a variable at a paricular point of the program. Program slicing is applied for many applications, such as program degugging, program testing, program integration, parallel program execution, software metrics, reverse engineering, and software maintenance, etc. This paper is the study to create the exact slice in the presence of Object Reference State Graph to generate more exactly static analysis information of objects in the program of the presence of complicated data structure.

프로그램 슬라이싱은 프로그램의 특정 지점에 나타난 변수의 값에 영향을 미치는 문장들을 프로그램으로부터 추출하는 방법이다. 프로그램 슬라이싱은 프로그램 디버깅, 프로그램 테스팅, 프로그램 통합, 병렬 프로그램 실행, 소프트웨어 메트릭스, 역공학, 유지보수 등 여러 응용 분야에 적용할 수 있다. 본 논문에서는 포인터 변수, 포인터 변수가 참조하는 객체, 배열, 구조체가 같은 복잡한 자료구조가 나타나는 프로그램에서 정확한 슬라이스를 추가하기 위한 알고리즘을 제안한다. 복잡한 자료구조가 나타나는 프로그램 상에서 객체의 보다 더 정확한 정적 분석 정보를 생성하기 위해 객체 참조상태 그래프를 제안하고, 그 효율성을 보였다.

Keywords

References

  1. Mark Weiser, 'Program Slicing,' IEEE Trans. Software Eng., Vol.SE-10, No.4, pp.352-357, July, 1984 https://doi.org/10.1109/TSE.1984.5010248
  2. Jingyue Jiang, Xiling Zhou, David Robson, 'Program Slicing For C-The Problems in Implementation,' Proc. IEEE International Conf. Software Maintenance, pp.182-190, 1991 https://doi.org/10.1109/ICSM.1991.160328
  3. J. R. Lyle and D. W. Binkley, 'Application of the Pointer State Subgraph to Static Program Slicing,' to appear in the Journal of Systems and Software during the fourth quarter of 1997 or the first quarter of 1998 https://doi.org/10.1016/S0164-1212(97)00016-2
  4. Pandos E. Livadas, Adam Rosenstein, 'Slicing in the Presence of Pointer Variables,' Ghinsu Project Technical report, 1995
  5. D. Chase, M. Wegman and F. Zadeck, 'Analysis of Pointers and Structures,' Preceedings of the ACM SIGPLAN'90 Conference on Programming Language Design and Implementation, White Plains, New York pp.296-309, June, 1990 https://doi.org/10.1145/93542.93585
  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. K. B. Callagher and J. R. Lyle, 'Using program slicing in software maintence,' IEEE Transactions on Software Engineering, 17(8), pp.751-761, August, 1991 https://doi.org/10.1109/32.83912
  8. S. Horwitz, P. Pfeiffer and T. Reps, 'Dependence analysis for pointer variables,' Proceedings of the ACM SIGPLAN 89 Conference on Programming Language Design and Implementation, (Portland, OR, June, 1989), ACM SIGPLAN Notices 24(7), pp.28-40, July, 1989 https://doi.org/10.1145/74818.74821
  9. B. Korel and J. Laski, 'Dynamic Program Slicing,' Information processing letters, Vol.29, No.3, Oct., 1988
  10. Agrawal, H., Demilio, R. and Spafford, E., 'Dynamic slicing in the presence of unconstrained pointers,' In Proceedings of the ACM Proth Symposium on Testing, Analysis and Verification, pp.60-73, 1991 https://doi.org/10.1145/120807.120813
  11. W. E Weihl, 'Interprocedural Data Flow Analysis in the Presence of Pointers, procedure Variables and Label Variables,' In Conference record of the Seventh Annual ACM Symposium on Principles of Programming Languages, pp.83-94, january, 1980 https://doi.org/10.1145/567446.567455
  12. W. Landi and B. Ryder, 'Safe Approximate Algorithm for Interprocedural Pointer Aliasing,' Proceedings of the ACM SlGPLAN '92 Conference on Programming Language Design and Implementation, pp.235-248, June, 1992 https://doi.org/10.1145/143095.143137
  13. M. Weiser, 'Programmers Use Slices When Debugging,' CACM 25(7), pp.446-452, July, 1982 https://doi.org/10.1145/358557.358577
  14. James R. Lyle, David Binkley, 'Program Slicing in the Presence of Pointers,' Preceedings of the 3RD Annual Software Engineering Research Forum, November, 1993