Abstract
Based on the comparison among existing slicing algorithms and analysis of the fact that Krinke’s algorithm [9] produces imprecise program slice for the program structure which has loops nested with one or more threads, a conclusion is drawn that the reason for the impreciseness is that Krinke’s data structure—threaded program dependence graph—had over coarse definitions of data dependence relations between threads, and the constraint put on the execution path in concurrent program is unduly loose. An improved threaded program dependence graph is proposed which adds a new dependence relation of loop-carried data dependence crossing thread boundaries. An improved slicing algorithm is also proposed which introduces a new concept of regioned execution witness to further constrain the execution path. The pseudo code of the algorithm adding loop-carried data dependence relations crossing thread boundaries is given. The pseudo code of the new slicing algorithm is also given whose complexity has been analyzed. Examples show that the improved slicing algorithm designed on the improved data structure can restrain the impreciseness of Krinke’s.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Binkley, D.W., Harman, M.: A survey of empirical results on program slicing [J]. Advances in Computers 62, 105–178 (2004)
Clarke, E.M., Fujita, M., Rajan, S.P., Reps, T., Shankar, S., Teitelbaum, T.: Program slicing for VHDL [A]. In: Pierre, L., Kropf, T. (eds.) CHARME 1999. LNCS, vol. 1703, pp. 298–313. Springer, Heidelberg (1999)
Millett, L., Teitelbaum, T.: Issues in slicing PROMELA and its applications to model checking, protocol understanding, and simulation. [J]. STTT 2(4), 343–349 (2000)
Horwitz, S., Prins, J., Reps, T.: On the adequacy of program dependence graphs for representing programs [A]. In: Proceedings of Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pp. 146–157 (1988)
Chen, Z., Xu, B., Zhao, J.: An overview of methods for dependence analysis of concurrent programs [J]. SIGPLAN Notices 37(8), 45–52 (2002)
Cheng, J.: Slicing Concurrent Programs - A Graph-Theoretical Approach [A]. In: Fritzson, P.A. (ed.) AADEBUG 1993. LNCS, vol. 749. Springer, Heidelberg (1993)
Zhao, J.: Slicing concurrent Java programs [A]. In: Proceedings of the 7th IEEE International Workshop on Program Comprehension, pp. 126–133 (1999)
Chen, Z., Xu, B., Yang, H., et al.: An Approach to Analyzing Dependency of Concurrent Programs [A]. In: Proceedings of the The First Asia-Pacific Conference on Quality Software, pp. 39–43 (2000)
Krinke, J.: Context-sensitive slicing of concurrent programs [A]. In: Proceedings ESEC/FSE, pp. 178–187 (2003)
Krinke, J.: Static slicing of threaded programs [A]. In: Proc. ACM SIGPLAN/SIGFSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 1998), pp. 35–42 (1998)
Muller-Olm, M., Seidl, H.: On optimal slicing of parallel programs [A]. In: 33th ACM Symposium on Theory of Computing, pp. 647–656 (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Xiao, J., Zhang, D., Chen, H., Dong, H. (2005). Improved Program Dependence Graph and Algorithm for Static Slicing Concurrent Programs. In: Cao, J., Nejdl, W., Xu, M. (eds) Advanced Parallel Processing Technologies. APPT 2005. Lecture Notes in Computer Science, vol 3756. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11573937_15
Download citation
DOI: https://doi.org/10.1007/11573937_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29639-3
Online ISBN: 978-3-540-32107-1
eBook Packages: Computer ScienceComputer Science (R0)