skip to main content
Fast and effective optimization of statically typed object-oriented languages
Publisher:
  • University of California, Berkeley
ISBN:978-0-591-81143-8
Order Number:AAI9828589
Pages:
141
Bibliometrics
Skip Abstract Section
Abstract

In this dissertation, we show how a relatively simple and extremely fast interprocedural optimization algorithm can be used to optimize many of the expensive features of statically typed, object-oriented languages--in particular, C++ and Java.

We present a new program analysis algorithm, Rapid Type Analysis, and show that it is fast both in theory and in practice, and significantly out-performs other "fast" algorithms for virtual function call resolution.

We present optimization algorithms for the resolution of virtual function calls, conversion of virtual inheritance to direct inheritance, elimination of dynamic casts and dynamic type checks, and removal of object synchronization. These algorithms are all presented within a common framework that allows them to be driven by the information collected by Rapid Type Analysis, or by some other type analysis algorithm.

Collectively, the optimizations in this dissertation free the programmer from having to sacrifice modularity and extensibility for performance. Instead, the programmer can freely make use of the most powerful features of object-oriented programming, since the optimizer will remove unnecessary extensibility from the program.

Cited By

  1. Ali K, Rapoport M, Lhoták O, Dolby J and Tip F Constructing Call Graphs of Scala Programs Proceedings of the 28th European Conference on ECOOP 2014 --- Object-Oriented Programming - Volume 8586, (54-79)
  2. ACM
    Sallenave O and Ducournau R Lightweight generics in embedded systems through static analysis Proceedings of the 13th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems, (11-20)
  3. ACM
    Sallenave O and Ducournau R (2012). Lightweight generics in embedded systems through static analysis, ACM SIGPLAN Notices, 47:5, (11-20), Online publication date: 18-May-2012.
  4. ACM
    Allende E and Fabry J Application optimization when using gradual typing Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems, (1-6)
  5. ACM
    Kumar R and Chakraborty S (2007). Precise static type analysis for object oriented programs, ACM SIGPLAN Notices, 42:2, (17-26), Online publication date: 1-Feb-2007.
  6. ACM
    Rayside D, Mendel L and Jackson D A dynamic analysis for revealing object ownership and sharing Proceedings of the 2006 international workshop on Dynamic systems analysis, (57-64)
  7. Glew N, Palsberg J and Grothoff C Type-safe optimisation of plugin architectures Proceedings of the 12th international conference on Static Analysis, (135-154)
  8. Livshits B, Whaley J and Lam M Reflection analysis for java Proceedings of the Third Asian conference on Programming Languages and Systems, (139-160)
  9. ACM
    Blanchet B (2003). Escape analysis for JavaTM, ACM Transactions on Programming Languages and Systems (TOPLAS), 25:6, (713-775), Online publication date: 1-Nov-2003.
  10. ACM
    Kawachiya K, Koseki A and Onodera T Lock reservation Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (130-141)
  11. ACM
    Koved L, Pistoia M and Kershenbaum A Access rights analysis for Java Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (359-372)
  12. ACM
    Mikheev V, Lipsky N, Gurchenkov D, Pavlov P, Sukharev V, Markov A, Kuksenko S, Fedoseev S, Leskov D and Yeryomin A Overview of excelsior JET, a high performance alternative to java virtual machines Proceedings of the 3rd international workshop on Software and performance, (104-113)
  13. ACM
    Koved L, Pistoia M and Kershenbaum A (2019). Access rights analysis for Java, ACM SIGPLAN Notices, 37:11, (359-372), Online publication date: 17-Nov-2002.
  14. ACM
    Kawachiya K, Koseki A and Onodera T (2019). Lock reservation, ACM SIGPLAN Notices, 37:11, (130-141), Online publication date: 17-Nov-2002.
  15. ACM
    Palsberg J Type-based analysis and applications Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, (20-27)
  16. ACM
    Ryder B and Tip F Change impact analysis for object-oriented programs Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, (46-53)
  17. Rayside D and Kontogiannis K On the syllogistic structure of object-oriented programming Proceedings of the 23rd International Conference on Software Engineering, (113-122)
  18. Rayside D, Litoiu M, Storey M and Best C Integrating SHriMP with the IBM websphere studio workbench Proceedings of the 2001 conference of the Centre for Advanced Studies on Collaborative research
  19. ACM
    Knoblock T and Rehof J (2001). Type elaboration and subtype completion for Java bytecode, ACM Transactions on Programming Languages and Systems (TOPLAS), 23:2, (243-272), Online publication date: 1-Mar-2001.
  20. ACM
    Knoblock T and Rehof J Type elaboration and subtype completion for Java bytecode Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (228-242)
  21. ACM
    Tip F and Palsberg J Scalable propagation-based call graph construction algorithms Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (281-293)
  22. ACM
    Ishizaki K, Kawahito M, Yasue T, Komatsu H and Nakatani T A study of devirtualization techniques for a Java Just-In-Time compiler Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (294-310)
  23. ACM
    Rayside D and Campbell G An Aristotelian understanding of object-oriented programming Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (337-353)
  24. ACM
    Tip F and Palsberg J (2019). Scalable propagation-based call graph construction algorithms, ACM SIGPLAN Notices, 35:10, (281-293), Online publication date: 1-Oct-2000.
  25. ACM
    Ishizaki K, Kawahito M, Yasue T, Komatsu H and Nakatani T (2019). A study of devirtualization techniques for a Java Just-In-Time compiler, ACM SIGPLAN Notices, 35:10, (294-310), Online publication date: 1-Oct-2000.
  26. ACM
    Rayside D and Campbell G (2019). An Aristotelian understanding of object-oriented programming, ACM SIGPLAN Notices, 35:10, (337-353), Online publication date: 1-Oct-2000.
  27. ACM
    Ishizaki K, Kawahito M, Yasue T, Takeuchi M, Ogasawara T, Suganuma T, Onodera T, Komatsu H and Nakatani T Design, implementation, and evaluation of optimizations in a just-in-time compiler Proceedings of the ACM 1999 conference on Java Grande, (119-128)
  28. ACM
    Bogda J and Hölzle U Removing unnecessary synchronization in Java Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (35-46)
  29. ACM
    Sweeney P and Gil J Space and time-efficient memory layout for multiple inheritance Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (256-275)
  30. ACM
    Tip F, Laffra C, Sweeney P and Streeter D Practical experience with an application extractor for Java Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, (292-305)
  31. ACM
    Bogda J and Hölzle U (2019). Removing unnecessary synchronization in Java, ACM SIGPLAN Notices, 34:10, (35-46), Online publication date: 1-Oct-1999.
  32. ACM
    Sweeney P and Gil J (2019). Space and time-efficient memory layout for multiple inheritance, ACM SIGPLAN Notices, 34:10, (256-275), Online publication date: 1-Oct-1999.
  33. ACM
    Tip F, Laffra C, Sweeney P and Streeter D (2019). Practical experience with an application extractor for Java, ACM SIGPLAN Notices, 34:10, (292-305), Online publication date: 1-Oct-1999.
  34. ACM
    Sweeney P and Tip F A study of dead data members in C++ applications Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, (324-332)
  35. ACM
    Sweeney P and Tip F (1998). A study of dead data members in C++ applications, ACM SIGPLAN Notices, 33:5, (324-332), Online publication date: 1-May-1998.
Contributors
  • Google LLC
  • University of California, Berkeley

Recommendations