Abstract
The ability to extend programs dynamically has clear advantages. However, providing efficient yet sufficiently flexible support for such capabilities system-wide presents significant challenges. We describe a design and implementation of an extension mechanism that depends heavily on interpretive techniques, including call arbitration, dynamic linking, and multilanguage extensions. We discuss these mechanisms in the context of our Extension Interpreter, which embodies our ideas and provides a framework for discussing the efficiency and generality of the implementation. Our current implementation runs under BSD UNIX 4.2 and 4.3 on VAXes and SUN workstations. Extensions can be written in both C and in Icon, demonstrating our ability to address problems both of compiled and interpreted languages.
- [1] B. N. Bershad, D. T. Ching, E. D. Lazowska., J. Sanislo, and M. Schwartz. A Remote Procedure Call Facility for Heterogeneous Computer Systems. Technical Report 86-09-10, Department of Computer Science, University of Washington (Sep. 1986). To appear, IEEE Trans. on Softw. Engineering. Google ScholarDigital Library
- [2] A. D. Birrell and B. J. Nelson. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems 2,1 (Feb. 1984). Google ScholarDigital Library
- [3] A. P. Black, E. D. Lazowska, H. M. Levy, D. Notkin, J. Sanislo, and J. Zahorjan. Interconnecting Heterogeneous Computer Systems. Tech. Rep. 87-01-02, Dept. of Comp. Sci., Univ. of Washington (Jan. 1987).Google Scholar
- [4] S. R. Bourne. An Introduction to the UNIX Shell. Bell Syst. Tech. J. 57, 6, pp. 2797-2822 (Jul.-Aug. 1978).Google Scholar
- [5] R. Cohn. Command Languages for Window Systems. Thesis proposal., Dept. of Comp. Sci., Carnegie-Mellon Univ. (Apr. 1986).Google Scholar
- [6] J. Gosling. UNIX Emacs. Unipress (1981).Google Scholar
- [7] J. Gosling. SunDew: A Distributed and Extensible Window System. Proc. 1986 Winter USENIX Tech. Conf., pp. 98-103 (1986).Google ScholarCross Ref
- [8] A. Goldberg and D. Robson. Smalltalk- 80: The Language and its Implementation. Addison-Wesley, Reading MA (1983). Google ScholarDigital Library
- [9] R. E. Griswold and M. T. Griswold. The Icon Programming Language Prentice-Hall Inc., Englewood NJ, (1983). Google ScholarDigital Library
- [10] R. E. Griswold. Personalized Interpreters for Version 6 of Icon. Tech. Rep. TR-86-12b, Dept. of Comp. Sci., Univ. of Arizona (May 1986).Google Scholar
- [11] R. Hayes and R. D. Schlichting. Facilitating Mixed-Language Programming in Distributed Systems. To appear, IEEE Trans. on Softw. Engineering. Google ScholarDigital Library
- [12] IBM Virtual Machine/System Product. CMS Command and Macro Reference. SC19- 9209.Google Scholar
- [13] M. B. Jones, R. F. Rashid, and M. R. Thompson. Matchmaker: An Interface Specification Language for Distributed Processing, Proc. 12th ACM Symp. on Principles of Programming Languages (Jan. 1985). Google ScholarDigital Library
- [14] W. Joy. An Introduction to the C shell. In UNIX User's Manual: Supplementary Documents (Mar. 1984).Google Scholar
- [15] J. L. Keedy and J. V. Thomson. Command Interpretation and Invocation in an Information-Hiding System. In The Future of Command Languages: Foundations for Human-Computer Communication. IFIP WG 2.7 Working Conf. (Sep. 1985).Google Scholar
- [16] D. E. Knuth. The TEXTbook. Addison-Wesley (1984). Google ScholarDigital Library
- [17] W. Mitchell. An Icon Subsystem for UNIX Emacs. TR 84-8, Dept. of Comp. Sci., Univ. of Arizona (May 1984).Google Scholar
- [18] D. Notkin, W. G. Griswold, and M. Donner. Large Enhancement through Extension: Analysis and Experiments. Tech. Rep. 87-03- 03, Dept. of Comp. Sci., Univ. of Washington (Mar. 1987).Google Scholar
- [19] D. L. Parnas. Designing Software for Ease of Extension and Contraction. IEEE Trans. on Softw. Eng. SE-5, 2 (Mar. 1979).Google Scholar
- [20] R. Reich. The Macro Maker. MacUser 1, 2 (December 1985).Google Scholar
- [21] B. K. Reid and J. H. Walker. Scribe Introductory User's Manual. Third Edition (1980).Google Scholar
- [22] R. M. Stallman. EMACS - The Extensible, Customizable, Self-Documenting Display Editor. Proc. of the ACM Sigplan/Sigoa Symp. on Text Manip., pp. 147-156 (Jun. 1981). Appears as Sigplan Notices 16, 6 (Jun. 1981). Google ScholarDigital Library
Index Terms
- Enhancement through extension: the extension interpreter
Recommendations
Enhancement through extension: the extension interpreter
SIGPLAN '87: Papers of the Symposium on Interpreters and interpretive techniquesThe ability to extend programs dynamically has clear advantages. However, providing efficient yet sufficiently flexible support for such capabilities system-wide presents significant challenges. We describe a design and implementation of an extension ...
Xoc, an extension-oriented compiler for systems programming
ASPLOS '08Today's system programmers go to great lengths to extend the languages in which they program. For instance, system-specific compilers find errors in Linux and other systems, and add support for specialized control flow to Qt and event-based programs. ...
Xoc, an extension-oriented compiler for systems programming
ASPLOS '08Today's system programmers go to great lengths to extend the languages in which they program. For instance, system-specific compilers find errors in Linux and other systems, and add support for specialized control flow to Qt and event-based programs. ...
Comments