Abstract
Almost no object oriented programming languages offer distinct language constructs for the definition of types and their implementations; instead these are united into a single class concept. Similarly object oriented programming languages do not normally distinguish between object types, which may be independently instantiated, and attribute types, which may not. The paper shows how these distinctions can be used to develop both a specialized and a generalized bracket technique, and how the ideas lead to interesting possibilities for reusing code in a flexible and modular way.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Batory, D., Singhal, J., Thomas, J., Dasari, S., Geraci, B., Sirkin, M.: The GenVoca Model of Software-System Generators. IEEE Software, 89–94 (1994)
Baumgartner, G., Russo, V.F.: Signatures: A Language Extension for Improving Type Abstraction and Subtype Polymorphism in C++. Software - Practice and Experience 25(8), 863–889 (1995)
Black, A., Hutchinson, N., Jul, E., Levy, H.: Object Structure in the Emerald System. In: Proceedings of the OOPSLA 1986, ACM SIGPLAN Notices, Portland, Oregon, vol. 21 (1986)
Black, A., Hutchinson, N., Jul, E., Levy, H., Carter, L.: Distribution and Abstract Types in Emerald. IEEE Transactions on Software Engineering SE-13(1), 65–76 (1987)
Bracha, G., Cook, W.: Mixin-based Inheritance. In: Proceedings of the ECOOP/OOPSLA 1990, pp. 303–311 (1990)
Courtois, P.J., Heymans, F., Parnas, D.L.: Concurrent Control with Readers and Writers. Communications of the ACM 14(10), 667–668 (1971)
DeMichiel, L., Gabriel, R.: The Common Lisp Object System: An Overview. In: Proceedings of the ECOOP 1987, pp. 151–170 (1987)
Edwards, S.H., Shakir, G., Sitaraman, M., Weide, B.W., Hollingsworth, J.E.: A Framework for Detecting Interface Violations in Component-Based Software. In: Proceedings of the 5th International Conference on Software Reuse, pp. 46–55. IEEE, Los Alamitos (1998)
Evered, M., Keedy, J.L., Schmolitzky, A., Menger, G.: How Well Do Inheritance Mechanisms support Inheritance Concepts? In: Mössenböck, H. (ed.) JMLC 1997. LNCS, vol. 1204. Springer, Heidelberg (1997)
Feathers, M.C.: Factoring Class Capabilities with Adjectives. Journal of Object Oriented Programming 12(1), 28–34 (1999)
Goguen, J.A.: Parameterized Programming. IEEE Transactions on Software Engineering SE-10(5), 528–543 (1984)
Goguen, J.A., Tracz, W.: An Implementation-Oriented Semantics for Module Composition. In: Leavens, G., Sitaraman, M. (eds.) Foundations of Component-based Systems, Cambridge (2000)
Goldberg, A., Robson, D.: Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading (1983)
Gosling, J., Joy, B., Steele, G.: The Java Language Specification. Addison-Wesley, Reading (1996)
Guttag, J., Horning, J.J.: The Algebraic Specification of Abstract Data Types. Acta Informatica 10(1), 27 (1978)
Keedy, J.L., Evered, M., Schmolitzky, A., Menger, G.: Attribute Types and Bracket Implementations. In: Proceedings of the 25th International Conference on Technology of Object Oriented Systems, TOOLS 25, Melbourne, pp. 325–337 (1997)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kristensen, B.B., Madsen, O.L., Moller-Pedersen, B., Nygaard, K.: The Beta Programming Language. In: Research Directions in Object-Oriented Programming, pp. 7–48. MIT Press, Cambridge (1987)
Leavens, G.T.: Modular Specification and Verification of Object-Oriented Programs. IEEE Software, 72–80 (July 1991)
Liskov, B., Curtis, D., Day, M., Ghemawat, S., Gruber, R., Johnson, P., Myers, A.C.: Theta Reference Manual, Report Number 88, MIT Laboratory for Computer Science, Cambridge, MA (1994)
Meyer, B.: Eiffel: the Language. Prentice-Hall, New York (1992)
Parnas, D.L.: On the Criteria to be Used in Decomposing Systems into Modules. Comm. ACM 15(12), 1053–1058 (1972)
Parnas, D.L.: A Technique for Module Specification with Examples. Comm. ACM 15(5), 330–336 (1972)
Pascoe, G.A.: Encapsulators: A New Software Paradigm in Smalltalk-80. In: Proceedings of the OOPSLA 1986, pp. 341–346 (1986)
Schmolitzky, A.: Ein Modell zur Trennung von Vererbung und Typabstraktion in objektorientierten Sprachen [A Model for Separating Inheritance and Type Abstraction in Object Oriented Languages], Dr. rer. nat. [Ph.D.] Thesis, University of Ulm (1999)
Sitaraman, M., Weide, B.: Component-Based Software Using Resolve. ACM SIGSOFT Software Engineering Notes 19(4), 21–67 (1994)
Snyder, A.: Encapsulation and Inheritance in Object-Oriented Programming Languages. In: Proceedings of the OOPSLA 1986, ACM SIGPLAN Notices, Portland, Oregon, vol. 21 (1986)
Soundarajan, N., Fridella, S.: Inheriting and Modifying Behavior. In: Proceedings of the 23rd International Conference on Technology of Object Oriented Systems, TOOLS 23, pp. 148–162. IEEE Computer Society Press, Los Alamitos (1998)
Szyperski, C., Omohundro, S., Murer, S.: Engineering a Programming Language: The Type and Class System of Sather. In: Programming Languages and System Architectures, Jurg Gutknecht, pp. 208–227. Springer, Heidelberg (1993)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Keedy, J.L., Espenlaub, K., Menger, G., Schmolitzky, A., Evered, M. (2000). Software Reuse in an Object Oriented Framework: Distinguishing Types from Implementations and Objects from Attributes. In: Frakes, W.B. (eds) Software Reuse: Advances in Software Reusability. ICSR 2000. Lecture Notes in Computer Science, vol 1844. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-44995-9_25
Download citation
DOI: https://doi.org/10.1007/978-3-540-44995-9_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67696-6
Online ISBN: 978-3-540-44995-9
eBook Packages: Springer Book Archive