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.
- Agesen, O. Concrete Type Inference: Delivering Object-Oriented Applications. PhD thesis, Stanford University, 1996. Google ScholarDigital Library
- Bacon, D. F., Wegman, M., and Zadeck, K. Rapid type analysis for C++. Tech. rep., IBM Thomas J. Watson Research Center, 1996.Google Scholar
- Boucher, D. Analyse et Optimisations Globales de Modules Compilés Séparément. PhD thesis, Université de Montréal, 1999.Google Scholar
- 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 ScholarDigital Library
- Cohen, N. Type-extension type tests can be performed in constant time. Programming languages and systems 13, 4 (1991), 626--629. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Ducournau, R. Implementing statically typed object-oriented programming languages. Tech. Rep. 02--174, L.I.R.M.M., 2002.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Goldberg, A., and Robson, D. Smalltalk: the language and its implementation. Addison-Wesley, Reading, MA, 1983. Google ScholarDigital Library
- Gosling, J. The Java language specification. Addison-Wesley, Boston, 2000. Google ScholarDigital Library
- Grove, D., and Chambers,. C. A framework for call graph construction algorithms. ACM Trans. Program. Lang. Syst. 23, 6 (2001), 685--746. Google ScholarDigital Library
- 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 ScholarDigital Library
- Levine, J. R. Linkers and Loaders. Morgan-Kauffman, October 1999. Google ScholarDigital Library
- Lippman, S. Inside the C++ Object Model. Addison-Wesley, New York (NY), USA, 1996. Google ScholarDigital Library
- Masini, G., Napoli, A., Colnet, D., Léonard, D., and Tombre, K. Object-Oriented Languages. Academic Press, London, 1991.Google Scholar
- Meyer, B. Eiffel - The language. Prentice-Hall, 1997. Google ScholarDigital Library
- Odersky, M., and Wadler, P. Pizza into Java: Translating theory into practice. In Proc. POPL'97 (1997), ACM Press, pp. 146--159. Google ScholarDigital Library
- 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 ScholarDigital Library
- Stroustrup, B. The C++ Programming Language. Addison-Wesley, Reading (MA), USA, 1986. Google ScholarDigital Library
- Takhedmit, P. Coloration de classes et de propriétés: étude algorithmique et heuristique. Mémoire de dea, Université Montpellier II, 2003.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Link-time static analysis for efficient separate compilation of object-oriented languages
Recommendations
Link-time static analysis for efficient separate compilation of object-oriented languages
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 ...
A simple separate compilation mechanism for block-structured languages
A very simple and efficient technique for the introduction of separate compilation facilities into compilers for block-structured languages is presented. Using this technique, programs may be compiled in parts while the compile-time checking advantages ...
Incremental concrete syntax for embedded languages with support for separate compilation
Embedded domain-specific languages (EDSLs) are known to improve the productivity of developers. However, for many domains no DSL implementation is available and two important reasons for this are: First, the effort to implement EDSLs that provide the ...
Comments