3,493 research outputs found

    Engineering Object-Oriented Semantics Using Graph Transformations

    Get PDF
    In this paper we describe the application of the theory of graph transformations to the practise of language design. We have defined the semantics of a small but realistic object-oriented language (called TAAL) by mapping the language constructs to graphs and their operational semantics to graph transformation rules. In the process we establish a mapping between UML models and graphs. TAAL was developed for the purpose of this paper, as an extensive case study in engineering object-oriented language semantics using graph transformation. It incorporates the basic aspects of many commonly used object-oriented programming languages: apart from essential imperative programming constructs, it includes inheritance, object creation and method overriding. The language specification is based on a number of meta-models written in UML. Both the static and dynamic semantics are defined using graph rewriting rules. In the course of the case study, we have built an Eclipse plug-in that automatically transforms arbitrary TAAL programs into graphs, in a graph format readable by another tool. This second tool is called Groove, and it is able to execute graph transformations. By combining both tools we are able to visually simulate the execution of any TAAL program

    Simulating Multigraph Transformations Using Simple Graphs

    Get PDF
    Application of graph transformations for software verification and model transformation is an emergent field of research. In particular, graph transformation approaches provide a natural way of modelling object oriented systems and semantics of object-oriented languages.\ud \ud There exist a number of tools for graph transformations that are often specialised in a particular kind of graphs and/or graph transformation approaches, depending on the desired application domain. The main drawback of this diversity is the lack of interoperability.\ud \ud In this paper we show how (typed) multigraph production systems can be translated into (typed) simple-graph production systems. The presented construction enables the use of multigraphs with DPO transformation approach in tools that only support simple graphs with SPO transformation approach, e.g. the GROOVE tool

    Using Graph Transformations and Graph Abstractions for Software Verification

    Get PDF
    In this paper we describe our intended approach for the verification of software written in imperative programming languages. We base our approach on model checking of graph transition systems, where each state is a graph and the transitions are specified by graph transformation rules. We believe that graph transformation is a very suitable technique to model the execution semantics of languages with dynamic memory allocation. Furthermore, such representation allows us to investigate the use of graph abstractions, which can mitigate the combinatorial explosion inherent to model checking. In addition to presenting our planned approach, we reason about its feasibility, and, by providing a brief comparison to other existing methods, we highlight the benefits and drawbacks that are expected

    Functors between M-adhesive Categories Applied to Petri Net and Graph Transformation Systems

    Get PDF
    Various kinds of graph transformations and Petri net transformation systems are examples of M-adhesive transformation systems based on M-adhesive categories, generalizing weak adhesive HLR categories. For typed attributed graph transformation systems, the tool environment AGG allows the modeling, the simulation and the analysis of graph transformations. A corresponding tool for Petri net transformation systems, the RON-Environment, has recently been developed which implements and simulates Petri net transformations based on corresponding graph transformations using AGG. Up to now, the correspondence between Petri net and graph transformations is handled on an informal level. The purpose of this paper is to establish a formal relationship between the corresponding M-adhesive transformation systems, which allow the translation of Petri net transformations into graph transformations with equivalent behavior, and, vice versa, the creation of Petri net transformations from graph transformations. Since this is supposed to work for different kinds of Petri nets, we propose to define suitable functors, called M-functors, between different M-adhesive categories and to investigate properties allowing us the translation and creation of transformations of the corresponding M-adhesive transformation systems
    • ā€¦
    corecore