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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Apple Computer, Inc.; Inside Macintosh; Addison-Wesley; 1985ff.
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.
M. Brandis, R. Crelier, M. Franz and J. Templ; The Oberon System Family; Report #174, Departement Informatik, ETH Zurich; 1992.
P.J. Brown; Throw-Away Compiling; Software-Practice and Experience, 6:3,423–434; 1972.
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.
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.
M. E. Conway, Proposal for an UNCOL; Comm. ACM, 1:10 5–8; 1958.
J. W. Davidson and C. W. Fraser; Code Selection through Object Code Optimization; ACM Trans. Programming Languages and Systems, 6:4, 505–526; 1984.
United Kingdom Defence Research Agency; TDF Specification, Issue 2.1;June 1993.
United Kingdom Defence Research Agency; A Guide to the TDF Specification, Issue 2.1.0;June1993.
United Kingdom Defence Research Agency; Frequently Asked Questions about ANDF, Issue 1:1; June 1993.
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.
S. I. Feldman; Make: A Program for Maintaining Computer Programs; Software-Practice and Experience, 9:4, 255–265; 1979.
M. Franz; The Implementation of MacOberon; Report #141, Departement Informatik, ETH Zürich; 1990.
M. Franz; Emulating an Operating System on Top of Another; Software-Practice and Experience, 23:6, 677–692; June 1993.
M. Franz; The Case for Universal Symbol Files; Structured Programming, 14:3, 136–147; October 1993.
M. Franz and S. Ludwig; Portability Redefined; Proc. 2nd Int. Modula-2 Conf, Loughborough, England; 1991.
M. Ganapathi and C. N. Fischer; Attributed Linear Intermediate Representations for Retargetable Code Generators; Software-Practice and Experience, 14:4, 347–364; 1984.
A. Goldberg and D. Robson; Smalltalk-80: The Language and its Implementation; Addison-Wesley; 1983.
R. E. Griswold; The Macro Implementation of SNOBOL4: A Case Study in Machine-Independent Software Development; Freeman, San Francisco; 1972.
B. W. Kernighan and D. M. Ritchie; The C Programming language; Prentice-Hall; 1978.
S. Macrakis; Protecting Source Code with ANDF; Open Software Foundation Research Institute; June 1993.
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.
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.
Motorola, Inc.; M68030 Enhanced 32-bit Microprocessor User's Manual; Motorola Customer Order No. MC68020UM/AD;1987.
B. J. Nelson; Remote Procedure Call; Report #CLS-81-9, Palo Alto Research Center, Xerox Corporation, Palo Alto, California; 1981.
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.
Open Software Foundation; OSF Architecture-Neutral Distribution Format Rationale; 1991.
P. C. Poole and W. M. Waite: Machine Independent Software; Proc. ACM 2nd Symp. Operating System Principles, Princeton, New Jersey; 1969.
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.
M. Reiser; Private Communication; 1989.
M. Richards; The Portability of the BCPL Compiler; Software-Practice and Experience, 1:2, 135–146; 1971.
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.
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.
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.
K. Thompson and D. M. Ritchie; The UNIXTime-Sharing System; Comm. ACM, 17:2, 1931–1946; 1974.
W. F. Tichy; Smart Recompilation; ACM Trans. Programming Languages and Systems, 8:3, 273–291; 1986.
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.
D. Ungar and R. B. Smith; Self: The Power of Simplicity; OOPSIA '87 Conf Proc., published as Sigplan Notices, 22:12, 227–242; 1987.
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.
T. A. Welch; ATechnique for High-Performance Data Compression; IEEE Computer, 17:6, 8–19; 1984.
N. Wirth:The Programming Language Oberon; Software-Practice and Experience,18:7, 671–690; 1988.
N. Wirth and J. Gutknecht; The Oberon System, Software-Practice and Experience, 19:9, 857–893; 1989.
N. Wirth and J. Gutknecht, Project Oberon: The Design of an Operating System and Compiler; Addison-Wesley;1992.
Author information
Authors and Affiliations
Editor information
Rights 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