Figure 5 - uploaded by Musab Alturki
Content may be subject to copyright.
Source publication
The Orc calculus is a simple, yet powerful theory of concurrent computations with great versatility and practical applicability to a very wide range of applications, as it has been amply demonstrated by the Orc language, which extends the Orc calculus with powerful programming constructs that can be desugared into the underlying formal calculus. Th...
Contexts in source publication
Context 1
... notion can be elegantly captured in the type structure of the rewriting semantics by further subsorting NZExpr into two subsorts: AExpr, for active expressions, and IExpr for inactive expressions. The subsorting structure of Orc expressions is shown in Figure 5. Since any non-zero Orc expression must either be active or inactive (and cannot be both), the subsorts partition the sort NZExpr.T h i si sa c h i e v e d by a combination of subsort-overloaded function symbol declarations for Orc's syntax, along with appropriate equational axioms and frozenness information, and a few simple membership axioms based on Definition 1, as we explain below. ...
Context 2
... a potential response message cannot be processed until the delay is zero, at which point the message is re- placed by a proper response message [w, h], with w the site response evaluated by the function app. For instance, a site call message [CNN , 1,h] is immedi- ately converted into the potential response message [app (CNN , 1, 5),h], with 5 a message delay. Then, after five time units have passed, the message becomes [app (CNN , 1, 0),h], which, according to the semantics of site calls to CNN spec- ified by the function app, is equivalent to the response message [signal ,h]. ...
Context 3
... described in Section 4.2 and summarized in Figure 5 above, the distinc- tion between active (non-quiescent) and inactive (quiescent) Orc expressions, which proved useful in obtaining a simple an elegant specification of the instan- taneous rewriting semantics of Orc, was captured by defining an order-sorted signature for Orc expressions and values. Since an order-sorted signature Σ with "mix-fix" syntax can be viewed as a context-free grammar G in which the non-terminals of G a r et h es o r t so fΣ ,a n dt h ep r o d u c t i o nr u l e so fG are the mix-fix operator declarations and the subsort declarations in Σ, we may use the synchronous rewriting logic semantics described in Section 5.1 to give a corre- sponding synchronous SOS of Orc specified by SOS rules that define a single, ...
Context 4
... 8: Synchronous (instantaneous) structural operational semantics of Orc self-contained transition relation, in which no rule application constraints or further characterizations of transitions are necessary. This connection between order-sorted theories and context-free grammars is exploited by first refining the abstract syntax of Orc given in Figure 1 to include new syntactic categories NZExpr, AExpr and IExpr for the sorts NZExpr, AExpr, IExpr, and refined pro- duction rules corresponding to the Orc expression subsort structure (shown in Figure 5) and the Orc expression operator declarations described in Section 4.2. ...
Similar publications
We propose an overview of the decentralized reconfiguration language Concerto-D through its Maude formalization. Concerto-D extends the already published Concerto language. Concerto-D improves on two different parameters compared with related work: the decentralized coordination of numerous local reconfiguration plans which avoid a single point of...
Petri nets and their numerous extensions (or subclasses) are one of the popular traditional formalisms for the specification and verification of concurrent systems. Furthermore, due to the expressivity of rewriting logic, Maude and its associated analysis tools have been adopted in many recent works for executing and analyzing Petri nets. In this p...
Citations
... In his PhD work [AlT11], and later in [AM15], Alturki translated the Structural Operational Semantics (SOS) of Orc into the corresponding rewrite theory, which he wrote in Maude as a complete specification of Orc. He then used Maude as a formal analysis tool for Orc programs. ...
... He then wrote Objectbased semantics which improves on the previous two by introducing object-level concurrency which laid the foundation for a distributed deployment of Orc's rewriting specification. Despite being similar to our semantics in that both are rewriting based, the semantics of [AM15] considered a lower level abstraction where site and expression calls and site returns, in addition to publishing values, were all observable actions. [AlT11], and finally, our K definition. ...
Orc is a programming model for expressing orchestrated distributed and concurrent computations. It abstracts computations through calling sites and expresses concurrency through four concise constructors. Our goal is twofold: (1) to devise a formal semantics of Orc that elegantly captures its intended semantics and (2) to formally verify the correctness of programs written in Orc. In order to achieve that, we wrote a complete formal semantics of Orc using the K framework, which in turn enables the execution and verification of Orc programs. This thesis presents in detail how the K framework's various facilities were utilized to arrive at a clean, minimal, precise and elegant semantic specification; informally compares our specification to previously developed operational semantics of Orc; and demonstrates how all of that enables the execution and verification of Orc programs through a case study and a few distinctive examples.
... It has been used, for example, to specify the Enhanced Interior Gateway Routing Protocol (EIGRP) [22], embedded systems [17], and the AER/NCA active network protocol [16]. Moreover, analysis of real-time systems using Maude sockets, and thus requiring a special treatment for them, has been studied [1,26]. While the algebraic representation of the distribution used in these works follows, as well as our work, the approach presented in [22], the way used to relate logical and physical time allows for a more precise and formal analysis than the one used here, allowing the system to synchronize only when needed. ...
... message obtained from the Java server in charge of dealing with time. 1 This layer provides a fault-tolerant and dynamic architecture where nodes may join and leave at any moment, and where nodes are always reached by using the shortest path, thus allowing us to implement realistic systems. Finally, the upper layer is the application one, which in our case corresponds to Kademlia. ...
... Although this "time sampling" is usual, the relation between physical time and logic time can be refined further. For example, the paper [1], which describes a theory for the orchestration of service-oriented solutions, or [26], which presents a theory for medical devices, provide a much more refined relation, taking into account small deviations due to hardware. ...
Kademlia is the most popular peer-to-peer distributed hash table (DHT) currently in use. It offers a number of desirable features that result from the use of a notion of distance between objects based on the bitwise exclusive or of n-bit quantities that represent both nodes and files. Nodes keep information about files close or near to them in the key space and the search algorithm is based on looking for the closest node to the file key. The structure of the routing table defined in each peer guarantees that the lookup algorithm takes no longer than O(log(n)) steps, where n is the number of nodes in the network.
... [Pouliasis, 2014] After a literature review, in articles and archives available on international databases, such as Web of Science, EBSCOhost, IS journals and IS conference proceedings we found out that in near future might be possible to let compiler evaluate rather than execute a program. The evaluation may involve making calls to external resources and eventually receiving answers from such calls, so that the internal evaluation can proceed [AlTurki, 2015]. In our article we demonstrate how the newly C++14 standard can be used in functional programming by implementing conditionals, booleans and numbers. ...
Today software technology evolves very quickly, to an old paradigm, called functional programming. This paradigm uses lambda functions ready to be used where declared instead of function pointers. The long term target is to let compilers evaluate rather than execute a program/function. The new C++14 standard allows lambda calculus as we demonstrate in the applicative section of implementing conditionals, booleans and numbers.
... A simple computation in Orc is modeled by a site call, representing a request for a service, and more complex computations can be achieved by combining site calls into expressions using one or more of Orc's four sequential and parallel combinators. A complete formal executable semantics elegantly capturing its semantic subtleties, including its real-time behaviors and transition priorities, was given in rewriting logic [17] and implemented in the Maude tool [2,3]. This semantics is based on the original reference SOS semantic specication of the instantaneous (untimed) semantics of Orc [23]. ...
... behaviors of Orc was also developed by Misra and Cook in [23]. An updated SOS listing that includes rules for the semantics of the otherwise combinator and stop site responses is given in [3]. ...
Orchestration provides a general model of concurrent computations. A minimal yet expressive theory of orchestration is provided by Orc, in which computations are modeled by site calls and their orchestrations through a few combinators. Using Orc, formal verification of correctness of orchestrations amounts to devising an executable formal semantics of Orc and leveraging existing tool support. Despite its simplicity and elegance, giving formal semantics to Orc capturing precisely its intended behaviors is far from trivial primarily due to the challenges posed by concurrency, timing and the distinction between internal and external actions. This paper presents a semantics-based approach for formally verifying Orc orchestrations using the K framework. Unlike previously developed operational semantics of Orc, the K semantics is not directly based on the interleaving semantics given by Orc's SOS specification. Instead, it is based on concurrent rewriting enabled by K. It also utilizes various K facilities to arrive at a clean, minimal and elegant semantic specification. To demonstrate the usefulness of the proposed approach, we describe a specification for a simple robotics case study and provide initial formal verification results.