Skip to main content

Static Dependency Analysis for Concurrent Ada 95 Programs

  • Conference paper
  • First Online:
Reliable Software Technologies — Ada-Europe 2002 (Ada-Europe 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2361))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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

    Google Scholar 

  2. Chen, Z., Xu, B.: Slicing Concurrent Java Programs. ACM SIGPLAN Notices, 2001, 36(4):41–47.

    Article  Google Scholar 

  3. Chen, Z., Xu, B., Yang, H.: Slicing Tagged Objects in Ada 95. in: Proceedings of AdaEurope 2001, LNCS, SpringerVerlag, 2001, 2043: 100–112.

    Google Scholar 

  4. Chen, Z., Xu, B., Yang, H.: Detecting Dead Statements for Concurrent Programs, in: Proceedings of SCAM 2001, IEEE CS Press. 65–72

    Google Scholar 

  5. 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

    Chapter  Google Scholar 

  6. Cheng, J.: Task Dependence Nets for Concurrent Systems with Ada 95 and Its Applications, ACM TRI-Ada International Conference, (1997) 67–78

    Google Scholar 

  7. Dillon, L.K.: Task Dependence and Termination in Ada. ACM Transactions on Software Engineering and Methodology, 1997, 6(1): 80–110

    Article  MathSciNet  Google Scholar 

  8. 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

    Article  MATH  MathSciNet  Google Scholar 

  9. Goswami, D., Mall, R., Chatterjee P.: Static Slicing in Unix Process Environment. Software-Practice and Experience, 2000, 30(1): 17–36

    Article  Google Scholar 

  10. Harrold, M.J., et al: Efficient Construction of Program Dependence Graphs. ACM International Symposium on Software Testing and Analysis, (1993) 160–170

    Google Scholar 

  11. Horwitz S., Reps T., Binkley D.: Inter-procedural Slicing using Dependence Graphs. ACM Transactions on Programming Languages and Systems, 1990, 12(1): 26–60

    Article  Google Scholar 

  12. ISO/IEC 8652:1995(E): Ada Reference Manual-Language and Standard Libraries.

    Google Scholar 

  13. Kamkar, M., Krajina, P.: Dynamic Slicing of Distributed Programs. International Conference on Software Maintenance, Nice, France, (1995) 222–229

    Google Scholar 

  14. Korel, B., Ferguson, R.: Dynamic Slicing of Distributed Programs. Applied Mathematics and Computer Science Journal, 1992, 2(2): 199–215

    MATH  Google Scholar 

  15. Krinke, I: Static Slicing of Threaded Programs. ACM SIGPLAN Notices, 1998, 33(7): 35–42

    Article  Google Scholar 

  16. 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

    Google Scholar 

  17. 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

    Article  Google Scholar 

  18. Xu, B.: Reverse Program Flow Dependency Analysis and Applications. Chinese Journal of Computers, 1993, 16(5): 385–392

    Google Scholar 

  19. Xu, B., Chen, Z., Zhou, X.: Slicing Object-Oriented Ada95 Programs Based on Dependence Analysis. Journal of Software, 2001, 12(Suppl.): 208–213

    Google Scholar 

  20. Xu, B., Zhang, T., Chen, Z.: Dependence Analysis of Recursive Subprograms and Its Applications. Chinese Journal of Computers, 2001, 24(11): 1178–1184.

    MathSciNet  Google Scholar 

  21. 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

    Google Scholar 

  22. Zhao, J.: Slicing Concurrent Java Programs. 7th IEEE International Workshop on Program Comprehension, (1999) 126–133

    Google Scholar 

  23. Zhao, J.: Multithreaded Dependence Graphs for Concurrent Java Programs. International Symposium on Software Engineering for Parallel and Distributed Systems, (1999) 13–23

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Baowen Xu .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics