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

  • Prakash K. Muthukrishnan
  • Barrett R. Bryant
Invited Papers Distributed and Parallel Computing
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1338)


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.


Abstract Syntax Semantic Function Static Semantic Denotational Semantic Semantic Domain 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aho, A.V., Sethi, R., Ullman, J.D., Compilers Principles, Techniques, and Tools, Addison-Wesley, Reading, MA, 1986.Google Scholar
  2. 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. 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. 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. 5.
    Goldberg, A.J., Robson, A.D., Smalltalk-80: The Language and its Implementation, Addison-Wesley, Reading, MA, 1983.Google Scholar
  6. 6.
    Hindley, J., R., Seldind, J., P., Introduction to Combinators and λ-calculus, Cambridge University Press, 1986.Google Scholar
  7. 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. 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. 9.
    Lee. P., Realistic Compiler Generation, MIT Press, Cambridge, MA, 1989.Google Scholar
  10. 10.
    Milner, R., Tofte, M., and Harper, R., The Definition of Standard ML, MIT Press, Cambridge, MA, 1990.Google Scholar
  11. 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. 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. 13.
    Peyton Jones, S., The Implementation of Functional Programming Languages, Prentice Hall, Englewood Cliffs, NJ, 1987.Google Scholar
  14. 14.
    Schmidt, D.A., Denotational Semantics A Methodology for Language Development, Allyn and Bacon, Inc., Boston, MA, 1986.Google Scholar
  15. 15.
    Stroustrup, B., The C++ Programming Language, Addison-Wesley, Reading, MA, 1986.Google Scholar
  16. 16.
    Tokoro, M., Nierstrasz, O., Wegner, P., eds., Object-Based Concurrent Computing, Proceedings of ECOOP '91 Workshop, Springer-Verlag, 1991.Google Scholar
  17. 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. 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. 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. 20.
    Yonezawa, A., Tokoro, M., eds., Object-Oriented Concurrent Programming, MIT Press, Cambridge, MA, 1987.Google Scholar
  21. 21.
    Zima, H., Chapman, B., Supercompilers for Parallel and Vector Computers, ACM Press/Addison-Wesley, Reading, MA, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Prakash K. Muthukrishnan
    • 1
  • Barrett R. Bryant
    • 1
  1. 1.Department of Computer and Information SciencesBirminghamUSA

Personalised recommendations