{"title":"System dependence graph construction for recursive programs","authors":"P. Livadas, S. Croll","doi":"10.1109/CMPSAC.1993.404249","DOIUrl":null,"url":null,"abstract":"In a previous paper we demonstrated that a parse-tree-based system dependence graph (SDG) provides us with smaller and therefore more precise slices than a statement-based SDG. Furthermore, we described extensions to the SDG that were made to handle particular constructs found in ANSI C. In this paper, we describe a new method for the calculation of transitive dependences (in the presence of recursion) and therefore build a SDG that does not require calculation of the GMOD and GREF sets. Furthermore, this method does not require construction of a linkage grammar and its corresponding subordinate characteristic graphs. Additionally, we illustrate the versatility of the SDG as an internal program representation by briefly presenting a tool that we have developed that can perform interprocedural slicing, dicing, and ripple analysis in addition to other software engineering activities on programs written in a subset of ANSI C.<<ETX>>","PeriodicalId":375808,"journal":{"name":"Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1993-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"9","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of 1993 IEEE 17th International Computer Software and Applications Conference COMPSAC '93","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CMPSAC.1993.404249","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 9
Abstract
In a previous paper we demonstrated that a parse-tree-based system dependence graph (SDG) provides us with smaller and therefore more precise slices than a statement-based SDG. Furthermore, we described extensions to the SDG that were made to handle particular constructs found in ANSI C. In this paper, we describe a new method for the calculation of transitive dependences (in the presence of recursion) and therefore build a SDG that does not require calculation of the GMOD and GREF sets. Furthermore, this method does not require construction of a linkage grammar and its corresponding subordinate characteristic graphs. Additionally, we illustrate the versatility of the SDG as an internal program representation by briefly presenting a tool that we have developed that can perform interprocedural slicing, dicing, and ripple analysis in addition to other software engineering activities on programs written in a subset of ANSI C.<>