Technological steps toward a software component industry

  • Michael Franz
Session Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 782)


A machine-independent abstract program representation is presented that is twice as compact as machine code for a CISC processor. It forms the basis of an implementation, in which the process of code generation is deferred until the time of loading. Separate compilation of program modules with type-safe interfaces, and dynamic loading (with code generation) on a per-module basis are both supported.

To users of the implemented system, working with modules in the abstract representation is as convenient as working with native object-files, although it leads to several new capabilities. The combination of portability with practicality denotes a step toward a software component industry.


Dictionary Entry Instruction Sequence Object File Object Code Native Code 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [App85]
    Apple Computer, Inc.; Inside Macintosh; Addison-Wesley; 1985ff.Google Scholar
  2. [ADH89]
    R. Atkinson, A. Demers, C. Hauser, Ch. Jacobi, P. Kessler and M. Weiser; Experiences Creating a Portable Cedar; Proc. Sigplan '89 Conf. Programming Language Design and Implementation, published as Sigplan Notices, 24:7, 322–329; 1989.Google Scholar
  3. [BCF92]
    M. Brandis, R. Crelier, M. Franz and J. Templ; The Oberon System Family; Report #174, Departement Informatik, ETH Zurich; 1992.Google Scholar
  4. [Bro76]
    P.J. Brown; Throw-Away Compiling; Software-Practice and Experience, 6:3,423–434; 1972.Google Scholar
  5. [CU89]
    C. Chambers and D. Ungar; Customization: Optimizing Compiler Technology for SELF, a Dynamically-Typed Object-Oriented Programming Language; Proc. ACM Sigplan '89 Conf. Programming Language Design and Implementation, published as Sigplan Notices, 24:7, 146–160; 1989.Google Scholar
  6. [CUL89]
    C. Chambers, D. Ungar and E. Lee; An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes; OOPSIA '89 Conf. Proc., published as Sigplan Notices, 24:10, 49–70; 1989.Google Scholar
  7. [Con58]
    M. E. Conway, Proposal for an UNCOL; Comm. ACM, 1:10 5–8; 1958.Google Scholar
  8. [DF84]
    J. W. Davidson and C. W. Fraser; Code Selection through Object Code Optimization; ACM Trans. Programming Languages and Systems, 6:4, 505–526; 1984.Google Scholar
  9. [DRA93a]
    United Kingdom Defence Research Agency; TDF Specification, Issue 2.1;June 1993.Google Scholar
  10. [DRA93b]
    United Kingdom Defence Research Agency; A Guide to the TDF Specification, Issue 2.1.0;June1993.Google Scholar
  11. [DRA93c]
    United Kingdom Defence Research Agency; Frequently Asked Questions about ANDF, Issue 1:1; June 1993.Google Scholar
  12. [DS84]
    L. P. Deutsch and A. M. Schiffmann; Efficient Implementation of the Smalltalk-80 System; Conf. Record 11th Annual ACM Symp. Principles of Programming Languages, Salt Lake City, Utah, 297–302; 1984.Google Scholar
  13. [Fel79]
    S. I. Feldman; Make: A Program for Maintaining Computer Programs; Software-Practice and Experience, 9:4, 255–265; 1979.Google Scholar
  14. [Fra90]
    M. Franz; The Implementation of MacOberon; Report #141, Departement Informatik, ETH Zürich; 1990.Google Scholar
  15. [Fra93a]
    M. Franz; Emulating an Operating System on Top of Another; Software-Practice and Experience, 23:6, 677–692; June 1993.Google Scholar
  16. [Fra93b]
    M. Franz; The Case for Universal Symbol Files; Structured Programming, 14:3, 136–147; October 1993.Google Scholar
  17. [FL91]
    M. Franz and S. Ludwig; Portability Redefined; Proc. 2nd Int. Modula-2 Conf, Loughborough, England; 1991.Google Scholar
  18. [GF84]
    M. Ganapathi and C. N. Fischer; Attributed Linear Intermediate Representations for Retargetable Code Generators; Software-Practice and Experience, 14:4, 347–364; 1984.Google Scholar
  19. [GR83]
    A. Goldberg and D. Robson; Smalltalk-80: The Language and its Implementation; Addison-Wesley; 1983.Google Scholar
  20. [Gri72]
    R. E. Griswold; The Macro Implementation of SNOBOL4: A Case Study in Machine-Independent Software Development; Freeman, San Francisco; 1972.Google Scholar
  21. [KR78]
    B. W. Kernighan and D. M. Ritchie; The C Programming language; Prentice-Hall; 1978.Google Scholar
  22. [Mac93]
    S. Macrakis; Protecting Source Code with ANDF; Open Software Foundation Research Institute; June 1993.Google Scholar
  23. [Mcl68]
    M. D. McIlroy; Mass Produced Software Components; in Naur, Randell, Buxton (eds.), Software Engineering: Concepts and Techniques, Proceedings of the NATO Conferences, New York, 88–98; 1976.Google Scholar
  24. [Mor91]
    W. G. Morris; CCG: A Prototype Coagulating Code Generator; Proc. ACM Sigplan '91 Conf. Programming Language Design and Implementation, published as Sigplan Notices, 26:6, 45–58; 1991.Google Scholar
  25. [Mot87]
    Motorola, Inc.; M68030 Enhanced 32-bit Microprocessor User's Manual; Motorola Customer Order No. MC68020UM/AD;1987.Google Scholar
  26. [Nel81]
    B. J. Nelson; Remote Procedure Call; Report #CLS-81-9, Palo Alto Research Center, Xerox Corporation, Palo Alto, California; 1981.Google Scholar
  27. [NAJ76]
    K. V. Nori, U. Amman, K. Jensen, H. H. Nägeli and Ch. Jacobi; Pascal-P Implementation Notes; in D.W. Barron, editor; Pascal: The Language and its Implementation: Wiley, Chichester; 1981.Google Scholar
  28. [OSF91]
    Open Software Foundation; OSF Architecture-Neutral Distribution Format Rationale; 1991.Google Scholar
  29. [PW69]
    P. C. Poole and W. M. Waite: Machine Independent Software; Proc. ACM 2nd Symp. Operating System Principles, Princeton, New Jersey; 1969.Google Scholar
  30. [Rau78]
    B. R. Rau; Levels of Representation of Programs and the Architecture of Universal Host Machines; Proc. 11th Annual Microprogramming Workshop, Pacific Grove, California, 67–79; 1978.Google Scholar
  31. [Rei89]
    M. Reiser; Private Communication; 1989.Google Scholar
  32. [Ric71]
    M. Richards; The Portability of the BCPL Compiler; Software-Practice and Experience, 1:2, 135–146; 1971.Google Scholar
  33. [SCK93]
    R. L. Sites, A. Chernoff, M. B. Kirk, M. P. Marks and S. G. Robinson; Binary Translation; Comm. ACM, 36:2, 69–81; February 1993.Google Scholar
  34. [SWT58]
    J. Strong, J. Wegstein, A. Tritter, J. Olsztyn, O. Mock and T. B. Steel; The Problem of Programming Communication with Changing Machines: A Proposed Solution: Report of the Share Ad-Hoc Committee on Universal Languages; Comm. ACM, 1:8, 12–18. and 1:9, 9–15; 1958.Google Scholar
  35. [Szy92]
    C. A. Szyperski; Write-ing Applications: Designing an Extensible Text Editor as an Application Framework; Proc. 7th Int. Conf. Technology of Object-Oriented Languages and Systems (TOOLS'92), Dortmund, Germany, 247–261; 1992.Google Scholar
  36. [TR74]
    K. Thompson and D. M. Ritchie; The UNIXTime-Sharing System; Comm. ACM, 17:2, 1931–1946; 1974.Google Scholar
  37. [Tic86]
    W. F. Tichy; Smart Recompilation; ACM Trans. Programming Languages and Systems, 8:3, 273–291; 1986.Google Scholar
  38. [TB85]
    W. F. Tichy and M. C. Baker; Smart Recompilation; Conf. Record 12th Annual ACM Symp. Principles of Programming Languages, New Orleans, Louisiana, 236–244; 1985.Google Scholar
  39. [US87]
    D. Ungar and R. B. Smith; Self: The Power of Simplicity; OOPSIA '87 Conf Proc., published as Sigplan Notices, 22:12, 227–242; 1987.Google Scholar
  40. [Wal91]
    D. W. Wall; Predicting Program Behavior Using Real or Estimated Profiles; Proc. ACM Sigplan '91 Conf. Programming Language Design and Implementation, published as Sigplan Notices, 26:6, 59–70, 1991.Google Scholar
  41. [Wel84]
    T. A. Welch; ATechnique for High-Performance Data Compression; IEEE Computer, 17:6, 8–19; 1984.Google Scholar
  42. [Wir88]
    N. Wirth:The Programming Language Oberon; Software-Practice and Experience,18:7, 671–690; 1988.Google Scholar
  43. [WG89]
    N. Wirth and J. Gutknecht; The Oberon System, Software-Practice and Experience, 19:9, 857–893; 1989.Google Scholar
  44. [WG92]
    N. Wirth and J. Gutknecht, Project Oberon: The Design of an Operating System and Compiler; Addison-Wesley;1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Michael Franz
    • 1
  1. 1.Institut für ComputersystemeETH ZürichZürichSwitzerland

Personalised recommendations