首页> 外文会议>International Symposium on Formal Methods >Validity Checking of Putback Transformations in Bidirectional Programming
【24h】

Validity Checking of Putback Transformations in Bidirectional Programming

机译:双向编程中逾越贴变换的有效性检查

获取原文

摘要

A bidirectional transformation consists of pairs of transformations - a forward transformation get produces a target view from a source, while a putback transformation put puts back modifications on the view to the source - satisfying sensible roundtrip properties. Existing bidirectional approaches are get-based in that one writes (an artifact resembling) a forward transformation and a corresponding backward transformation can be automatically derived. However, the unavoidable ambiguity that stems from the underspecification of put often leads to unpredictable bidirectional behavior, making it hard to solve nontrivial practical synchronization problems with existing bidirectional transformation approaches. Theoretically, this ambiguity problem could be solved by writing put directly and deriving get, but differently from programming with get it is easy to write invalid put functions. An open challenge is how to check whether the definition of a putback transformation is valid, while guaranteeing that the corresponding unique get exists. In this paper, we propose, as far as we are aware, the first safe language for supporting putback-based bidirectional programming. The key to our approach is a simple but powerful language for describing primitive putback transformations. We show that validity of putback transformations in this language is decidable and can be automatically checked. A particularly elegant and strong aspect of our design is that we can simply reuse and apply standard results for treeless functions and tree transducers in the specification of our checking algorithms.
机译:双向转换由对转换成对组成 - 前向转换从源生成目标视图,而逾越个转换会对源的视图进行回复 - 满足明智的往返特性。基于现有双向方法基于该写入(类似于类似的伪影),可以自动导出正向变换和相应的向后变换。然而,源于所说的强度的不可避免的歧义经常导致不可预测的双向行为,使得难以解决现有双向变换方法的非动力实际同步问题。从理论上讲,可以通过直接写入并导出GET来解决这个模糊的问题,但与GET的编程不同,易于编写无效的函数。开放挑战是如何检查逾越贴变换的定义是否有效,同时保证了相应的唯一获取。在本文中,我们提出了,据我们所知,第一种安全语言支持基于逾越的双向规划。我们方法的关键是一种简单而强大的语言,用于描述原始的逾期逾距改造。我们表明,这种语言的逾距改造的有效性是可判定的,可以自动检查。我们设计的一个特别优雅和强大的方面是我们可以简单地重用并在我们的检查算法的规范中重用并应用Treeless功能和树传感器的标准结果。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号