可视化编程中的保留图语法:原理与应用
1. 可视化编程语言与图语法概述
可视化编程语言旨在以图形化方式表达编程逻辑,而图语法可作为定义其语法的有力形式化工具。不过,图语法的应用面临诸多挑战。一方面,即使是受限类别的图语法,成员问题也是 NP 难的,导致多数现有解析算法要么无法识别有趣的图语言,要么在处理大规模图时效率低下。另一方面,已知的图语法解析算法大多仅处理上下文无关产生式,难以满足许多可视化语言的上下文敏感需求。
Rekers 和 Schürr 提出的分层图语法(LGG)具有上下文敏感性和直观的图形式化特点,但实现效率不高,解析复杂度常达指数级。为解决这些问题,保留图语法(RGG)应运而生。
2. 保留图语法(RGG)简介
RGG 基于分层图语法发展而来,借助分层形式化方法,解析算法能在有限步骤内判断图的有效性。它使用带标签的图支持新图嵌入已解析图,节点结构结合额外可视化符号,简化了转换规范并增强了表达能力。
RGG 能完整明确地描述广泛图表的语法,其嵌入机制避免了多数上下文规范,降低了表达复杂度,提高了解析效率。不过,一般的 RGG 解析算法具有指数时间复杂度,通过引入约束可开发出多项式时间复杂度的解析算法,同时也有相应算法检查 RGG 是否满足该约束。RGG 已应用于 VisPro 工具集,助力可视化语言的生成。
3. 案例研究:流程流图
3.1 流程流图转换为节点 - 边图
以流程流图(PFD)为例,它包含结构化和非结构化构造。如 fork - join 构造为图提供结构,而 send - receive 构造不影响图结构。为便于 RGG 解析,需将 PFD
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



