ABSTRACT
This paper describes a run-time specialization system for the Java language. One of the main difficulties of supporting the full Java language resides in a sound yet effective management of references to objects. This is because the specialization process may share references with the running application that executes the residual code, and because side-effects through those references by the specialization process could easily break the semantics of the running application. To cope with these difficulties, we elaborate requirements that ensure sound run-time specialization. Based on them, we design and implement a run-time specialization system for the Java language, which exhibits, for instance, approximately 20-25% speed-up factor for a ray-tracing application.
- Affeldt, R. Supporting object-oriented features in run-time bytecode specialization. Master's thesis, University of Tokyo, Graduate School of Science, Department of Information Science, Sep. 2001.]]Google Scholar
- Andersen, L. O. Binding-time analysis and the taming of C pointers. In Partial Evaluation and Semantics-Based Program Manipulation (Jun. 1993), ACM Press, pp. 47--58.]] Google ScholarDigital Library
- Andersen, P. H. Partial evaluation applied to ray tracing. In Software Engineering in Scientific Computing (1996), W. Mackens and S. Rump, Eds., Vieweg, pp. 78--85.]]Google Scholar
- Asai, K. Integrating partial evaluators into interpreters. In Second International Workshop on Semantics, Applications and Implementation of Program Generation (Sep. 2001), vol. 2196 of Lecture Notes in Computer Science, Springer-Verlag.]]Google ScholarCross Ref
- Consel, C., and Noël, F. A general approach for run-time specialization and its application to C. In 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Jan. 1996), ACM Press, pp. 145--156.]] Google ScholarDigital Library
- Dean, J., Chambers, C., and Grove, D. Selective specialization for object-oriented languages. ACM SIGPLAN Notices 30, 6 (1995), 93--102.]] Google ScholarDigital Library
- Fujinami, N. Automatic run-time code generation in C++. In Scientific Computing in Object-Oriented Parallel Environments (1997), vol. 1343 of Lecture Notes in Computer Science, Springer-Verlag, pp. 9--16.]] Google ScholarDigital Library
- Fujinami, N. Determination of dynamic method dispatches using run-time code generation. In Types in Compilation (Mar. 1998), X. Leroy and A. Ohori, Eds., vol. 1473 of Lecture Notes in Computer Science, Springer-Verlag, pp. 253--271.]] Google ScholarDigital Library
- Grant, B., Mock, M., Philipose, M., Chambers, C., and Eggers, S. J. Annotation-directed run-time specialization in C. In ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (Jun. 1997), ACM Press, pp. 163--178.]] Google ScholarDigital Library
- Grant, B., Philipose, M., Mock, M., Eggers, S. J., and Chambers, C. An evaluation of staged run-time optimizations in DyC. In ACM SIGPLAN Conference on Programming Language Design and Implementation (May 1999), ACM Press.]] Google ScholarDigital Library
- Lea, D. Customization in C++. In C++ Conference (1990), pp. 301--314.]]Google Scholar
- Lee, P., and Leone, M. Optimizing ML with run-time code generation. In ACM SIGPLAN Conference on Programming Language Design and Implementation (1996), ACM Press, pp. 137--148.]] Google ScholarDigital Library
- Leone, M., and Lee, P. Lightweight run-time code generation. In ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (Jun. 1994), ACM Press, pp. 97--106.]]Google Scholar
- Masuhara, H., and Yonezawa, A. A portable approach to dynamic optimization in run-time specialization. Journal of New Generation Computing 20, 1 (Nov. 2001), 101--124. An extended version of {15}.]] Google ScholarDigital Library
- Masuhara, H., and Yonezawa, A. Run-time bytecode specialization: A portable approach to generating optimized specialized code. In Programs as Data Objects (2001), O. Danvy and A. Filinski, Eds., vol. 2053 of Lecture Notes in Computer Science, Springer-Verlag, pp. 138--152.]] Google ScholarDigital Library
- Noël, F., Hornof, L., Consel, C., and Lawall, J. L. Automatic, template-based run-time specialization: Implementation and experimental study. In International Conference on Computer Languages (May 1998), IEEE, pp. 123--142.]]Google ScholarCross Ref
- Schultz, U. Partial evaluation for class-based object-oriented languages. In Programs as Data Objects (2001), O. Danvy and A. Filinski, Eds., vol. 2053 of Lecture Notes in Computer Science, Springer-Verlag, pp. 173--197.]] Google ScholarDigital Library
- Schultz, U., and Consel, C. Automatic program specialization for Java. Tech. rep., IRISA/INRIA, Rennes - LABRI, Nov. 2000. Available at http://www.daimi.au.dk/PB/551/PB-551.pdf.]]Google Scholar
- Schultz, U. P., Lawall, J. L., Consel, C., and Muller, G. Toward automatic specialization of Java programs. In 13th European Conference on Object-Oriented Programming (Jun. 1999).]] Google ScholarDigital Library
- Thiemann, P. J. Correctness of a region-based binding-time analysis. In Mathematical Foundations of Programming Semantics, Thirteenth Annual Conference\/ (1997), vol. 6 of Electronic Notes in Theoretical Computer Science, Elsevier Science. Available at http://www.elsevier.nl/locate/entcs/volume6.html.]]Google Scholar
- Volanschi, E. N., Consel, C., Muller, G., and Cowan, C. Declarative specialization of object-oriented programs. In ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (1997), ACM Press.]] Google ScholarDigital Library
Index Terms
- Supporting objects in run-time bytecode specialization
Recommendations
Run-Time Bytecode Specialization
PADO '01: Proceedings of the Second Symposium on Programs as Data ObjectsThis paper proposes a run-time bytecode specialization (BCS) technique that analyzes programs and generates specialized programs at run-time in an intermediate language. By using an intermediate language for code generation, a back-end system can ...
Combining Program and Data Specialization
Program and data specialization have always been studied separately, although they are both aimed at processing early computations. Program specialization encodes the result of early computations into a new program; while data specialization encodes the ...
Process Specialization: Defining Specialization for State Diagrams
A precise definition of specialization and inheritance promises to be as useful in organizational process modeling as it is in object modeling. It would help us better understand, maintain, reuse, and generate process models. However, even though object-...
Comments