License: Creative Commons Attribution 3.0 Unported license (CC BY 3.0)
When quoting this document, please refer to the following
DOI: 10.4230/LIPIcs.ECOOP.2016.15
URN: urn:nbn:de:0030-drops-61092
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2016/6109/
Li, Yue ;
Tan, Tian ;
Zhang, Yifei ;
Xue, Jingling
Program Tailoring: Slicing by Sequential Criteria
Abstract
Protocol and typestate analyses often report some sequences of
statements ending at a program point P that needs to be
scrutinized, since P may be erroneous or imprecisely
analyzed. Program slicing focuses only on the behavior at P by
computing a slice of the program affecting the values at P. In
this paper, we propose to restrict our attention to the subset of
that behavior at P affected by one or several statement
sequences, called a sequential criterion (SC). By leveraging the
ordering information in a SC, e.g., the temporal order in a few
valid/invalid API method invocation sequences, we introduce a
new technique, program tailoring, to compute a tailored program
that comprises the statements in all possible execution paths
passing through at least one sequence in SC in the given
order. With a prototyping implementation, Tailor, we show why
tailoring is practically useful by conducting two case studies on
seven large real-world Java applications. For program
debugging and understanding, Tailor can complement program
slicing by removing SC-irrelevant statements. For program
analysis, Tailor can enable a pointer analysis, which is
unscalable to a program, to perform a more focused and therefore
potentially scalable analysis to its specific parts containing
hard language features such as reflection.
BibTeX - Entry
@InProceedings{li_et_al:LIPIcs:2016:6109,
author = {Yue Li and Tian Tan and Yifei Zhang and Jingling Xue},
title = {{Program Tailoring: Slicing by Sequential Criteria}},
booktitle = {30th European Conference on Object-Oriented Programming (ECOOP 2016)},
pages = {15:1--15:27},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
ISBN = {978-3-95977-014-9},
ISSN = {1868-8969},
year = {2016},
volume = {56},
editor = {Shriram Krishnamurthi and Benjamin S. Lerner},
publisher = {Schloss Dagstuhl--Leibniz-Zentrum fuer Informatik},
address = {Dagstuhl, Germany},
URL = {http://drops.dagstuhl.de/opus/volltexte/2016/6109},
URN = {urn:nbn:de:0030-drops-61092},
doi = {10.4230/LIPIcs.ECOOP.2016.15},
annote = {Keywords: Program Slicing, Program Analysis, API Protocol Analysis}
}
Keywords: |
|
Program Slicing, Program Analysis, API Protocol Analysis |
Collection: |
|
30th European Conference on Object-Oriented Programming (ECOOP 2016) |
Issue Date: |
|
2016 |
Date of publication: |
|
18.07.2016 |