Reo Coordination Language
Encyclopedia
In computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

, Reo is a channel-based exogenous coordination language
Formal language
A formal language is a set of words—that is, finite strings of letters, symbols, or tokens that are defined in the language. The set from which these letters are taken is the alphabet over which the language is defined. A formal language is often defined by means of a formal grammar...

.

Overview

In the context of distributed application, correction and validity of single processes does not imply the correctness of the whole system. In such systems, the communication between the processes is of a high importance. These communications can be implemented within the process but the maintenance of such built-in communications can be a problem. However, communications and interactions protocols
Communications protocol
A communications protocol is a system of digital message formats and rules for exchanging those messages in or between computing systems and in telecommunications...

 can be specified using coordination languages.

Reo is a coordination language designed and proposed by Farhad Arbab at Centrum Wiskunde & Informatica in 2001. The first formal semantics of Reo was developed by Farhad Arbab and Jan Rutten in terms of a coalgebraic
Variety (universal algebra)
In mathematics, specifically universal algebra, a variety of algebras is the class of all algebraic structures of a given signature satisfying a given set of identities. Equivalently, a variety is a class of algebraic structures of the same signature which is closed under the taking of homomorphic...

 model of streams. Christel Baier et al. introduced Constraint Automata to express the operational semantics of Reo. Reo constitutes a strategic long-term research activity of the SEN3 research group at the Centre for Mathematics and Computer Science (CWI).

A typical Reo model consists of connectors. A more complex connector can be built up using simpler connectors. In each channel there exist a number of Channels and Nodes.
Two nodes communicate through a channel which has two ends. A channel end can be source or sink depending on accepting or dispensing data into / out of its channel. The behaviour of a channel specifies how the channel affect the data flow through its ends which defined by its type. An effect of this type can be , for example, the content, the conditions for loss, and/or creation of data go through the channel ends, or the atomicity, exclusion, order, and/or timing of their passage.
There is no limitation on the behaviour of a channel. Therefore, new types of channels can be used simultaneously with other channels in a model.

Tool support

The current implementation of Reo tool
Programming tool
A programming tool or software development tool is a program or application that software developers use to create, debug, maintain, or otherwise support other programs and applications...

 is developed in the Scala programming language, and runs on JVM
Java Virtual Machine
A Java virtual machine is a virtual machine capable of executing Java bytecode. It is the code execution component of the Java software platform. Sun Microsystems stated that there are over 4.5 billion JVM-enabled devices.-Overview:...

 (Java). A more detailed description, with the code, examples, and documentation, can be found in the Reo tool web page.

Animation

Animating
Animation
Animation is the rapid display of a sequence of images of 2-D or 3-D artwork or model positions in order to create an illusion of movement. The effect is an optical illusion of motion due to the phenomenon of persistence of vision, and can be created and demonstrated in several ways...

 the Reo circuit is a good way to better understanding its behaviour. Such examples can be found in A repository of Reo Connectors.

Model Checking

Reo models can be checked using model checker Vereofy
Vereofy
Vereofy is a software model checker for component-based systems for operational correctness. It was written by Prof. Christel Baier at Technische Universität Dresden. Vereofy uses constraint automata as formal semantics for the components behavior and for Reo Coordination Language. Vereofy allows...

 and the mCRL2 toolset.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK