Skip to main content

Automatic generation of parallelizing compilers for object-oriented programming languages from denotational semantics specifications

  • Invited Papers
  • Conference paper
  • First Online:
SOFSEM'97: Theory and Practice of Informatics (SOFSEM 1997)

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

  • 140 Accesses

Abstract

The denotational semantics of object-oriented programming languages (OOPL's) are used to derive the control and data dependencies that exist within programs and this information is then used to produce parallel object code by a compiler. This approach is especially suited for OOPL's because of the concurrency inherent in their semantics. A denotational semantics of an OOPL called SmallC++ is developed with some specialized operations that facilitate the automatic generation of a parallelizing compiler for SmaHC++. The result is a compiler which generates code for shared or distributed memory multi-processors, thereby achieving a language implementation which realizes fully transparent parallel object-oriented programming.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aho, A.V., Sethi, R., Ullman, J.D., Compilers Principles, Techniques, and Tools, Addison-Wesley, Reading, MA, 1986.

    Google Scholar 

  2. Bik, A. J. C., Gannon, D. B., “Automatically Exploiting Implicit Parallelism in Java,” in Concurrency: Practice and Experience, vol. 9, no. 6, 1997, pp. 579–619.

    Google Scholar 

  3. Gelernter, D., “Generative Communication in Linda,” in ACM Transactions On Programming Languages and Systems, vol. 7, no. 1, Jan. 1985, pp. 81–112.

    Google Scholar 

  4. Genjiang, Z., Li, X., Zhongxiu, S., “A Path-Based Method of Parallelizing C++ Programs,” in SIGPLAN Notices, vol. 29. no. 2, Feb 1994, pp. 19–24.

    Google Scholar 

  5. Goldberg, A.J., Robson, A.D., Smalltalk-80: The Language and its Implementation, Addison-Wesley, Reading, MA, 1983.

    Google Scholar 

  6. Hindley, J., R., Seldind, J., P., Introduction to Combinators and λ-calculus, Cambridge University Press, 1986.

    Google Scholar 

  7. Hudak, P., Goldberg, B., “Distributed Execution of Functional Programs using Serial Combinators,” in IEEE Transactions on Computers, vol. C-34, no. 10, Oct. 1985, pp. 881–891.

    Google Scholar 

  8. Knox, D.L., Wright, C.T., “Combinators as Control Mechanisms in Multiprocessing Systems,” in Proceedings of the International Conference on Parallel Processing, 1987, pp. 158–161.

    Google Scholar 

  9. Lee. P., Realistic Compiler Generation, MIT Press, Cambridge, MA, 1989.

    Google Scholar 

  10. Milner, R., Tofte, M., and Harper, R., The Definition of Standard ML, MIT Press, Cambridge, MA, 1990.

    Google Scholar 

  11. Muthukrishnan, P.K, Bryant, B.R, “The Syntax and Semantics of SmallC++,” Technical Report, Department of Computer and Information Sciences, University of Alabama at Birmingham, 1995.

    Google Scholar 

  12. Patterson, L., Fault Tolerant Tuple Space, Ph.D. thesis, Department of Computer and Information Sciences, University of Alabama at Birmingham, Birmingham, AL, 1992.

    Google Scholar 

  13. Peyton Jones, S., The Implementation of Functional Programming Languages, Prentice Hall, Englewood Cliffs, NJ, 1987.

    Google Scholar 

  14. Schmidt, D.A., Denotational Semantics A Methodology for Language Development, Allyn and Bacon, Inc., Boston, MA, 1986.

    Google Scholar 

  15. Stroustrup, B., The C++ Programming Language, Addison-Wesley, Reading, MA, 1986.

    Google Scholar 

  16. Tokoro, M., Nierstrasz, O., Wegner, P., eds., Object-Based Concurrent Computing, Proceedings of ECOOP '91 Workshop, Springer-Verlag, 1991.

    Google Scholar 

  17. Tomlinson, C., Scheeval, M., “Concurrent Object-Oriented Programming Languages,” in Object-Oriented Concepts, Databases, and Applications, ACM Press/Addison-Wesley, Reading, MA, 1989, pp. 79–124.

    Google Scholar 

  18. Wegner, P., “The Object-Oriented Classification,” in Research Directions in Object-Oriented Programming, MIT Press, Cambridge, MA, 1987, pp. 479–560.

    Google Scholar 

  19. Yin, M., Bic, L., Ungerer, T., “ Parallel C++ Programming on the Intel iPSC/2 Hypercube,” in Proceedings of the 4th Annual Parallel Processing Symposium, 1990, pp. 380–394.

    Google Scholar 

  20. Yonezawa, A., Tokoro, M., eds., Object-Oriented Concurrent Programming, MIT Press, Cambridge, MA, 1987.

    Google Scholar 

  21. Zima, H., Chapman, B., Supercompilers for Parallel and Vector Computers, ACM Press/Addison-Wesley, Reading, MA, 1990.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

František Plášil Keith G. Jeffery

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Muthukrishnan, P.K., Bryant, B.R. (1997). Automatic generation of parallelizing compilers for object-oriented programming languages from denotational semantics specifications. In: Plášil, F., Jeffery, K.G. (eds) SOFSEM'97: Theory and Practice of Informatics. SOFSEM 1997. Lecture Notes in Computer Science, vol 1338. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63774-5_107

Download citation

  • DOI: https://doi.org/10.1007/3-540-63774-5_107

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63774-5

  • Online ISBN: 978-3-540-69645-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics