Computer Science – Programming Languages
Scientific paper
2011-10-19
EPTCS 69, 2011, pp. 12-28
Computer Science
Programming Languages
In Proceedings PLACES 2010, arXiv:1110.3853
Scientific paper
10.4204/EPTCS.69.2
There is often a sort of a protocol associated to each class, stating when and how certain methods should be called. Given that this protocol is, if at all, described in the documentation accompanying the class, current mainstream object-oriented languages cannot provide for the verification of client code adherence against the sought class behaviour. We have defined a class-based concurrent object-oriented language that formalises such protocols in the form of usage types. Usage types are attached to class definitions, allowing for the specification of (1) the available methods, (2) the tests clients must perform on the result of methods, and (3) the object status - linear or shared - all of which depend on the object's state. Our work extends the recent approach on modular session types by eliminating channel operations, and defining the method call as the single communication primitive in both sequential and concurrent settings. In contrast to previous works, we define a single category for objects, instead of distinct categories for linear and for shared objects, and let linear objects evolve into shared ones. We introduce a standard sync qualifier to prevent thread interference in certain operations on shared objects. We formalise the language syntax, the operational semantics, and a type system that enforces by static typing that methods are called only when available, and by a single client if so specified in the usage type. We illustrate the language via a complete example.
Campos Joana
Vasconcelos Vasco T.
No associations
LandOfFree
Channels as Objects in Concurrent Object-Oriented Programming does not yet have a rating. At this time, there are no reviews or comments for this scientific paper.
If you have personal experience with Channels as Objects in Concurrent Object-Oriented Programming, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Channels as Objects in Concurrent Object-Oriented Programming will most certainly appreciate the feedback.
Profile ID: LFWR-SCP-O-596691