This page gives a brief introduction to logical time and CCSL.

Logical time was first introduced by Lamport to represent the execution of distributed systems [6]. It has then been extended and used in distributed systems to check the communication and causality path correctness [5]. During the same period, Logical time has also been intensively used in synchronous languages [2, 3] for its polychronous nature (i.e., based on several time references). In the synchronous domain it has proved to be adaptable to any level of description, from very flexible causal time descriptions to very precise scheduling descriptions [4]. Finally, the notion of logical time is often used every day when any event is taken as a reference.

For instance, consider the sentence “Task1 is started twice as often as Task2”. An event is then expressed relative to another one, that is used as a reference. No reference to physical time is given. Although, if the activation period of Task1 is given, then the activation period of Task2 can be deduced. If one is increased, the other one is directly impacted. This is the main idea of using logical time. In this context, physical time is a particular case of logical time where the event generated by a physical clock is taken as the reference. This model of time is precisely defined in the foundations of UML profile for Modeling and Analysis of Real-Time and Embedded systems (MARTE) [7]. It can be applied in a standard way on any UML-based model. The main impact is the possibility to specify the logical events - that depict the dynamics of the system - at the same level than the UML-based structural elements.

The Clock Constraint Specification Language (CCSL) was introduced as a companion language of the UML MARTE profile. It provides a set of often-used time patterns that can express causal and chronological relationships between events occurring within a model. Events can be abstracted by a (logical) clock, where each instant represents one occurrence of the event. Clocks, defined by the «Clock» stereotype, are possibly infinite and possibly dense totally ordered sets of instants. Clock instants are, at the same time, the observation of some event occurrences and model elements that dictate when events can or cannot occur. When the set of instants is discrete (i.e., belonging to a discrete clocks), we can sort the instants according to their chronological occurrences and we can identify each instant by an index (i ∈ N ). c[i] denotes the one instant of the clock c so that exactly i − 1 instants of c have occurred before it. Full details about the structured operational semantics of CCSL are available as a research report [1]. We only recall here only some relations to give the flavour. A clock is a totally ordered set of instants. A time structure, denoted θ, is a set of clocks C and a set of relations on instants. CCSL considers two kinds of relations: causal and temporal ones. The basic causal relation is causality/dependency, i ≤ j means i causes j or j depends on i. The basic temporal relations are precedence (<), coincidence (≡), and exclusion (#). For any instants i and j in a time structure, i < j means that the only acceptable execution traces are those where i occurs strictly before (precedes) j. i ≡ j imposes instants i and j to be coincident, i.e., they must always occur at the same execution step, both of them or none of them. i # j forbids the coincidence of the two instants, i.e., they cannot occur at the same execution step. Note that, some consistency rules must be enforced between causal and temporal relations. i ≤ j can be refined either as i j or i ≡ j, but j can never precede i.

1. André , C.: Syntax and Semantics of the Clock Constraint Specification Language
(CCSL). Research Report RR-6925, INRIA (2009). URL
2. Benveniste, A., Le Guernic, P., Jacquemot, C.: Synchronous programming with events and
relations: the SIGNAL language and its semantics. Sci. Comput. Program. 16(2), 103–149
3. Berry, G.: The foundations of Esterel. Proof, Language and Interaction: Essays in Honour of
Robin Milner pp. 425–454 (2000)
4. Boussinot, F., De Simone, R.: The ESTEREL language. Proceedings of the IEEE 79(9), 1293–
1304 (2002)
5. Fidge, C.: Logical time in distributed computing systems. Computer 24(8), 28–33 (2002)
6. Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications
of the ACM 21(7), 558–565 (1978)
7. OMG: UML Profile for MARTE, v1.0. Object Management Group (2009). Document num-
ber: formal/09-11-02