skip to main content
10.1145/1108792.1108799acmconferencesArticle/Chapter ViewAbstractPublication PagespasteConference Proceedingsconference-collections
Article

Link-time static analysis for efficient separate compilation of object-oriented languages

Published:05 September 2005Publication History

ABSTRACT

Compilers used in industry are mainly based on a separate compilation framework. However, the knowledge of the whole program improves efficiency of object-oriented language compilers, therefore more efficient implementation techniques are based on a global compilation framework.In this paper, we propose a compromise by including three global compilation techniques (type analysis, coloring and binary tree dispatching) in a separate compilation framework. Files are independently compiled into standard binary files with unresolved symbols. The program is build by linking object files: files are gathered and analyzed, some link code is generated then symbols are resolved.

References

  1. Agesen, O. Concrete Type Inference: Delivering Object-Oriented Applications. PhD thesis, Stanford University, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bacon, D. F., Wegman, M., and Zadeck, K. Rapid type analysis for C++. Tech. rep., IBM Thomas J. Watson Research Center, 1996.Google ScholarGoogle Scholar
  3. Boucher, D. Analyse et Optimisations Globales de Modules Compilés Séparément. PhD thesis, Université de Montréal, 1999.Google ScholarGoogle Scholar
  4. Chambers, C., and Ungar, D. Customization: Optimizing compiler technology for SELF, a dynamically-typed object-oriented language. In Proc. OOPSLA'89 (New Orleans, 1989), ACM Press, pp. 146--160. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Cohen, N. Type-extension type tests can be performed in constant time. Programming languages and systems 13, 4 (1991), 626--629. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Dixon, R., McKee, T., Schweitzer, P., and Vaughan, M. A fast method dispatcher for compiled languages with multiple inheritance. In Proc. OOPSLA'89 (New Orleans, 1989), ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Driesen, K., and Hlzle, U. The direct cost of virtual function calls in c++. In Proc. OOPSLA'96 (1996), SIGPLAN Notices, 31(10), ACM Press, pp. 306--323. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Ducournau, R. Implementing statically typed object-oriented programming languages. Tech. Rep. 02--174, L.I.R.M.M., 2002.Google ScholarGoogle Scholar
  9. Fernandez, M. F. Simple and effective link-time optimization of Modula-3 programs. In SIGPLAN Conference on Programming Language Design and Implementation (1995), pp. 103--115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Gil, J., and Itai, A. The complexity of type analysis of object oriented programs. In Proc. ECOOP'98 (1998), E. Jul, Ed., LNCS 1445, Springer-Verlag, pp. 601--634. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Goldberg, A., and Robson, D. Smalltalk: the language and its implementation. Addison-Wesley, Reading, MA, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Gosling, J. The Java language specification. Addison-Wesley, Boston, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Grove, D., and Chambers,. C. A framework for call graph construction algorithms. ACM Trans. Program. Lang. Syst. 23, 6 (2001), 685--746. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Hölzle, U., Chambers, C., and Ungar, D. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In Proc. ECOOP'91 (1991), P. America, Ed., LNCS 512, Springer-Verlag, pp. 21--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Levine, J. R. Linkers and Loaders. Morgan-Kauffman, October 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Lippman, S. Inside the C++ Object Model. Addison-Wesley, New York (NY), USA, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Masini, G., Napoli, A., Colnet, D., Léonard, D., and Tombre, K. Object-Oriented Languages. Academic Press, London, 1991.Google ScholarGoogle Scholar
  18. Meyer, B. Eiffel - The language. Prentice-Hall, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Odersky, M., and Wadler, P. Pizza into Java: Translating theory into practice. In Proc. POPL'97 (1997), ACM Press, pp. 146--159. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Pugh, W., and Weddell, G. Two-directional record layout for multiple inheritance. In Proc. ACM Conf. on Programming Language Design and Implementation (PLDI'90) (1990), ACM SIGPLAN Notices, 25(6), pp. 85--91. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Stroustrup, B. The C++ Programming Language. Addison-Wesley, Reading (MA), USA, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Takhedmit, P. Coloration de classes et de propriétés: étude algorithmique et heuristique. Mémoire de dea, Université Montpellier II, 2003.Google ScholarGoogle Scholar
  23. Ungar, d., and Smith, R. Self: The power of simplicity. In Proc. OOPSLA'87 (Orlando, 1987), N. Meyrowitz, Ed., ACM Press, pp. 227--242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Vitek, J., Horspool, R., and Krall, A. Efficient type inclusion tests. In Proc. OOPSLA'97 (1997), SIGPLAN Notices, 32(10), ACM Press, pp. 142--157. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Zendra, O., Colnet, D., and Collin, S. Efficient dynamic dispatch without virtual function tables: The SmallEiffel compiler. In Proc. OOPSLA'97 (1997), SIGPLAN Notices, 32(10), ACM Press, pp. 125--141. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Zendra, O., and Driesen, K. Stress-testing Control Structures for Dynamic Dispatch in Java. In 2nd Java Virtual Machine Research and Technology Symposium (JVM 2002), San Francisco, California, USA (Aug. 2002), Usenix --- The Advanced Computing Systems Association, pp. 105--118. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Link-time static analysis for efficient separate compilation of object-oriented languages

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Published in

                  cover image ACM Conferences
                  PASTE '05: Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
                  September 2005
                  118 pages
                  ISBN:1595932399
                  DOI:10.1145/1108792
                  • cover image ACM SIGSOFT Software Engineering Notes
                    ACM SIGSOFT Software Engineering Notes  Volume 31, Issue 1
                    January 2006
                    203 pages
                    ISSN:0163-5948
                    DOI:10.1145/1108768
                    Issue’s Table of Contents

                  Copyright © 2005 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 5 September 2005

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Acceptance Rates

                  Overall Acceptance Rate57of159submissions,36%

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader