Abstract
Program dependency analysis is an analysis technique to identify and determine various program dependencies in program source codes. It is an important approach for testing, understanding, maintaining and transforming programs. But, there are still many difficulties to be solved when carrying out dependency analysis for concurrent programs because the execution of statements is nondeterministic. In this paper, we propose a novel approach to analyze dependencies for concurrent Ada 95 programs. Two graphs: concurrent program flow graph and concurrent program dependency graph are developed to represent concurrent Ada programs and analyze dependency relations. The paper also presents a dependency analysis algorithm, which can obtain more precise information than most previous methods we know.
This work was supported in part by the National Natural Science Foundation of China (NSFC) (60073012), National Science Foundation of Jiangsu, China (BK2001004), Opening Foundation of State Key Laboratory of Software Engineering in Wuhan University, Foundation of State Key Laboratory for Novel Software Technology in Nanjing University, Visiting Scholar Foundation of Key Lab. in University, SEU-NARI Foundation.
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
Blieberger, J., Burgstaller, B., Scholz, B.: Symbolic Data Flow Analysis for Detecting Deadlocks in Ada Tasking Programs, in: Proceedings of Ada-Europe’2000, Potsdam, Germany, 2000, 225–237
Chen, Z., Xu, B.: Slicing Concurrent Java Programs. ACM SIGPLAN Notices, 2001, 36(4):41–47.
Chen, Z., Xu, B., Yang, H.: Slicing Tagged Objects in Ada 95. in: Proceedings of AdaEurope 2001, LNCS, SpringerVerlag, 2001, 2043: 100–112.
Chen, Z., Xu, B., Yang, H.: Detecting Dead Statements for Concurrent Programs, in: Proceedings of SCAM 2001, IEEE CS Press. 65–72
Cheng, J.: Dependency Analysis of Parallel and Distributed Programs and Its Applications. International Conference on Advances in Parallel and Distributed Computing, IEEE CS Press, Shanghai, (1997) 370–377
Cheng, J.: Task Dependence Nets for Concurrent Systems with Ada 95 and Its Applications, ACM TRI-Ada International Conference, (1997) 67–78
Dillon, L.K.: Task Dependence and Termination in Ada. ACM Transactions on Software Engineering and Methodology, 1997, 6(1): 80–110
Ferrante, J., et al: The Program Dependence Graph and Its Use in Optimization. ACM Transactions on Programming Languages and Systems, 1987, 9(3): 319–349
Goswami, D., Mall, R., Chatterjee P.: Static Slicing in Unix Process Environment. Software-Practice and Experience, 2000, 30(1): 17–36
Harrold, M.J., et al: Efficient Construction of Program Dependence Graphs. ACM International Symposium on Software Testing and Analysis, (1993) 160–170
Horwitz S., Reps T., Binkley D.: Inter-procedural Slicing using Dependence Graphs. ACM Transactions on Programming Languages and Systems, 1990, 12(1): 26–60
ISO/IEC 8652:1995(E): Ada Reference Manual-Language and Standard Libraries.
Kamkar, M., Krajina, P.: Dynamic Slicing of Distributed Programs. International Conference on Software Maintenance, Nice, France, (1995) 222–229
Korel, B., Ferguson, R.: Dynamic Slicing of Distributed Programs. Applied Mathematics and Computer Science Journal, 1992, 2(2): 199–215
Krinke, I: Static Slicing of Threaded Programs. ACM SIGPLAN Notices, 1998, 33(7): 35–42
Naumovich, G., Avrunin, G.S.: A Conservative Data Flow Algorithm for Detecting all Pairs of Statements That May Happen in Parallel. Proceedings of the 6th International Symposium on the Foundations of Software Engineering, (1998) 24–34
Podgurski, A., Clarke, L.A.: Formal Model of Program Dependencies and its Implications for Software Testing, Debugging and Maintenance. IEEE Transactions on software Engineering, 1990, 16(9): 965–979
Xu, B.: Reverse Program Flow Dependency Analysis and Applications. Chinese Journal of Computers, 1993, 16(5): 385–392
Xu, B., Chen, Z., Zhou, X.: Slicing Object-Oriented Ada95 Programs Based on Dependence Analysis. Journal of Software, 2001, 12(Suppl.): 208–213
Xu, B., Zhang, T., Chen, Z.: Dependence Analysis of Recursive Subprograms and Its Applications. Chinese Journal of Computers, 2001, 24(11): 1178–1184.
Yang, H., Xu, B.: Design and Implementation of A PSS/ADA Program Slicing System. Chinese J. Computer Research and Development, 1997, 34(3): 217–222
Zhao, J.: Slicing Concurrent Java Programs. 7th IEEE International Workshop on Program Comprehension, (1999) 126–133
Zhao, J.: Multithreaded Dependence Graphs for Concurrent Java Programs. International Symposium on Software Engineering for Parallel and Distributed Systems, (1999) 13–23
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chen, Z., Xu, B., Zhao, J., Yang, H. (2002). Static Dependency Analysis for Concurrent Ada 95 Programs. In: Blieberger, J., Strohmeier, A. (eds) Reliable Software Technologies — Ada-Europe 2002. Ada-Europe 2002. Lecture Notes in Computer Science, vol 2361. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48046-3_17
Download citation
DOI: https://doi.org/10.1007/3-540-48046-3_17
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43784-0
Online ISBN: 978-3-540-48046-4
eBook Packages: Springer Book Archive