Enhanced operational semantics
Enhanced operational semantics
复制标题
增强的操作语义
DOI:
--
复制
发表时间:
1996
期刊:
影响因子:
--
通讯作者:
C. Priami
中科院分区:
文献类型:
--
作者:
P. Degano;C. Priami
The behavior of machines is conveniently given by an operational approach that describes the transitions between states that a machine performs while computing. The states and the transitions, possibly labeled by the activity they represent, give rise to a transition system. A logical approach to operational semantics due to Plotkin and to his formal method, called structural operational semantics [Plotkin 1981; Nielson and Nielson 1992], exploits the duality between languages and abstract machines, so one deduces transitions by inducing on the syntactic structure of the machine itself. We propose an enhancement to structural operational semantics capable of expressing (almost) all the information needed during software production. Indeed, our approach can be easily specialized, both to cover the various different aspects relevant to the project phase and to refine in more and more detail specifications towards implementations. Operational semantics is mathematically simple and is close to intuition, thus giving guidelines for implementation. It permits the use of induction for proving properties of programs. This approach is better suited than others to cope with programming languages that include heterogeneous features. In fact, it has been successfully used to describe imperative, functional, logic, object-oriented, concurrent, and distributed languages. Semantics should support many distinct activities performed during system production: design, implementation, quality control, management, use, and so on. Therefore many stakeholders (designers, implementors, users) must understand it. They can be roughly divided in two main groups. The first group is particularly interested in the behavioral aspects of systems (i.e., in what they do, regardless of how). The other group is concerned with the quantitative aspects of systems (i.e., how efficiently they perform). These considerations call for a semantics as usable as possible, with an accordingly simple underlying theory. Operational semantics is such because it describes the essential features that any computing device has. Thus, also, end users can grasp the meaning of a definition driven by their experience on their own machines. Moreover, it is sufficient to decorate transition systems with the relevant information to describe complex systems in detail. For example, one can enhance operational semantics to describe aspects of concurrent and distributed processes that we discuss here in more detail, such as causality, locality (so-called true concurrency), priorities, time, and probabilities. These behavioral and quantitative aspects help improve the quality and robustness of code and efficient runtime management of systems. Different views of the same system have led to many different semantics that must be related to one another via