Skip to main content

Technological steps toward a software component industry

  • Session Papers
  • Conference paper
  • First Online:
Programming Languages and System Architectures

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

Abstract

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.

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. Apple Computer, Inc.; Inside Macintosh; Addison-Wesley; 1985ff.

    Google Scholar 

  2. 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. M. Brandis, R. Crelier, M. Franz and J. Templ; The Oberon System Family; Report #174, Departement Informatik, ETH Zurich; 1992.

    Google Scholar 

  4. P.J. Brown; Throw-Away Compiling; Software-Practice and Experience, 6:3,423–434; 1972.

    Google Scholar 

  5. 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. 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. M. E. Conway, Proposal for an UNCOL; Comm. ACM, 1:10 5–8; 1958.

    Google Scholar 

  8. 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. United Kingdom Defence Research Agency; TDF Specification, Issue 2.1;June 1993.

    Google Scholar 

  10. United Kingdom Defence Research Agency; A Guide to the TDF Specification, Issue 2.1.0;June1993.

    Google Scholar 

  11. United Kingdom Defence Research Agency; Frequently Asked Questions about ANDF, Issue 1:1; June 1993.

    Google Scholar 

  12. 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. S. I. Feldman; Make: A Program for Maintaining Computer Programs; Software-Practice and Experience, 9:4, 255–265; 1979.

    Google Scholar 

  14. M. Franz; The Implementation of MacOberon; Report #141, Departement Informatik, ETH Zürich; 1990.

    Google Scholar 

  15. M. Franz; Emulating an Operating System on Top of Another; Software-Practice and Experience, 23:6, 677–692; June 1993.

    Google Scholar 

  16. M. Franz; The Case for Universal Symbol Files; Structured Programming, 14:3, 136–147; October 1993.

    Google Scholar 

  17. M. Franz and S. Ludwig; Portability Redefined; Proc. 2nd Int. Modula-2 Conf, Loughborough, England; 1991.

    Google Scholar 

  18. 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. A. Goldberg and D. Robson; Smalltalk-80: The Language and its Implementation; Addison-Wesley; 1983.

    Google Scholar 

  20. R. E. Griswold; The Macro Implementation of SNOBOL4: A Case Study in Machine-Independent Software Development; Freeman, San Francisco; 1972.

    Google Scholar 

  21. B. W. Kernighan and D. M. Ritchie; The C Programming language; Prentice-Hall; 1978.

    Google Scholar 

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

    Google Scholar 

  23. 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. 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. Motorola, Inc.; M68030 Enhanced 32-bit Microprocessor User's Manual; Motorola Customer Order No. MC68020UM/AD;1987.

    Google Scholar 

  26. B. J. Nelson; Remote Procedure Call; Report #CLS-81-9, Palo Alto Research Center, Xerox Corporation, Palo Alto, California; 1981.

    Google Scholar 

  27. 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. Open Software Foundation; OSF Architecture-Neutral Distribution Format Rationale; 1991.

    Google Scholar 

  29. P. C. Poole and W. M. Waite: Machine Independent Software; Proc. ACM 2nd Symp. Operating System Principles, Princeton, New Jersey; 1969.

    Google Scholar 

  30. 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. M. Reiser; Private Communication; 1989.

    Google Scholar 

  32. M. Richards; The Portability of the BCPL Compiler; Software-Practice and Experience, 1:2, 135–146; 1971.

    Google Scholar 

  33. 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. 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. 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. K. Thompson and D. M. Ritchie; The UNIXTime-Sharing System; Comm. ACM, 17:2, 1931–1946; 1974.

    Google Scholar 

  37. W. F. Tichy; Smart Recompilation; ACM Trans. Programming Languages and Systems, 8:3, 273–291; 1986.

    Google Scholar 

  38. 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. 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. 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. T. A. Welch; ATechnique for High-Performance Data Compression; IEEE Computer, 17:6, 8–19; 1984.

    Google Scholar 

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

    Google Scholar 

  43. N. Wirth and J. Gutknecht; The Oberon System, Software-Practice and Experience, 19:9, 857–893; 1989.

    Google Scholar 

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

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Jürg Gutknecht

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Franz, M. (1994). Technological steps toward a software component industry. In: Gutknecht, J. (eds) Programming Languages and System Architectures. Lecture Notes in Computer Science, vol 782. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57840-4_36

Download citation

  • DOI: https://doi.org/10.1007/3-540-57840-4_36

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57840-6

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics