Gregory Abowd, Robert Allen and
David Garlan. Using Style to Understand Descriptions of Software Architecture. In Proceedings of SIGSOFT'93: Foundations of Software Engineering, ACM Press. Software Engineering Notes, Vol. 18, No. 5, pp. 9-20. December, 1993.
https://doi.org/10.1145/256428.167055.
Abstract: The software architecture of most systems is described informally and diagrammatically. In order for these descriptions to be meaningful at all, figures are understood by interpreting the boxes and lines in specific, conventionalized ways. The imprecision of these interpretations has a number of limitations. In this paper we consider these convetionalized interpretations as architectural styles and provide a formal framework for their uniform definition. In addition to providing a template for precisely defining new architectural styles, this framework allows for the proof that the notational constraints on a style are sufficient to guarantee the meanings of all described systems and provides a unified semantic base through which different stylistic interpretations can be compared.
David Notkin,
David Garlan, William Griswold and Kevin Sullivan. Adding Implicit Invocation to Languages: Three Aproaches. In Proceedings of the JSSST Symp. Object Technologies for Advanced Software, Spring-Verlag. Lecture Notes in Computer Science, Vol. 742. November, 1993.
https://doi.org/10.1007/3-540-57342-9_91.
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.