Fig 4 - uploaded by Roozbeh Farahbod
Content may be subject to copyright.
Sample Annotated Parse Tree.

Sample Annotated Parse Tree.

Source publication
Article
Full-text available
In this paper we introduce a new research effort in making abstract state machines (ASMs) executable. The aim is to specify and implement an execution engine for a language that is as close as possible to the mathematical definition of pure ASMs. The paper presents the general architecture of the engine, together with a high-level description of th...

Contexts in source publication

Context 1
... node in these trees may have a reference to the plug-in where the corresponding syntax is defined. For example in Figure 4, there are nodes that belong to the backgrounds of sets, integers, and Booleans. This information will be used by the interpreter and the abstract storage to perform operations on these nodes with respect to the background each node comes from. ...
Context 2
... example, while the do- main of booleans (that is, true and false) is in the kernel, boolean algebra (∧, ∨, ¬, etc.) is not, and is instead provided through a background plug-in. In the same vein, while finite sets are in the kernel, infinite ones are implemented in a plug-in, which provides expression syntax for defining them (see the example in Figure 4), as well as an implicit representation for storing such sets in the abstract state, and implementations of the various set theoretic operations (e.g., ∈) that work on such implicit representation. ...

Similar publications

Article
Full-text available
Single-machine weighted earliness tardiness scheduling is a prevalent problem in just-in-time production environments. Yet, the case with distinct due dates is strongly NP-hard. Herein, it is approximately solved using ASV, an ant colony-based system with a reduced number of ants and of colonies and with daemon actions that explore the search space...
Article
Full-text available
In this report we introduce a new research effort in making abstract state machines executable. The aim is to specify and implement an execution engine for a language that is as close as possible to the math- ematical definition of pure ASM. We present the general architecture of the engine, together with a high-level description of the extensibil-...

Citations

