Technological Steps toward a Software Component Industry

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.

[1]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[2]  L. Peter Deutsch,et al.  Efficient implementation of the smalltalk-80 system , 1984, POPL.

[3]  Michael Franz Emulating an operating system on top of another , 1993, Softw. Pract. Exp..

[4]  Kathleen Jensen,et al.  Pascal-P Implementation Notes , 1981, Pascal - The Language and its Implementation.

[5]  Hanspeter Mössenböck The Oberon System , 1992, TOOLS.

[6]  Marvin V. Zelkowitz,et al.  Programming Languages: Design and Implementation , 1975 .

[7]  William M. Waite,et al.  Machine independent software , 1969, SOSP '69.

[8]  Melvin E. Conway,et al.  Proposal for an UNCOL , 1958, CACM.

[9]  Stuart I. Feldman,et al.  Make — a program for maintaining computer programs , 1979, Softw. Pract. Exp..

[10]  Owen R. Mock,et al.  The problem of programming communication with changing machines: a proposed solution , 1958, CACM.

[11]  Martin Richards The portability of the BCPL compiler , 1971, Softw. Pract. Exp..

[12]  David W. Wall,et al.  Predicting program behavior using real or estimated profiles , 2004, SIGP.

[13]  Randall B. Smith,et al.  SELF: The power of simplicity , 1987, OOPSLA '87.

[14]  W. G. Morris,et al.  CCG: a prototype coagulating code generator , 1991, PLDI '91.

[15]  Christopher W. Fraser,et al.  Code selection through object code optimization , 1984, TOPL.

[16]  Michael Franz,et al.  The Oberon System family , 1995, Softw. Pract. Exp..

[17]  B. Ramakrishna Rau,et al.  Levels of representation of programs and the architecture of universal host machines , 1978, MICRO 11.

[18]  Niklaus Wirth,et al.  The programming language oberon , 1988, Softw. Pract. Exp..

[19]  Walter F. Tichy,et al.  Smart recompilation , 1986, TOPL.

[20]  Terry A. Welch,et al.  A Technique for High-Performance Data Compression , 1984, Computer.

[21]  Michael Franz The Case for Universal Symbol Files , 1993, Struct. Program..

[22]  A. Retrospective,et al.  The UNIX Time-sharing System , 1977 .

[23]  Carl H. Hauser,et al.  Experiences creating a portable cedar , 1989, PLDI '89.

[24]  Richard L. Sites,et al.  Binary translation , 1993, CACM.

[25]  Craig Chambers,et al.  An efficient implementation of SELF, a dynamically-typed object-oriented language based on prototypes , 1989, OOPSLA '89.

[26]  Ken Thompson,et al.  The UNIX time-sharing system , 1974, The Bell System Technical Journal.

[27]  Patricia Florissi,et al.  On remote procedure call , 1992, CASCON.

[28]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[29]  Niklaus Wirth,et al.  Project Oberon - the design of an operating system and compiler , 1992 .

[30]  Wilco Koorn,et al.  Substring parsing for arbitrary context-free grammars , 1991, SIGP.

[31]  David William Barron Pascal - The Language and its Implementation , 1981, Pascal - The Language and its Implementation.

[32]  Mahadevan Ganapathi,et al.  Attributed linear intermediate representations for retargetable code generators , 1984, Softw. Pract. Exp..

[33]  Clemens A. Szyperski,et al.  Write-ing Applications: Design of an Extensible Text Editor as an Application Framework , 1992, TOOLS.

[34]  Michael Franz The implementation of MacOberon , 1990 .

[35]  Ralph E Griswold,et al.  The macro implementation of SNOBOL4;: A case study of machine-independent software development , 1972 .

[36]  Peter J. Brown Throw‐away compiling , 1976, Softw. Pract. Exp..