Abstract
Implicit invocation based on event announcement is an increasingly important technique for integrating systems. However, the use of this technique has largely been confined to tool integration systems—in which tools exist as independent processes—and special-purpose languages—in which specialized forms of event broadcast are designed into the language from the start. This paper broadens the class of systems that can benefit from this approach by showing how to augment general-purpose programming languages with facilities for implicit invocation. We illustrate the approach in the context of three different languages, Ada, C++, and Common Lisp. The intent is to highlight the key design considerations that arise in extending such languages with implicit invocation.
This research was supported in part by the National Science Foundation under Grant Numbers CCR-9112880, CCR-9113367, CCR-8858804, and CCR-9211002, by DARPA Grant MDA 972-92-J-1002, by Siemens Corporate Research, and by SRA (Tokyo Japan). The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the U.S. Government, of the Siemens Corporation, or of SRA.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
[Ada 83] Reference Manual for the Ada Programming Language. United States Department of Defense (January 1983).
[Cohen 89] D. Cohen. Compiling Complex Transition Database Triggers. Proceedings of the 1989 ACM SIGMOD (1989).
[Dayal, Hsu & Ladin 90] U. Dayal, M. Hsu, and R. Ladin. Organizing Long-Running Activities with Triggers and Transactions. In Proceedings of the 1990 ACM SIGMOD (June 1990).
[Garlan & Ilias 91] D. Garlan and E. Ilias. Low-cost, Adaptable Tool Integration Policies for Integrated Environments. Proceedings of SIGSOFT '90: Fourth Symposium on Software Development Environments. Irvine, CA (December 1990).
[Garlan, Kaiser & Notkin 92] D. Garlan, G.E. Kaiser, and D. Notkin. Using Tool Abstraction to Compose Systems. IEEE Computer (June 1992).
[Garlan & Notkin 91] D. Garlan and D. Notkin. Formalizing Design Spaces: Implicit Invocation Mechanisms. Proceedings of VDM'91: Formal Software Development Methods. Springer-Verlag, LNCS 551 (October, 1991).
[Garlan & Scott 93] D. Garlan and C. Scott. Adding Implicit Invocation to Traditional Programming Languages Proceedings of the 15th International Conference on Software Engineering. IEEE Computer Society Press, pp. 447–455 (May 1993).
[Garlan et al. 92] D. Garlan, M. Shaw, C. Okasaki, C. Scott, and R. Swonger. Experience with a Course on Architectures for Software Systems. Proceedings of the SEI Conference on Software Engineering Education (October 1992).
[Gerety 89] C. Gerety. HP SoftBench: A New Generation of Software Development Tools. Technical Report SESD-89-25, Hewlett-Packard Software Engineering Systems Division, Fort Collins, Colorado (November 1989).
A. Goldberg and D. Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley (1983).
[Goldberg & Robson 83] W.G. Griswold. Program Restructuring as an Aid to Software Maintenance. Department of Computer Science & Engineering, University of Washington (1991).
[Griswold & Notkin 93] W.G. Griswold and D. Notkin. Automated Assistance for Program Restructuring. To appear, ACM Transactions on Software Engineering and Methodology (July 1993).
[Habermann, Garlan & Notkin 91] A.N. Habermann, D. Garlan and D. Notkin. Generation of Integrated Task-Specific Software Environments. In CMU Computer Science: A 25th Commemorative. ACM Press (1990).
[Hewitt 69] C. Hewitt. PLANNER: A Language for Proving Theorems in Robots. Proceedings of the First International Joint Conference in Artificial Intelligence., Washington DC (1969).
[Krasner & Pope 88] G.E. Krasner and S.T. Pope. A Cookbook for Using the ModelView-Controller User Interface Paradigm in Smalltalk-80. Journal of Object Oriented Programming 1,3 (August/September 1988), pp. 26–49.
[Larus 89] J.R. Larus. Restructuring Symbolic Programs for Concurrent Execution on Multiprocessors. UC Berkeley Computer Science (May 1989).
[Luckham and won Henke 85] D. Luckham and F.W. von Henke. An Overview of Anna, a Specification Language for Ada. IEEE Software (March 1985).
[Myers et al. 90] B.A. Myers, D.A. Giuse, R.B. Dannenberg, B. Vander Zanden, D.S. Kosbie. E. Pervin, A. Mickish, and P. Marchai. Garnet: Comprehensive Support for Graphical, Highly-Interactive User Interfaces. IEEE Computer 23,11, pp. 71–85 (November 1990).
[Reiss 90] S.P. Reiss. Connecting Tools using Message Passing in the Field Environment. IEEE Software 7, 4 (July 1990).
[Rowe et al. 91] L.A. Rowe, J.A. Konstan, B.C. Smith, S. Seitz, and C. Li. The PICASSO Application Framework. Proceedings of the 14th ACM Symposium on User Interface Software and Technology (1991).
[Scheifler and Gettys 86] R.W. Scheifler and J. Gettys. The X Window System. ACM Transactions on Graphics 5,2, pp. 79–109 (April 1986).
[Steele 91] G.L. Steele. COMMON LISP, the Language, 2nd edition. Digital Press, Burlington MA (1991).
[Stroustrup 87] B. Stroustrup. The C++ Programming Language. Addison-Wesley, Reading, MA (1987).
[Sullivan & Notkin 92] K.J. Sullivan and D. Notkin. Reconciling Environment Integration and Software Evolution. ACM Transactions on Software Engineering and Methodology 1,3 (July 1992).
[Sutton, Heimbigner & Osterweil 90] S.M. Sutton, Jr., D. Heimbigner, & L.J. Osterweil. Language Constructs for Managing Change in Process-Centered Environments. Proceedings of ACM SIGSOFT90: Fourth Symposium on Software Development Environments, pp. 206–217 (December 1990).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1993 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Notkin, D., Garland, D., Griswold, W.G., Sullivan, K. (1993). Adding implicit invocation to languages: Three approaches. In: Nishio, S., Yonezawa, A. (eds) Object Technologies for Advanced Software. ISOTAS 1993. Lecture Notes in Computer Science, vol 742. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57342-9_91
Download citation
DOI: https://doi.org/10.1007/3-540-57342-9_91
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57342-5
Online ISBN: 978-3-540-48075-4
eBook Packages: Springer Book Archive