2.2.1. Operations as virtual threads of control

[Meyer93] notes that "In ordinary sequential computation, there is only one processor, which is why it tends to remain implicit" (meaning by processor a "virtual thread of control"). We generalize this interesting idea by saying that there is no model of time (and thus that time is implicit): functions have no duration. The elimination of time is actually unfortunate, as communication needs disclose it.

In an object-oriented language, a type may be bound to any concept relevant in the application domain, and we may define types with a temporal dimension. At first glance, this should remind of tasks, as used in operating system design.

These temporal classes can also be considered a generalization of transactions: transactions are very attractive as a building block for composition, thank to their semantical simplicity -they leave the system in either of two states, both known in advance. However, transactions are unfortunately too restrictive to be used systematically to define interfaces (some trivial long-term interactions between objects never commit; this could be e.g. the case of objects maintaining a representation of others).

We decide to call these entities operations, choosing the most generic word to emphasize the fact that we intend to use them systematically to represent any identifiable behaviour of objects. Operations are typed, meaning that they are specialized for some purpose.

Table of contents


Marc Girod
Last modified: Sat Feb 28 14:23:51 EET 1998