Skip to main content

Adaptive compression of syntax trees and iterative dynamic code optimization: Two basic technologies for mobile object systems

  • Conference paper
  • First Online:
Book cover Mobile Object Systems Towards the Programmable Internet (MOS 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1222))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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 

  2. M. Brandis, R. Crelier, M. Franz, and J. Tempi; The Oberon System Family; SoftwarePractice and Experience, 25:12, 1331–1366; 1995.

    Google Scholar 

  3. 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 

  4. 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 

  5. 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 

  6. 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 

  7. United Kingdom Defence Research Agency; Frequently Asked Questions about ANDF, Issue 1.1; June 1993.

    Google Scholar 

  8. 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 

  9. M. Franz and T. Kistler; Juice; http://www.ics.uci.edu/∼juice.

    Google Scholar 

  10. M. Franz and S. Ludwig; Portability Redefined; in Proceedings of the Second International Modula-2 Conference, Loughborough, England; September 1991.

    Google Scholar 

  11. M. Franz; Emulating an Operating System on Top of Another; SoftwarePractice and Experience, 23:6, 677–692; 1993.

    Google Scholar 

  12. 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 

  13. 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 

  14. 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 

  15. D. Ingalls; The Execution Time Profile as a Programming Tool; Design and Optimization of Compilers, Prentice-Hall; 1971.

    Google Scholar 

  16. M. Franz and T. Kistler; Juice; http://www.ics.uci.edu/∼juice.

    Google Scholar 

  17. T. Lindholm, F. Yellin, B. Joy, and K. Walrath; The Java Virtual Machine Specification; Addison-Wesley; 1996.

    Google Scholar 

  18. S. Macrakis; Protecting Source Code with ANDF; Open Software Foundation Research Institute; June 1993.

    Google Scholar 

  19. 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 

  20. 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 

  21. D. W. Wall; Experience with a Software-Defined Machine Architecture; ACM Transactions on Programming Languages and Systems, 14:3, 299–338; 1992.

    Google Scholar 

  22. T. A. Welch; A Technique for High-Performance Data Compression; IEEE Computer, 17:6, 8–19; 1984.

    Google Scholar 

  23. N. Wirth and J. Gutknecht; The Oberon System; SoftwarePractice and Experience, 19:9, 857–893; 1989.

    Google Scholar 

  24. N. Wirth and J. Gutknecht; Project Oberon: The Design of an Operating System and Compiler; Addison-Wesley; 1992.

    Google Scholar 

  25. N. Wirth; The Programming Language Oberon; Software-Practice and Experience, 18:7, 671–690; 1988.

    Google Scholar 

Download references

Authors

Editor information

Jan Vitek Christian Tschudin

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Franz, M. (1997). Adaptive compression of syntax trees and iterative dynamic code optimization: Two basic technologies for mobile object systems. In: Vitek, J., Tschudin, C. (eds) Mobile Object Systems Towards the Programmable Internet. MOS 1996. Lecture Notes in Computer Science, vol 1222. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62852-5_19

Download citation

  • DOI: https://doi.org/10.1007/3-540-62852-5_19

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-62852-1

  • Online ISBN: 978-3-540-68705-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics