MOS 1996: Mobile Object Systems Towards the Programmable Internet pp 263-276 | Cite as
Adaptive compression of syntax trees and iterative dynamic code optimization: Two basic technologies for mobile object systems
Abstract
We are designing and implementing a flexible infrastructure for mobile-object systems. Two fundamental innovations distinguish our architecture from other proposed solutions. First, our representation of mobile code is based on adaptive compression of syntax trees. Not only is this representation more than twice as dense as Java byte-codes, but it also encodes semantic information on a much higher level than linear abstract-machine representations such as p-code or Java byte-codes. The extra structural information that is contained in our mobile-code format is directly beneficial for advanced code optimizations. Second, our architecture achieves superior run-time performance by integrating the activity of generating executable code into the operating system itself. Rather than being an auxiliary function performed off-line by a stand-alone compiler, code generation constitutes a central, indispensable service in our system. Our integral code generator has two distinct modes of operation: instantaneous load-time translation and continuous dynamic re-optimization. In contrast to just-in-time compilers that translate individual procedures on a call-by-call basis, our system's integral code-generator translates complete code-closures in a single burst during loading. This has the apparent disadvantage that it introduces a minor delay prior to the start of execution. As a consequence, to some extent we have to favor compilation speed over code quality at load time. But then, the second operation mode of our embedded code generator soon corrects this shortcoming. Central to our run-time architecture is a thread of activity that continually optimizes all of the already executing software in the background. Since this is strictly a re-compilation of already existing code, and since it occurs completely in the background, speed is not critical, so that aggressive, albeit slow, optimization techniques can be employed. Upon completion, the previously executing version of the same code is supplanted by the newly generated one and re-optimization starts over. By constructing globally optimized code-images from mobile software components, our architecture is able to reconcile dynamic composability with the run-time efficiency of monolithic applications.
Keywords
Object File Load Time Syntax Tree Java Virtual Machine Object CodePreview
Unable to display preview. Download preview PDF.
References
- [AH96]G. Aigner and U. Hölzle; Eliminating Virtual Function Calls in C++ Programs; ECOOP'96 Conference Proceedings, published as Springer Lecture Notes in Computer Science, No. 1098, 142–166; 1996.Google Scholar
- [BCF95]M. Brandis, R. Crelier, M. Franz, and J. Tempi; The Oberon System Family; SoftwarePractice and Experience, 25:12, 1331–1366; 1995.Google Scholar
- [CMH91]P. P. Chang, S. A. Mahlke, and W. W. Hwu; Using Profile Information to Assist Classic Code Optimizations; SoftwarePractice and Experience, 21:12, 1301–1321; 1991.Google Scholar
- [CU89]C. Chambers and D. Ungar; Customization: Optimizing Compiler Technology for Self, a Dynamically-Typed Object-Oriented Programming Language; Proceedings of the ACM Sigplan '89 Conference Programming Language Design and Implementation, published as Sigplan Notices, 24:7, 146–160; 1989.Google Scholar
- [Dav86]J. W. Davidson; A Retargetable Instruction Reorganizer; Proceedings of the ACM Sigplan '86 Symposium on Compiler Construction, Palo Alto, California, 234–241; 1986.Google Scholar
- [DF84]J. W. Davidson and C. W. Fraser; Code Selection through Object Code Optimization; ACM Transactions on Programming Languages and Systems, 6:4, 505–526; 1984.Google Scholar
- [DRA93]United Kingdom Defence Research Agency; Frequently Asked Questions about ANDF, Issue 1.1; June 1993.Google Scholar
- [FK96]M. Franz and T. Kistler; Slim Binaries; Communications of the ACM, to appear; also available as Technical Report No. 96-24, Department of Information and Computer Science, University of California, Irvine; 1996.Google Scholar
- [Juice]M. Franz and T. Kistler; Juice; http://www.ics.uci.edu/∼juice.Google Scholar
- [FL91]M. Franz and S. Ludwig; Portability Redefined; in Proceedings of the Second International Modula-2 Conference, Loughborough, England; September 1991.Google Scholar
- [Fra93]M. Franz; Emulating an Operating System on Top of Another; SoftwarePractice and Experience, 23:6, 677–692; 1993.Google Scholar
- [Fra94a]M. Franz; Code-Generation On-the-Fly: A Key to Portable Software; Doctoral Dissertation No. 10497, ETH Zürich, simultaneously published by Verlag der Fachvereine, Zürich, 3-7281-2115-0; 1994.Google Scholar
- [Fra94b]M. Franz; Technological Steps toward a Software Component Industry; in Programming Languages and System Architectures, Springer Lecture Notes in Computer Science, No. 782, 259–281; 1994.Google Scholar
- [Han74]G. J. Hansen; Adaptive Systems for the Dynamic Run-Time Optimization of Programs (Doctoral Dissertation); Department of Computer Science, Carnegie-Mellon University; 1974.Google Scholar
- [Ing71]D. Ingalls; The Execution Time Profile as a Programming Tool; Design and Optimization of Compilers, Prentice-Hall; 1971.Google Scholar
- [Juice]M. Franz and T. Kistler; Juice; http://www.ics.uci.edu/∼juice.Google Scholar
- [LYJ96]T. Lindholm, F. Yellin, B. Joy, and K. Walrath; The Java Virtual Machine Specification; Addison-Wesley; 1996.Google Scholar
- [Mac93]S. Macrakis; Protecting Source Code with ANDF; Open Software Foundation Research Institute; June 1993.Google Scholar
- [NAJ76]K. V. Nori, U. Amman, K. Jensen, H. H. Nägeli and C. Jacobi; Pascal-P Implementation Notes; in D.W. Barron, editor; Pascal: The Language and its Implementation; Wiley, Chichester; 1981.Google Scholar
- [Oberon]Institut für Computersysteme, ETH Zürich, and Department of Information and Computer Science, University of California at Irvine; Oberon Software Distribution; http:/ /www-cs.inf.ethz.ch/Oberon.html or http://www.ics.uci.edu/∼oberon.Google Scholar
- [Wal92]D. W. Wall; Experience with a Software-Defined Machine Architecture; ACM Transactions on Programming Languages and Systems, 14:3, 299–338; 1992.Google Scholar
- [Wel84]T. A. Welch; A Technique for High-Performance Data Compression; IEEE Computer, 17:6, 8–19; 1984.Google Scholar
- [WG89]N. Wirth and J. Gutknecht; The Oberon System; SoftwarePractice and Experience, 19:9, 857–893; 1989.Google Scholar
- [WG92]N. Wirth and J. Gutknecht; Project Oberon: The Design of an Operating System and Compiler; Addison-Wesley; 1992.Google Scholar
- [Wir88]N. Wirth; The Programming Language Oberon; Software-Practice and Experience, 18:7, 671–690; 1988.Google Scholar