{"title":"Monadic Dynamic Slicing of Object-Oriented Programs","authors":"Bihuan Xu, Junyan Qian, Yingzhou Zhang, Shurong Zhu","doi":"10.1109/CYBERC.2018.00053","DOIUrl":null,"url":null,"abstract":"Program slicing is an effective technique for narrowing the focus of attention to the relevant parts of a program. The dynamic slice contains only those statements that actually affect the variables in the slicing criterion, thus it is useful in software debugging, testing and maintenance. This paper proposes a new approach to dynamically slice object-oriented programs (OOPs) based on modular monadic semantics. It abstracts the computation of program slicing as a language-independent object, slice monad transformer, which can be applied to semantic descriptions of the program analyzed in a modular way, forming the corresponding monadic slicing algorithms. Such algorithms allow dynamic slices to be computed directly on abstract syntax, with no needs to explicitly construct intermediate structures such as dependence graphs or to record an execution history. Simultaneously, it could describe the basic object-oriented (OO) features such as encapsulation, inheritance and dynamic binding well. It has excellent reusability and language-flexibility properties comparing with the current dynamic slicing methods for OOPs.","PeriodicalId":282903,"journal":{"name":"2018 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC)","volume":"40 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CYBERC.2018.00053","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Program slicing is an effective technique for narrowing the focus of attention to the relevant parts of a program. The dynamic slice contains only those statements that actually affect the variables in the slicing criterion, thus it is useful in software debugging, testing and maintenance. This paper proposes a new approach to dynamically slice object-oriented programs (OOPs) based on modular monadic semantics. It abstracts the computation of program slicing as a language-independent object, slice monad transformer, which can be applied to semantic descriptions of the program analyzed in a modular way, forming the corresponding monadic slicing algorithms. Such algorithms allow dynamic slices to be computed directly on abstract syntax, with no needs to explicitly construct intermediate structures such as dependence graphs or to record an execution history. Simultaneously, it could describe the basic object-oriented (OO) features such as encapsulation, inheritance and dynamic binding well. It has excellent reusability and language-flexibility properties comparing with the current dynamic slicing methods for OOPs.