Evaluating lexical approximation of program dependence

•We evaluate how lexical information can be used to approximate program dependence.•We introduce two new variants of Observation-based Slicing using lexical information.•We propose generalization of Observation-based Slicing exploiting multiple operators.•We study the slices generated by new slicer...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:The Journal of systems and software 2020-02, Vol.160, p.110459, Article 110459
Hauptverfasser: Lee, Seongmin, Binkley, David, Gold, Nicolas, Islam, Syed, Krinke, Jens, Yoo, Shin
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:•We evaluate how lexical information can be used to approximate program dependence.•We introduce two new variants of Observation-based Slicing using lexical information.•We propose generalization of Observation-based Slicing exploiting multiple operators.•We study the slices generated by new slicer both quantitatively and qualitatively. Complex dependence analysis typically provides an underpinning approximation of true program dependence. We investigate the effectiveness of using lexical information to approximate such dependence, introducing two new deletion operators to Observation-Based Slicing (ORBS). ORBS provides direct observation of program dependence, computing a slice using iterative, speculative deletion of program parts. Deletions become permanent if they do not affect the slicing criterion. The original ORBS uses a bounded deletion window operator that attempts to delete consecutive lines together. Our new deletion operators attempt to delete multiple, non-contiguous lines that are lexically similar to each other. We evaluate the lexical dependence approximation by exploring the trade-off between the precision and the speed of dependence analysis performed with new deletion operators. The deletion operators are evaluated independently, as well as collectively via a novel generalization of ORBS that exploits multiple deletion operators: Multi-operator Observation-Based Slicing (MOBS). An empirical evaluation using three Java projects, six C projects, and one multi-lingual project written in Python and C finds that the lexical information provides a useful approximation to the underlying dependence. On average, MOBS can delete 69% of lines deleted by the original ORBS, while taking only 36% of the wall clock time required by ORBS.
ISSN:0164-1212
1873-1228
DOI:10.1016/j.jss.2019.110459