{"title":"面向对象程序的一元动态切片","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":"{\"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}","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}
Monadic Dynamic Slicing of Object-Oriented Programs
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.