... Besides ASMETA tools, there are others that have been developed over the years around the ASMs. Among those, CoreASM [30] and CASM [36] are currently actively supported, while others, as the AsmGofer [41], are dead projects. CoreASM was designed and developed at the same time when the ASMETA project started and shares with AS-META the same overall goals of being a toolset for ASM editing, simulation, and verification. ...
Article
Full-text available
Modern automotive systems with adaptive control features require rigorous analysis to guarantee correct operation. We report our experience in modeling the automotive case study from the ABZ2020 conference using the ASMETA toolset, based on the Abstract State Machine formal method. We adopted a seamless system engineering method: from an incremental formal specification of high-level requirements to increasingly refined ASMETA models, to the C++ code generation from the model. Along this process, different validation and verification activities were performed. We explored modeling styles and idioms to face the modeling complexity and ensure that the ASMETA models can best capture and reflect specific behavioral patterns. Through this realistic automotive case study, we evaluated the applicability and usability of our formal modeling approach.
... State visualisation is not unique to the B formalisms: e.g., another tool that allows visualisations based on web technologies is WebASM [94], which works on top of CoreASM [24]. CoreASM is a tool that can be used to execute abstract state machines (ASM). ...
Article
Full-text available
The common formal methods workflow consists of formalising a model followed by applying model checking and proof techniques. Once an appropriate level of certainty is reached, code generators are used in order to gain executable code. In this paper, we propose a different approach: instead of generating code from formal models, it is also possible to embed a model checker or animator into applications in order to use the formal models themselves at runtime. We present a Java API to the ProB animator and model checker. We describe several case studies that use this API as enabling technology to interact with a formal specification at runtime.
... Many positive examples for their application in practical system development exist (see among others [1,22,52]). Furthermore, modelling, refinement, validation and verification with these methods is supported by sophisticated tool boxes such as RODIN [2], ASMeta [4,43], CoreASM [32], the TLA+ tools [52] and theorem provers, e.g. KIV [31], respectively. ...
Article
We are interested in specifications which provide a consistent high-level view of systems. They should abstract irrelevant details and provide a precise and complete description of the behaviour of the system. This view of software specification can naturally be expressed by means of Gurevich’s Abstract State Machines (ASMs). There are many known benefits of such an approach to system specifications for software engineering and testing. In practice however, such specifications are rarely generated and/or maintained during software development. Addressing this problem, we present an exploratory study on (semi-)automated extraction of high-level software specifications by means of ASMs. We devise a method consisting in two phases. In the first phase we propose fully automated transformations from source code to base-level ASM specifications with the same core functionality. We present a prototype of an implementation of this phase which transforms Java code into base-level ASM specifications. The second phase consists in incrementally applying sound semi-automated abstraction procedures for ASMs to derive higher-level specifications, starting from the base-level ASM specification obtained in the first phase. This is by no means a trivial task. It opens up new and interesting research questions. We discuss possible methodologies to approach this task and provide a proof of concept in the form of elaborated and detailed examples. We argue that this process can be done in a (semi-)automated way and thus result in a valuable tool to improve the current software engineering practices.
... Many positive examples for their application in practical system development exist (see among others [1,22,52]). Furthermore, modelling, refinement, validation and verification with these methods is supported by sophisticated tool boxes such as RODIN [2], ASMeta [4,43], CoreASM [32], the TLA+ tools [52] and theorem provers, e.g. KIV [31], respectively. ...
Chapter
We are interested in specifications which provide a consistent high-level view of systems. They should abstract irrelevant details and provide a precise and complete description of the behaviour of the system. This view of software specification can naturally be expressed by means of Gurevich’s Abstract State Machines (ASMs). There are many known benefits of such an approach to system specifications for software engineering and testing. In practice however, such specifications are rarely generated and/or maintained during software development. Addressing this problem, we present an exploratory study on (semi) automated extraction of high-level software specifications by means of ASMs. We describe, in the form of examples, an abstraction process which starts by extracting an initial ground-level ASM specification from Java source code (with the same core functionality), and ends in a high-level ASM specification at the desired level of abstraction. We argue that this process can be done in a (semi) automated way, resulting in a valuable tool to improve the current software engineering practices.
... We choose the ASM formalism because it:1) represents a general model of computation, which subsumes all other classic computational models [14]; 2) provides a way to describe algorithmic issues in a simple abstract pseudo-code, which can be easily translated into a high level programming language source code [7]; 3) has been successfully applied for the design and analysis of systems in several domains.From the implementation point of view, some frameworks exist for translating ASM specifications into executable code: AsmL [15] (not maintained anymore), CoreASM [9], and ASMETA [12]. ...
Conference Paper
Full-text available
This paper introduces MOTION (MOdeling and simulaTIng mObile ad-hoc Networks), a Java application for both formally modeling and simulating Mobile Ad-hoc NETworks (MANETs). The behavior under study is firstly modeled as an Abstract State Machine, then the model is translated within the ASMETA framework for executing the simulation.
... Overall tool support is at least medium. The tool CoreASM, 90 for which an Eclipse plug-in is available, is widely used for simulation. The Asmeta platform provides several tools, including simulating and testing tools, a test generator, a model checker, a tool for generating executable ASMs from use case models, and a special tool for service-oriented com- ponents. ...
Article
Full-text available
After a number of success stories in safety‐critical domains, we are starting to witness applications of formal methods in contemporary systems and software engineering. However, one thing that is still missing is the evaluation criteria that help software practitioners choose the right formal method for the problem at hand. In this paper, we present the criteria for evaluating and comparing different formal methods. The criteria were chosen through a literature review, discussions with experts from academia and practitioners from industry, and decade‐long personal experience with the application of formal methods in industrial and academic projects. The criteria were then evaluated on several model‐oriented state‐based formal methods. Our research shows that besides technical grounds (eg, modeling capabilities and supported development phases), formal methods should also be evaluated from social and industrial perspectives. We also found out that it is not possible to generate a matrix that renders the selection of the right formal method an automatic process. However, we can generate several pointers, which make this selection process a lot less cumbersome.
... The CoreASM [26] execution engine and the ASMETA toolset support the definition of ASM models through their own specific ASM dialects. Each of them permits different functionalities to simulate, check or visualize ASM models. ...
Preprint
Cloud-enabled large-scale distributed systems orchestrate resources and services from various providers in order to deliver high-quality software solutions to the end users. The space and structure created by such technological advancements are immense sources of information and impose a high complexity and heterogeneity, which might lead to unexpected failures. In this chapter, we present a model that coordinates the multi-cloud interaction through the specification, validation, and verification of a middle-ware exploiting monitoring and adaptation processes. The monitoring processes handle collecting meaningful data and assessing the state of components, while the adaptation processes restore the system as dictated by the evolution needs and sudden changes in the operating environment conditions. We employ Abstract State Machines to specify the models and we further make use of the ASMETA framework to simulate and validate them. Desired properties of the system are defined and analysed with the aid of the Computation Tree Logic.
... The CoreASM [26] execution engine and the ASMETA toolset support the definition of ASM models through their own specific ASM dialects. Each of them permits different functionalities to simulate, check or visualize ASM models. ...
Chapter
Cloud-enabled large-scale distributed systems orchestrate resources and services from various providers in order to deliver high quality software solutions to the end users. The space and structure created by such technological advancements are immense sources of information and impose a high complexity and heterogeneity, which might lead to unexpected failures. In this chapter, we present a model that coordinates the multi-cloud interaction through the specification, validation, and verification of a middleware exploiting monitoring and adaptation processes. The monitoring processes handle collecting meaningful data and assessing the state of components, while the adaptation processes restore the system as dictated by the evolution needs and sudden changes in the operating environment conditions. We employ Abstract State Machines to specify the models and we further make use of the ASMETA framework to simulate and validate them. Desired properties of the system are defined and analysed with the aid of the Computation Tree Logic.
... Moreover, considering methodological issues, it has been successfully applied for the design and analysis of critical and complex systems in several domains, and a specific development method came to prominence in the last years [7]. Finally, considering the implementation point of view, the capability of translating formal specifications into executable code, in order to conduct simulations of the models, is provided by tools like AsmL [10] (which is not maintained anymore), CoreASM [11] and ASMETA [12]. The rest of this paper is organized as follows. ...
Chapter
Full-text available
The inherent features of Mobile Ad-hoc NETworks (MANETs) make them vulnerable to various kinds of security attacks. In particular, in a so-called blackhole attack, one or more malicious hosts can send fake routing information towards an initiator, compromising the reliability of the network in the whole. In this paper, we propose a refinement of the NACK-based Ad-hoc On-demand Distance Vector (N-AODV) protocol, namely Blackhole-free N-AODV (BN-AODV), as a solution to intercept (cooperative) blackhole attacks in MANETs. Thanks to a formalization through an Abstract State Machine-based model, the correctness of the proposed protocol is formally proved.
... Thirdly, considering methodological issues, the ASM formalism has been successfully applied for the design and analysis of critical and complex systems in several domains, and a specific development method came to prominence in the last years [4]. Finally, considering the implementation point of view, the capability of translating formal specifications into executable code, in order to conduct simulations of the models, is provided by tools like AsmL [6], CoreASM [7] and ASMETA [8]. ...
Article
Full-text available
Abstract State Machines (ASMs) have been successfully applied for modeling critical and complex systems in a wide range of application domains. However, unlike other well-known formalisms, e.g. Petri nets, ASMs lack inherent, domain-independent characterisations of computationally important properties. Here, we provide an ASM-based characterisation of the starvation-free property. The classic, informal notion of starvation, usually provided in literature, is analysed and expressed as a necessary condition in terms of ASMs. Thus, we enrich the ASM framework with the notion of vulnerable rule as a practical tool for analysing starvation issues in an operational fashion.