Skip to main content
Log in

An attribute grammar approach to compiler optimization of intra-module interprocess communication

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

Earlier work has shown the effectiveness of hand-applied program transformations optimizing high-level interprocess communication mechanisms. This paper describes the static analysis techniques necessary to ensure correct compiler application of the optimizing transformations. These techniques include both dataflow analysis and interprocess analysis. This paper focuses on the analysis of communication mechanisms within program modules; however, the analysis techniques can be generalized to handle inter-module optimization analysis as well. The major contributions of this paper include the application of dataflow analysis and the extension of interprocedural analysis—interprocess analysis—to real concurrent programming languages and, more specifically, to the optimization of interprocess communication and synchronization mechanisms that use both static and dynamic channels. In addition, the use of attribute grammars to perform interprocess analysis is significant. This paper also describes an implementation of both intra-process dataflow and interprocess analysis techniques using attribute grammars.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. American National Standards Institute,Ref. Manual for the Ada Prog. Lang., ANSI/MILSTD-1815A (1983).

  2. N. Gehani and W. D. Roome,The Concurrent C Programming Language, Silicon Press, New Jersey (1989).

    Google Scholar 

  3. B. Liskov and R. Scheifler, Guardians and Actions: Linguistic Support for Robust, Distributed Programs,ACM Trans. on Prog. Lang. and Syst. 5(3):381–404 (July 1983).

    Google Scholar 

  4. P. Brinch Hansen, Distributed Processes: A Concurrent Programming Concept,Comm. of the ACM,21(11):934–941 (November 1978).

    Google Scholar 

  5. A. Burns,Programming in occam, Addison-Wesley (1988).

  6. G. R. Andrews, R. A. Olsson, M. Coffin, I. Elshoff, K. Nilsen, T. Purdin, and G. Townsend, An Overview of the SR Language and Implementation,ACM Trans. on Prog. Lang. and Syst.,10(1):51–86 (January 1988).

    Google Scholar 

  7. C. M. McNamee and R. A. Olsson, Transformations for Optimizing Interprocess Communication and Synchronization Mechanisms,IJPP,19:357–387 (October 1990).

    Google Scholar 

  8. H. Alblas, Iteration of Transformation Passes over Attributed Trees,Acta Informatica,27:1–40 (1989).

    Google Scholar 

  9. W. A. Babich and M. Jazayeri, The Method of Attributes for Data Flow Analysis, Part I. Exhaustive Analysis,Acta Informatica,10:245–264 (1978).

    Google Scholar 

  10. W. A. Babich and M. Jazayeri, The Method of Attributes for Data Flow Analysis, Part II. Demand Analysis,Acta Informatica,10:265–272 (1978).

    Google Scholar 

  11. J. H. Reif and S. A. Smolka, The Complexity of Reachability in Distributed Communicating Processes,Acta Informatica,25(9):333–354 (1988).

    Google Scholar 

  12. G. R. Andrews and R. A. Olsson, Report on the SR Programming Language, Version 1.1. Technical Report CSE-89-11, University of California, Davis Division of Computer Science (May 1989).

    Google Scholar 

  13. C. E. McDowell, A Practical Algorithm for Static Analysis of Parallel Programs,J. of Parallel and Distrib. Computing,6(3):515–536 (June 1989).

    Google Scholar 

  14. P. Cousot and R. Cousot, Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of FixpointsFourth ACM Symp. on the Principles of Prog. Lang., pp. 238–252 (January 1977).

  15. C. M. McNamee, Compiler Optimization of Interprocess Communication and Synchronization Mechanisms, Technical Report CSE-91-19, University of California, Davis PhD Dissertation (June 1991).

    Google Scholar 

  16. R. A. Olsson and C. M. McNamee, An Overview of Compiler Optimization of Interprocess Communication and Synchronization Mechanisms,Proc. of the Int. Conf. on Parallel Proc., Vol. II, pp. 31–35 (August 1991).

    Google Scholar 

  17. M. S. Atkins and R. A. Olsson, Performance of Multitasking and Synchronization Mechanisms in the Programming Language SR,SOFTWARE—Practice and Experience,18(9):879–895 (September 1988).

    Google Scholar 

  18. A. V. Aho, R. Sethi, and J. D. Ullman,Compilers Principles, Techniques, and Tools, Addison-Wesley, Reading, Massachusetts (1986).

    Google Scholar 

  19. M. Weiser, Program Slicing,IEEE Trans. on Software Engineering,SE-10(4):352–357 (July 1984).

    Google Scholar 

  20. R. M. Clapp, L. Duchesneau, R. A. Volz, T. N. Mudge, and T. Schultze, Toward Realtime Performance Benchmarks for Ada,Comm. of the ACM,29(8):760–781 (1986).

    Google Scholar 

  21. M. J. Quinn, P. J. Hatcher, and K. C. Jourdenais, Compiling C* Programs for a Hypercube Multicomputer,Proc. of the ACM/SIGPLAN PPEALS,23:57–65 (September 1988).

    Google Scholar 

  22. F. E. Allen, Interprocedural Data Flow Analysis,Infor. Proc.,74:398–402 (1974).

    Google Scholar 

  23. J. P. Banning, An Efficient Way to Find the Side Effects of Procedure Calls and the Aliases of Variables,Sixth Ann. ACM Symp. on the Principles of Prog. Lang., pp. 29–41 (January 1979).

  24. E. W. Myers, A Precise Inter-procedural Data Flow Algorithm,ACM Symp. on Principles of Prog. Lang., pp. 219–230 (1981).

  25. L. E. Moser, Data Dependency Graphs for Ada Programs,IEEE Trans. on Software Engineering,16(5):498–509 (May 1990).

    Google Scholar 

  26. R. Janicki, P. E. Lauer, M. Koutny, and R. Devillers, Concurrent and Maximally Concurrent Evolution of Nonsequential Systems,Theoret. Comput. Sci.,43:213–238 (1986).

    Google Scholar 

  27. H. Partsch and R. Steinbruggen, Program Transformation Systems,ACM Computing Surveys,15(3):199–236 (September 1983).

    Google Scholar 

  28. K. Pingali and Arvind, Efficient Demand-driven Evaluation, Part 1,ACM Trans. on Prog. Lang. and Syst.,7(2):311–333 (April 1985).

    Google Scholar 

  29. K. Pingali and Arvind, Efficient Demand-driven Evaluation, Part 2,ACM Trans. on Prog. Lang. and Syst. 8(1):109–139 (January 1986).

    Google Scholar 

  30. K. Pingali, M. Beck, R. Johnson, M. Moudgill, and P. Stodghill, Dependence Flow Graphs: An Algebraic Approach to Program Dependencies,Proc. of the 18th ACM Symp. on Principles of Prog. Lang., pp. 67–78 (January 1991).

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was supported by NSF under Grant Number CCR88-10617.

Rights and permissions

Reprints and permissions

About this article

Cite this article

McNamee, C.M., Olsson, R.A. An attribute grammar approach to compiler optimization of intra-module interprocess communication. Int J Parallel Prog 20, 181–202 (1991). https://doi.org/10.1007/BF01379317

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01379317

Key Words

Navigation