Abstract
Re-entrance can cause errors in stateful objects by exposing transient states; however, re-entrance can only be constrained programmatically in most modern object-oriented languages. Re-entrance is a global system behaviour that is of particular concern in component-based applications, which are, by definition, incomplete. This paper describes programming language constructs that constrain re-entrance by bounding control flow through stateful objects. Interface types are extended with object state information while component types (modules) are extended with a layering over those types. The type system uses a combination of dynamic and static checking to bound control flow through stateful objects, while a composition check is used to ensure the combined type layering of a program is consistent. Our extensions restrict unchecked re-entrance while allowing a programmer to design for specific cases of re-entrance where necessary.
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
Szyperski, C.: Component Software, Beyond Object–Oriented Programming, 1st edn. Addison–Wesley, Harlow (1998)
Kent, S., Ho-Stuart, C., Roe, P.: Negotiable interfaces for components. Journal of Object Technology, Special Issue: TOOLS USA 2002 proceedings 1, 249–265 (2002)
Agha, G.: Actors: A Model of Concurrent Computation in Distributed Systems. Series in Artificial Intelligence. MIT Press, Cambridge (1986)
van den Bos, J., Laffra, C.: PROCOL: A concurrent object-language with protocols, delegation and persistence. Acta Informatica 28, 511–538 (1991)
de Bruin, H.: BCOOPL: Basic concurrent object-oriented programming language. Software - Practice and Experience (SPE) 30, 849–894 (2000)
Kafura, D.G., Lee, K.H.: ACT++: Building a concurrent c++ with actors. Journal of Object-Oriented Programming 3 (1990)
Balter, R., Lacourte, S., Riveill, M.: The Guide language. The Computer Journal 37, 519–530 (1994)
Nierstrasz, O.: Regular types for active objects. In: Nierstrasz, O., Tsichritzis, D. (eds.) Object-Oriented Software Composition, pp. 99–121. Prentice Hall, Englewood Cliffs (1995)
Wehrheim, H.: Subtyping patterns for active objects. In: Proceedings 8ter Workshop des GI Arbeitskreises GROOM (Grundlagen objekt-orientierter Modellierung): Visuelle Verhaltensmodellierung verteilter und nebenläufiger Software- Systeme, Muenster (2000)
Puntigam, F.: Types for active objects based on trace semantics. In: 1st IFIP Workshop on Formal Methods for Open Object-based Distributed Systems (FMOODS 1996), Paris, France (1996)
Puntigam, F.: Coordination requirements expressed in types for active objects. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 367–388. Springer, Heidelberg (1997)
Puntigam, F., Peter, C.: Changeable interfaces and promised messages for concurrent components. In: ACM Symposium on Applied Computing (SAC 1999), San Antonio, Texas (1999)
Reussner, R.: Formal foundations of dynamic types for software components. Technical Report 08/2000, Department of Informatics, Universität Karlsruhe, Department of Informatics (2000)
Reussner, R.: Enhanced component interfaces to support dynamic adaptation and extension. In: Proceedings of the 34th Annual Hawaii International Conference on System Sciences, HICSS–34 (2001)
gpcp: Gardens point component pascal (2001), http://www.fit.qut.edu.au/CompSci/PLAS/ComponentPascal/
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
Kent, S. (2003). A Layered Type System for Re-entrance Control. In: Böszörményi, L., Schojer, P. (eds) Modular Programming Languages. JMLC 2003. Lecture Notes in Computer Science, vol 2789. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45213-3_12
Download citation
DOI: https://doi.org/10.1007/978-3-540-45213-3_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40796-6
Online ISBN: 978-3-540-45213-3
eBook Packages: Springer Book Archive