scholarly journals Modular Structural Operational Semantics

2015 ◽  
Vol 12 (7) ◽  
Author(s):  
Peter D. Mosses

Modular SOS (MSOS) is a variant of conventional Structural Operational Semantics (SOS). Using MSOS, the transition rules for each construct of a programming language can be given incrementally, once and for all, and do not need reformulation when further constructs are added to the language. MSOS thus provides an exceptionally high degree of modularity in language descriptions, removing a shortcoming of the original SOS framework.<br /> <br />After sketching the background and reviewing the main features of SOS, the paper explains the crucial differences between SOS and MSOS, and illustrates how MSOS descriptions are written. It also discusses standard notions of semantic equivalence based on MSOS. An appendix shows how the illustrative MSOS rules given in the paper would be formulated in conventional SOS.

1993 ◽  
Vol 22 (433) ◽  
Author(s):  
Flemming Nielson ◽  
Hanne Riis Nielson

<p>Reppy's language CML extends Standard ML of Milner et al. with primitives for communication. It thus inherits a notion of strong polymorphic typing and may be equipped with a structural operational semantics. We formulate an effect system for statically expressing the communication behaviours of CML programs as these are not otherwise reflected in the types.</p><p>We then show how types and behaviours evolve in the course of computation: types may decrease and behaviours may loose alternatives as well as decrease. It will turn out that the syntax of behaviours is rather similar to that of a process algebra; our main results may therefore be viewed as regarding the semantics of a process algebra as an <em>abstraction</em> of the semantics of an underlying programming language. This establishes a new kind of connection between ''realistic'' concurrent programming languages and ''theoretical'' process algebras.</p>


1999 ◽  
Vol 6 (24) ◽  
Author(s):  
Luca Aceto ◽  
Willem Jan Fokkink ◽  
Chris Verhoef

<p>Structural operational semantics (SOS) [44] provides a framework to give<br />an operational semantics to programming and specification languages. In<br />particular, because of its intuitive appeal and flexibility, SOS has found considerable application in the study of the semantics of concurrent processes. SOS generates a labelled transition system, whose states are the closed terms over an algebraic signature, and whose transitions are supplied with labels. The transitions between states are obtained inductively from a transition system specification (TSS), which consists of so-called transition rules of the form premises / conclusion . A typical example of a transition rule is:</p>...<p>stipulating that if t -> t' holds for closed terms t and t', then so does t||u -> t'||u for each closed term u. In general, validity (or invalidity) of the positive (or negative) premises of a transition rule, under a certain substitution implies validity of the conclusion of this rule under the same substitution. This column is an excerpt from [2], which gives an overview of recent results in the field of SOS, with an emphasis on existing formats for TSSs. Each of these formats comes equipped with a rich body of results that are guaranteed to hold for any process calculus whose TSS is within that format. Over and over again, process calculi such as CCS [40], CSP [47], and ACP [11] have been extended with new features, and the TSSs that provide the operational semantics for these process algebras were extended with transition rules to describe these features; see, e.g. [10] for a systematic approach. A question that arises naturally is whether or not the original and the extended TSS induce the same transitions t -> t' for closed terms t in the original domain. Usually it is desirable that an extension is operationally conservative, meaning that the provable transitions for an original term are the same both in the original and in the extended TSS. Groote and Vaandrager [34, Thm. 7.6] proposed syntactic restrictions on a TSS, which automatically yield that an extension of this TSS with transition<br />rules that contain fresh function symbols in their sources is operationally<br />conservative. Bol and Groote [18, 33] supplied this conservative extension<br />format with negative premises. Verhoef [49] showed that, under certain conditions,<br />a transition rule in the extension can be allowed to have an original<br />term as its source. D'Argenio and Verhoef [22, 23] formulated a generalization<br />in the context of inequational specifications. Fokkink and Verhoef<br />[25] relaxed the syntactic restrictions on the original TSS, and lifted the<br />operational conservative extension result to higher-order languages. This<br />column contains an exposition on existing conservative extension formats<br />for SOS, and their applications with respect to term rewriting systems and<br />completeness of axiomatizations.<br />Predicates in SOS semantics can be coded as binary relations [34]. Moreover, negative premises can often be expressed positively using predicates [9]. However, in the literature SOS definitions are often decorated with predicates and/or negative premises. For example, predicates are used to express matters like (un)successful termination, convergence, divergence [3], enabledness [14], maximal delay, and side conditions [42]. Negative premises<br />are used to describe, e.g., deadlock detection [38], sequencing [17], priorities [7, 21], probabilistic behaviour [39], urgency [19], and various real [37] and discrete time [6, 35] settings. Since predicates and negative premises are so pervasive, and often lead to cleaner semantic descriptions for many features and constructs of interest, we deal explicitly with these notions. The organization of this column is as follows. Sect. 2 gives an overview of the basics of SOS. Sect. 3 presents syntactic constraints to ensure that an extension of a TSS is operationally conservative. Sect. 4 and 5 contain applications of conservative extension in equational specification and term rewriting. Sect. 6 nishes with some conclusions.</p><p><br /><br /><br /></p>


2021 ◽  
Vol 181 (1) ◽  
pp. 1-35
Author(s):  
Jane Hillston ◽  
Andrea Marin ◽  
Carla Piazza ◽  
Sabina Rossi

In this paper, we study an information flow security property for systems specified as terms of a quantitative Markovian process algebra, namely the Performance Evaluation Process Algebra (PEPA). We propose a quantitative extension of the Non-Interference property used to secure systems from the functional point view by assuming that the observers are able to measure also the timing properties of the system, e.g., the response time of certain actions or its throughput. We introduce the notion of Persistent Stochastic Non-Interference (PSNI) based on the idea that every state reachable by a process satisfies a basic Stochastic Non-Interference (SNI) property. The structural operational semantics of PEPA allows us to give two characterizations of PSNI: one based on a bisimulation-like equivalence relation inducing a lumping on the underlying Markov chain, and another one based on unwinding conditions which demand properties of individual actions. These two different characterizations naturally lead to efficient methods for the verification and construction of secure systems. A decision algorithm for PSNI is presented and an application of PSNI to a queueing system is discussed.


2015 ◽  
Vol 57 (3) ◽  
Author(s):  
Muhammad Shafique ◽  
Philip Axer ◽  
Christoph Borchert ◽  
Jian-Jia Chen ◽  
Kuan-Hsun Chen ◽  
...  

AbstractThis paper presents a multi-layer software reliability approach that leverages multiple software layers (e. g., programming language, compiler, and operating system) to improve the overall system reliability considering unreliable or partly-reliable hardware. We present a comprehensive design flow that integrates multiple software layers while accounting for the knowledge from lower hardware layers. We show how multiple software layers synergistically operate to achieve a high degree of reliability.


2003 ◽  
Vol 10 (25) ◽  
Author(s):  
Dariusz Biernacki ◽  
Olivier Danvy

Starting from a continuation-based interpreter for a simple logic programming language, propositional Prolog with cut, we derive the corresponding logic engine in the form of an abstract machine. The derivation originates in previous work (our article at PPDP 2003) where it was applied to the lambda-calculus. The key transformation here is Reynolds's defunctionalization that transforms a tail-recursive, continuation-passing interpreter into a transition system, i.e., an abstract machine. Similar denotational and operational semantics were studied by de Bruin and de Vink in previous work (their article at TAPSOFT 1989), and we compare their study with our derivation. Additionally, we present a direct-style interpreter of propositional Prolog expressed with control operators for delimited continuations.<br /><br />Superseded by BRICS-RS-04-5.


Sign in / Sign up

Export Citation Format

Share Document