{"title":"Towards Control Flow Analysis of Declarative Graph Transformations with Symbolic Execution","authors":"Florian Ege, Matthias Tichy","doi":"10.1109/MODELS50736.2021.00024","DOIUrl":null,"url":null,"abstract":"The declarative graph transformation language Henshin transforms instance models represented as graphs by applying a series of basic steps that match and replace structural patterns on parts of models. These simple transformation rules are then combined into control flow constructs similar to those of imperative programming languages to create more complex transformations. However, defects in the structure of control flow or in transformation rules might misschedule the application of operations, resulting in basic steps to be inapplicable or produce incorrect output. Understanding and fixing these bugs is complicated by the fact that pattern matching in rules is non-deterministic. Moreover, some control flow structures employ a nondeterministic choice of alternatives. This makes it challenging for developers to keep track of all the possible execution paths and interactions between them. For conventional programming languages, techniques have been developed to execute a program symbolically. By abstracting over the concrete values of variables in any actual run, generalized knowledge is gained about the possible behavior of the program. This can be useful in understanding problems and fixing bugs. In this paper, we present an approach to symbolically execute graph transformations for a subset of Henshin, using symbolic path constraints based on the cardinalities of graph pattern occurrences in the model.","PeriodicalId":375828,"journal":{"name":"2021 ACM/IEEE 24th International Conference on Model Driven Engineering Languages and Systems (MODELS)","volume":"86 6 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 ACM/IEEE 24th International Conference on Model Driven Engineering Languages and Systems (MODELS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/MODELS50736.2021.00024","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
The declarative graph transformation language Henshin transforms instance models represented as graphs by applying a series of basic steps that match and replace structural patterns on parts of models. These simple transformation rules are then combined into control flow constructs similar to those of imperative programming languages to create more complex transformations. However, defects in the structure of control flow or in transformation rules might misschedule the application of operations, resulting in basic steps to be inapplicable or produce incorrect output. Understanding and fixing these bugs is complicated by the fact that pattern matching in rules is non-deterministic. Moreover, some control flow structures employ a nondeterministic choice of alternatives. This makes it challenging for developers to keep track of all the possible execution paths and interactions between them. For conventional programming languages, techniques have been developed to execute a program symbolically. By abstracting over the concrete values of variables in any actual run, generalized knowledge is gained about the possible behavior of the program. This can be useful in understanding problems and fixing bugs. In this paper, we present an approach to symbolically execute graph transformations for a subset of Henshin, using symbolic path constraints based on the cardinalities of graph pattern occurrences in the model.