Observational slicing based on visual semantics

Observational slicing based on visual semantics
复制标题

基于视觉语义的观察切片

DOI:
10.1016/j.jss.2016.04.009
复制
发表时间:
2017
期刊:
J. Syst. Softw.
影响因子:
--
通讯作者:
R. Eastman
R. Eastman
中科院分区:
--
文献类型:
--
作者:
S. Yoo;D. Binkley;R. Eastman

文献摘要

被引文献

相似文献

自35年前引入以来,程序切片已经有了大量的应用和变体。计算切片的主要方法涉及到大量复杂的源代码分析,以便对代码中的依赖关系进行建模。最近推出的替代方案,即基于观察的切片,通过观察候选切片的行为来避免这种复杂性。基于观察的切片还有其他一些优势,包括能够轻松地对多语言系统进行切片。然而,基于观察的切片的最初实现ORBS仍然植根于传统,因为它通过比较值序列来捕获语义。这就提出了一个问题,即是否有可能将切片扩展到其传统的语义根源之外。一些现有的项目已经尝试了这一点,但扩展需要相当大的努力。如果有可能建立在ORBS平台上,更容易地将切片推广到具有非传统语义的语言,那么有可能大大增加切片可以应用的编程语言的范围。ORBS通过将问题简化为一般化如何捕获语义来支持这一点。以图片描述语言为例,这种泛化的挑战和有效性被认为是。结果表明,不仅可以推广ORBS实现,而且所得到的切片器非常有效,从8%到98%的原始源代码中删除,平均为83%。最后,对切片的定性观察发现该技术非常有效,有时产生最小的切片。
Program slicing has seen a plethora of applications and variations since its introduction over 35 years ago. The dominant method for computing slices involves significant complex source-code analysis to model the dependencies in the code. A recently introduced alternative, observation-based slicing, sidesteps this complexity by observing the behavior of candidate slices. Observation-based slicing has several other strengths, including the ability to easily slice multi-language systems.However, the initial implementation of observation-based slicing, ORBS, remains rooted in tradition as it captures semantics by comparing sequences of values. This raises the question of whether it is possible to extend slicing beyond its traditional semantic roots. A few existing projects have attempted this but the extension requires considerable effort.If it is possible to build on the ORBS platform to more easily generalize slicing to languages with non-traditional semantics, then there is the potential to vastly increase the range of programming languages to which slicing can be applied. ORBS supports this by reducing the problem to that of generalizing how semantics are captured. Taking Picture Description Languages as a case study, the challenges and effectiveness of such a generalization are considered. The results show that not only is it possible to generalize the ORBS implementation, but the resulting slicer is quite effective, removing from 8% to 98% of the original source code with an average of 83%. Finally a qualitative look at the slices finds the technique very effective, at times producing minimal slices.