递归检查型QVT - R转换与Java数据图转换
递归检查型QVT - R转换
在QVT - R转换中,存在关系直接或间接递归调用自身的情况。不过,由于转换过程中引入了否定,在某些情况下会导致生成的μ演算公式格式错误。所以需要一个能直接应用于原始QVT - R转换的准则,以确保目标μ演算公式格式正确。
递归路径与格式良好的定义
- 递归路径 :在QVT - R转换中,递归路径是一个有限序列,其元素可以是关系名、“when”、“where”或“not”。该序列需满足:
- 序列的第一个和最后一个元素是相同的关系名。
- 任何子序列R … S(R和S是关系名,且中间元素不是关系名),对应于S从R的“when”或“where”子句中被调用。中间元素只能是:
- 如果S在R的“when”子句中被调用,且调用处于i个否定之下,则为“when”后跟i(i ≥ 0)个“not”。
- 如果S在R的“where”子句中被调用,且调用处于i个否定之下,则为“where”后跟i(i ≥ 0)个“not”。
- 格式良好的QVT - R转换 :如果在每条递归路径上,“not”的数量加上“when”的数量为偶数,则该QVT - R转换是递归格式良好的。因为在转换函数中,每个“not”和“when”都会使布尔标志翻转,所以递归格式良好的QVT - R转换恰好能生成格式良好的μ公式。
递归检查型QVT - R与Java数据图转换
超级会员免费看
订阅专栏 解锁全文

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



