Abstract
Qualifying types represent a new approach to modifying the behaviour of instances of other types in a general way, in the form of components which can be designed and implemented without a prior knowledge of the types to be modified or their implementations. This paper illustrates the idea by showing how they can be used to program various standard synchronisation problems, including mutual exclusion, reader-writer synchronisation and several variants of the bounded buffer problem.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
F. Achermann and O. Nierstrasz, “Applications = Components + Scripts-A Tour of Piccola,” in Software Architectures and Component Technology, M. Aksit, Ed.: Kluwer, 2001, pp. 261–292.
L. Bergmans and M. Aksit, “Composing Crosscutting Concerns Using Composition Filters,” Communications of the ACM, vol. 44, no. 10, pp. 51–57, 2001.
G. Bracha and W. R. Cook, “Mixin-based Inheritance,” ECOOP/OOPSLA’ 90, Ottawa, Canada, 1990, ACM SIGPLAN Notices, vol. 25, no. 10, pp. 303–311.
P. J. Courtois, F. Heymans, and D. L. Parnas, “Concurrent Control with Readers and Writers,” Communications of the ACM, vol. 14, no. 10, pp. 667–668, 1971.
L. G. DeMichiel and R. P. Gabriel, “The Common Lisp Object System: An Overview,” ECOOP’ 87, Paris, 1987, Springer-Verlag, LNCS, vol. 276, pp. 151–170.
M. Evered, J. L. Keedy, G. Menger, and A. Schmolitzky, “Genja-A New Proposal for Genericity in Java,” 25th International Conf. on Technology of Object-Oriented Languages and Systems, Melbourne, 1997, pp. 169–178.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software: Addison-Wesley, 1995.
D. Holmes, J. Noble, and J. Potter, “Aspects of Synchronisation,” 25th International Conference on Technology of Object-Oriented Languages and Systems, Melbourne, 1997, pp. 7–18.
J. L. Keedy, K. Espenlaub, G. Menger, A. Schmolitzky, and M. Evered, “Software Reuse in an Object Oriented Framework: Distinguishing Types from Implementations and Objects from Attributes,” 6th International Conference on Software Reuse, Vienna, 2000, pp. 420–435.
J. L. Keedy, G. Menger, and C. Heinlein, “Support for Subtyping and Code Re-use in Timor,” 40th International Conference on Technology of Object-Oriented Languages and Systems (TOOLS Pacific 2002), Sydney, Australia, 2002, Conferences in Research and Practice in Information Technology, vol. 10, pp. 35–43.
J. L. Keedy, G. Menger, and C. Heinlein, “Inheriting from a Common Abstract Ancestor in Timor,” Journal of Object Technology (www.jot.fm), vol. 1, no. 1, pp. 81–106, 2002.
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin, “Aspect-Oriented Programming,” ECOOP’ 97, 1997, pp. 220–242.
G. Kiczales, E. Hilsdale, J. Hugonin, M. Kersten, J. Palm, and W. G. Griswold, “An Overview of AspectJ,” ECOOP 2001-Object-Oriented Programming, 2001, Springer Verlag, LNCS, vol. 2072, pp. 327–353.
B. B. Kristensen, O. L. Madsen, B. Moller-Pedersen, and K. Nygaard, “The Beta Programming Language,” in Research Directions in Object-Oriented Programming: MIT Press, 1987, pp. 7–48.
B. Liskov and J. M. Wing, “A Behavioral Notion of Subtyping,” ACM Transactions on Programming Languages and Systems, vol. 16, no. 6, pp. 1811–1841, 1994.
B. Meyer, Eiffel: the Language. New York: Prentice-Hall, 1992.
M. Mezini, “Dynamic Object Evolution without Name Collisions,” ECOOP’ 97, 1997, Springer Verlag, LNCS, vol. 1241, pp. 190–219.
K. Ostermann and M. Mezini, “Object-Oriented Composition Untangled,” OOPSLA’ 01, Tampa, Florida, 2001, ACM SIGPLAN Notices, vol. 36, no. 11, pp. 283–299.
D. L. Parnas, “On the Criteria To Be Used in Decomposing Systems into Modules,” Communications of the ACM, vol. 15, no. 12, pp. 1053–1058, 1972.
G. A. Pascoe, “Encapsulators: A New Software Paradigm in Smalltalk-80,” OOPSLA’ 86, 1986, pp. 341–346.
O. Spinczyk, A. Gal, and W. Schröder-Preikschat, “AspectC++: An Aspect-Oriented Extension to the C++ Programming Language,” 40th International Conference on Technology of Object-Oriented Languages and Systems (TOOLS Pacific 2002), Sydney, Australia, 2002, Conferences in Research and Practice in Information Technology, vol. 10, pp. 53–60.
J. Welsh and D. W. Bustard, “Pascal-Plus-Another Language for Modular Multiprogramming,” Software-Practice and Experience9, pp. 947–957, 1979.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Leslie Keedy, J., Menger, G., Heinlein, C., Henskens, F. (2003). Qualifying Types Illustrated by Synchronisation Examples. In: Aksit, M., Mezini, M., Unland, R. (eds) Objects, Components, Architectures, Services, and Applications for a Networked World. NODe 2002. Lecture Notes in Computer Science, vol 2591. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36557-5_24
Download citation
DOI: https://doi.org/10.1007/3-540-36557-5_24
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-00737-1
Online ISBN: 978-3-540-36557-0
eBook Packages: Springer Book Archive