基于符号执行的声明性图转换控制流分析

Florian Ege, Matthias Tichy
{"title":"基于符号执行的声明性图转换控制流分析","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":"{\"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}","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

摘要

声明性图转换语言Henshin通过应用一系列匹配和替换模型部分结构模式的基本步骤,将表示为图的实例模型转换为图。然后将这些简单的转换规则组合到类似于命令式编程语言的控制流结构中,以创建更复杂的转换。但是,控制流结构或转换规则中的缺陷可能会使操作的应用安排错误,从而导致基本步骤不适用或产生错误的输出。规则中的模式匹配是不确定的,这使得理解和修复这些错误变得复杂。此外,一些控制流结构采用了不确定的替代选择。这使得开发人员很难跟踪所有可能的执行路径和它们之间的交互。对于传统的程序设计语言,已经发展了一些技术来符号化地执行程序。通过对任何实际运行中变量的具体值进行抽象,可以获得关于程序可能行为的广义知识。这对于理解问题和修复错误非常有用。在本文中,我们提出了一种基于模型中图模式出现的基数的符号路径约束的方法,以符号方式执行Henshin子集的图转换。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Towards Control Flow Analysis of Declarative Graph Transformations with Symbolic Execution
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.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信