Abstract

A concurrent semantics is a semantics where concurrency can be realistically represented and naturally described. Therefore we believe that every concurrent language should be provided with a formal concurrent semantics. Here we describe three concurrent semantics for concurrent constraint (cc) programs. They are all based on partial order structures relating the various objects involved in the program computations, so that objects not related by the partial order are concurrent, and those related are instead dependent on each other and thus need to be sequentialized. Furthermore, they all employ a distributed representation of the constraint system, so that several sources of useless sequentializations are avoided. The first one is based on a graph-rewriting description of the operational behaviour of cc programs, and consists of a partial order involving all objects of each (equivalence class of) computation(s). The second one uses a simpler notion of context-dependent rewriting for the operational semantics, and consists of an event structure, which is able to represent both the concurrency and the non-determinism present in a cc program but which relates only the computation steps, and not the objects. The last one, instead, consists of a contextual net (that is, a Petri net extended with context condiditions), which again represents both concurrency and nondeterminism and furthermore relates all objects and steps of the computations. The three semantics are compared and it is argued that the last one is the most suitable concurrent semantics for cc programs, since 1) contextual items are a general and elegant way of formalizing ask operations and avoiding their useless sequentialization, 2) nets allow a direct representation of concurrent information, as well as dependency and mutual exclusion (that is, nondeterminism). The information contained in any one of these semantics, possibly abstracted, can be of great help to a scheduler, in order to obtain an efficient execution of the program, or also to a compile-time optimizer.KeywordsPartial OrderOperational SemanticGraph ProductionMutual ExclusionGraph GrammarThese keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.