Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/646156.679710guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Towards Automatic Specialization of Java Programs

Published: 14 June 1999 Publication History
  • Get Citation Alerts
  • Abstract

    Automatic program specialization can derive efficient implementations from generic components, thus reconciling the often opposing goals of genericity and efficiency. This technique has proved useful within the domains of imperative, functional, and logical languages, but so far has not been explored within the domain of object-oriented languages.
    We present experiments in the specialization of Java programs. We demonstrate how to construct a program specializer for Java programs from an existing specializer for C programs and a Java-to-C compiler. Specialization is managed using a declarative approach that abstracts over the optimization process and masks implementation details. Our experiments show that program specialization provides a four-time speedup of an image-filtering program. Based on these experiments, we identify optimizations of object-oriented programs that can be carried out by automatic program specialization. We argue that program specialization is useful in the field of software components, allowing a generic component to be specialized to a specific configuration.

    References

    [1]
    L.O. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, Computer Science Department, University of Copenhagen, May 1994. DIKU Technical Report 94/19.
    [2]
    J. Auslander, M. Philipose, C. Chambers, S.J. Eggers, and B.N. Bershad. Fast, effective dynamic compilation. In PLDI'96 {27}, pages 149-159.
    [3]
    R. Baier, R. Glück, and R. Zöchling. Partial evaluation of numerical programs in Fortran. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 119-132, Orlando, FL, USA, June 1994. Technical Report 94/9, University of Melbourne, Australia.
    [4]
    A.A. Berlin. Partial evaluation applied to numerical computation. In ACM Conference on Lisp and Functional Programming, pages 139-150, Nice, France, 1990. ACM Press.
    [5]
    B.N. Bershad, T.E. Anderson, E.D. Lazowska, and H.M. Levy. Lightweight remote procedure call. ACM Transactions on Computer Systems, 8(1):37-55, February 1990.
    [6]
    W.H. Cheung and A. Loong. Exploring issues of operating systems structuring: from microkernel to extensible systems. ACM Operating Systems Reviews, 29(4):4- 16, October 1995.
    [7]
    C. Consel. A tour of Schism: a partial evaluation system for higher-order applicative languages. In Partial Evaluation and Semantics-Based Program Manipulation, pages 66-77, Copenhagen, Denmark, June 1993. ACM Press.
    [8]
    C. Consel, L. Hornof, F. Noël, J. NoyÉ, and E.N. Volanschi. A uniform approach for compile-time and run-time specialization. In O. Danvy, R. Glück, and P. Thiemann, editors, Partial Evaluation, International Seminar, Dagstuhl Castle, number 1110 in Lecture Notes in Computer Science, pages 54-72, February 1996.
    [9]
    C. Consel and F. Noël. A general approach for run-time specialization and its application to C. In Conference Record of the 23rd Annual ACM SIGPLAN-SIGACT Symposium on Principles Of Programming Languages, pages 145-156, St. Petersburg Beach, FL, USA, January 1996. ACM Press.
    [10]
    J. Dean, G. DeFouw, D. Grove, V. Litvinov, and C. Chambers. Vortex: an optimizing compiler for object-oriented languages. In OOPSLA' 96 Conference, pages 93-100, San Jose (CA), October 1996.
    [11]
    J. Dean, D. Grove, and C. Chambers. Optimization of object-oriented programs using static class hierarchy analysis. In Proceedings of ECOOP '95, Aarhus, Denmark, August 1995. Springer-Verlag.
    [12]
    J. Dolby and A. A. Chien. An evaluation of automatic object inline allocation techniques. In Proceedings OOPSLA '98 Conference on Object-Oriented Programming Systems, Languages, and Applications, ACM SIGPLAN Notices. ACM, 1998.
    [13]
    D.R. Engler and M.F. Kaashoek. DPF: Fast, flexible message demultiplexing using dynamic code generation. In SIGCOMM Symposium on Communications Architectures and Protocols, pages 26-30, Stanford University, CA, August 1996. ACM Press.
    [14]
    E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison-Wesley, 1994.
    [15]
    B. Guenter, T.B. Knoblock, and E. Ruf. Specializing shaders. In Computer Graphics Proceedings, Annual Conference Series, pages 343-350. ACM Press, 1995.
    [16]
    Urs Hölzle and David Ungar. Optimizing dynamically-dispatched calls with runtime type feedback. In Proceedings of the Conference on Programming Language Design and Implementation, pages 326-336, New York, NY, USA, June 1994. ACM Press.
    [17]
    S. C. Khoo and R. S. Sundaresh. Compiling inheritance using partial evaluation. In Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 211-222, Yale University, 17-19 June 1991.
    [18]
    P. Kleinrubatscher, A. Kriegshaber, R. Zöchling, and R. Glück. Fortran program specialization. In U. Meyer and G. Snelting, editors, Workshop Semantikgestützte Analyse, Entwicklung und Generierung von Programmen, pages 45-54. Justus-Liebig-Universität, Giessen, Germany, 1994. Report No. 9402.
    [19]
    P. Lee and M. Leone. Optimizing ML with run-time code generation. In PLDI'96 {27}, pages 137-148.
    [20]
    B.N. Locanthi. Fast bitblt() with asm() and cpp. In European UNIX Systems User Group Conference Proceedings, pages 243-259, AT&T Bell Laboratories, Murray Hill, September 1987. EUUG.
    [21]
    R. Marlet, S. Thibault, and C. Consel. Mapping software architectures to efficient implementations via partial evaluation. In Conference on Automated Software Engineering, pages 183-192, Lake Tahoe, Nevada, November 1997. IEEE Computer Society.
    [22]
    M. Marquard and B. Steensgaard. Partial evaluation of an object-oriented imperative language. Master's thesis, University of Copenhagen, Department of Computer Science, Universitetsparken 1, 2100 Copenhagen O., Denmark, April 1992.
    [23]
    B. Moura. Bridging the Gap between Functional and Imperative Languages. PhD thesis, University of Rennes I, April 1997.
    [24]
    G. Muller, R. Marlet, E.N. Volanschi, C. Consel, C. Pu, and A. Goel. Fast, optimized Sun RPC using automatic program specialization. In Proceedings of the 18th International Conference on Distributed Computing Systems, pages 240-249, Amsterdam, The Netherlands, May 1998. IEEE Computer Society Press.
    [25]
    G. Muller, B. Moura, F. Bellard, and C. Consel. Harissa: A flexible and efficient Java environment mixing bytecode and compiled code. In Proceedings of the 3rd Conference on Object-Oriented Technologies and Systems, pages 1-20, Portland (Oregon), USA, June 1997. Usenix.
    [26]
    G. Muller and U. Schultz. Harissa: A hybrid approach to Java execution. IEEE Software, pages 44-51, March 1999.
    [27]
    Proceedings of the ACM SIGPLAN '96 Conference on Programming Language Design and Implementation, Philadelphia, PA, May 1996. ACM SIGPLAN Notices, 31(5).
    [28]
    C. Pu, T. Autrey, A. Black, C. Consel, C. Cowan, J. Inouye, L. Kethana, J. Walpole, and K. Zhang. Optimistic incremental specialization: Streamlining a commercial operating system. In Proceedings of the 1995 ACM Symposium on Operating Systems Principles, pages 314-324, Copper Mountain Resort, CO, USA, December 1995. ACM Operating Systems Reviews, 29(5), ACM Press.
    [29]
    C. Pu, H. Massalin, and J. Ioannidis. The Synthesis kernel. Computing Systems, 1(1):11-32, Winter 1988.
    [30]
    J.C. Russ. The Image Processing Handbook. CRC Press, Inc., second edition, 1995.
    [31]
    T. L. Veldhuizen. C++ templates as partial evaluation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation, pages 13-18, San Antonio, TX, USA, January 1999. ACM Press.
    [32]
    E.N. Volanschi, C. Consel, G. Muller, and C. Cowan. Declarative specialization of object-oriented programs. In OOPSLA'97 Conference Proceedings, pages 286-300, Atlanta, USA, October 1997. ACM Press.

    Cited By

    View all
    • (2018)Self-adaptive concurrent componentsAutomated Software Engineering10.1007/s10515-017-0219-025:1(47-99)Online publication date: 1-Mar-2018
    • (2017)Practical partial evaluation for high-performance dynamic language runtimesACM SIGPLAN Notices10.1145/3140587.306238152:6(662-676)Online publication date: 14-Jun-2017
    • (2017)Practical partial evaluation for high-performance dynamic language runtimesProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062381(662-676)Online publication date: 14-Jun-2017
    • Show More Cited By

    Index Terms

    1. Towards Automatic Specialization of Java Programs
      Index terms have been assigned to the content through auto-classification.

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image Guide Proceedings
      ECOOP '99: Proceedings of the 13th European Conference on Object-Oriented Programming
      June 1999
      528 pages
      ISBN:3540661565

      Publisher

      Springer-Verlag

      Berlin, Heidelberg

      Publication History

      Published: 14 June 1999

      Qualifiers

      • Article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)0
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 10 Aug 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2018)Self-adaptive concurrent componentsAutomated Software Engineering10.1007/s10515-017-0219-025:1(47-99)Online publication date: 1-Mar-2018
      • (2017)Practical partial evaluation for high-performance dynamic language runtimesACM SIGPLAN Notices10.1145/3140587.306238152:6(662-676)Online publication date: 14-Jun-2017
      • (2017)Practical partial evaluation for high-performance dynamic language runtimesProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062381(662-676)Online publication date: 14-Jun-2017
      • (2013)One VM to rule them allProceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software10.1145/2509578.2509581(187-204)Online publication date: 29-Oct-2013
      • (2013)Dynamically transforming data structuresProceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2013.6693099(410-420)Online publication date: 11-Nov-2013
      • (2012)Optimized composition of performance-aware parallel componentsConcurrency and Computation: Practice & Experience10.1002/cpe.184424:5(481-498)Online publication date: 1-Apr-2012
      • (2009)Privacy-preserving genomic computation through program specializationProceedings of the 16th ACM conference on Computer and communications security10.1145/1653662.1653703(338-347)Online publication date: 9-Nov-2009
      • (2008)Profile-guided compositionProceedings of the 7th international conference on Software composition10.5555/1793034.1793050(157-164)Online publication date: 29-Mar-2008
      • (2005)Runtime specialization with optimistic heap analysisACM SIGPLAN Notices10.1145/1103845.109483740:10(327-343)Online publication date: 12-Oct-2005
      • (2005)Runtime specialization with optimistic heap analysisProceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications10.1145/1094811.1094837(327-343)Online publication date: 17-Oct-2005
      • Show More Cited By

      View Options

      View options

      Get Access

      Login options

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media