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.
Preview
Unable to display preview. Download preview PDF.
References
Aho, A.V., Sethi, R., Ullman, J.D., Compilers Principles, Techniques, and Tools, Addison-Wesley, Reading, MA, 1986.
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.
Gelernter, D., “Generative Communication in Linda,” in ACM Transactions On Programming Languages and Systems, vol. 7, no. 1, Jan. 1985, pp. 81–112.
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.
Goldberg, A.J., Robson, A.D., Smalltalk-80: The Language and its Implementation, Addison-Wesley, Reading, MA, 1983.
Hindley, J., R., Seldind, J., P., Introduction to Combinators and λ-calculus, Cambridge University Press, 1986.
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.
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.
Lee. P., Realistic Compiler Generation, MIT Press, Cambridge, MA, 1989.
Milner, R., Tofte, M., and Harper, R., The Definition of Standard ML, MIT Press, Cambridge, MA, 1990.
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.
Patterson, L., Fault Tolerant Tuple Space, Ph.D. thesis, Department of Computer and Information Sciences, University of Alabama at Birmingham, Birmingham, AL, 1992.
Peyton Jones, S., The Implementation of Functional Programming Languages, Prentice Hall, Englewood Cliffs, NJ, 1987.
Schmidt, D.A., Denotational Semantics A Methodology for Language Development, Allyn and Bacon, Inc., Boston, MA, 1986.
Stroustrup, B., The C++ Programming Language, Addison-Wesley, Reading, MA, 1986.
Tokoro, M., Nierstrasz, O., Wegner, P., eds., Object-Based Concurrent Computing, Proceedings of ECOOP '91 Workshop, Springer-Verlag, 1991.
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.
Wegner, P., “The Object-Oriented Classification,” in Research Directions in Object-Oriented Programming, MIT Press, Cambridge, MA, 1987, pp. 479–560.
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.
Yonezawa, A., Tokoro, M., eds., Object-Oriented Concurrent Programming, MIT Press, Cambridge, MA, 1987.
Zima, H., Chapman, B., Supercompilers for Parallel and Vector Computers, ACM Press/Addison-Wesley, Reading, MA, 1990.
Author information
Authors and Affiliations
Editor information
Rights 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