This paper introduces a temporal logic based on precedence constraints among events which captures net semantics, i.e. a particular net can be mapped into a semantic-equivalent formula in the logic. Tempo, a declarative concurrent programming language, is based on such logic and has a procedural interpretation which allows specifications to be executed as concurrent programs. Thus, the execution of a net may be simulated by executing a semantic-equivalent formula as a Tempo program. Tempo++, an object-oriented extension of Tempo is presented. In this framework, concurrency issues are declaratively abstracted by temporal constraints among events. The concurrent behaviour (safety properties) of programs is explicitly specified which provides great advantages in writing concurrent programs and manipulating them while preserving correctness. Tempo++, separates concurrency issues from the code, minimizing dependency between application functionality and concurrency control, thus, increasing program reuse and program flexibility.
The full paper is available in PostScript format.