{"title":"过程间定义和使用依赖的计算","authors":"M. J. Harrold, M. Soffa","doi":"10.1109/ICCL.1990.63786","DOIUrl":null,"url":null,"abstract":"The detection of various dependencies that exist among the definitions and uses of variables in a program is necessary in many language-processing tools. The computation of definition-use dependencies that reach across procedure boundaries is considered. In particular, efficient techniques for computing interprocedural definition-use and use-definition chains and for incrementally updating the chains when a change is made in a procedure are presented. Intraprocedural definition and use information for each procedure is first abstracted and used to construct an interprocedural flow graph. The intraprocedural information is then propagated in two phases throughout the interprocedural flow graph to obtain the complete set of interprocedural reaching definitions and reachable uses. Interprocedural definition-use and use-definition chains are computed from this reaching information. The technique handles the interprocedural effects of the flow of data caused by both reference parameters and global variables, as well as supports separate compilation even in the presence of recursion. The technique has been implemented using a Sun 3/50 workstation and incorporated into an interprocedural data flow tester.<<ETX>>","PeriodicalId":317186,"journal":{"name":"Proceedings. 1990 International Conference on Computer Languages","volume":"45 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1990-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"27","resultStr":"{\"title\":\"Computation of interprocedural definition and use dependencies\",\"authors\":\"M. J. Harrold, M. Soffa\",\"doi\":\"10.1109/ICCL.1990.63786\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The detection of various dependencies that exist among the definitions and uses of variables in a program is necessary in many language-processing tools. The computation of definition-use dependencies that reach across procedure boundaries is considered. In particular, efficient techniques for computing interprocedural definition-use and use-definition chains and for incrementally updating the chains when a change is made in a procedure are presented. Intraprocedural definition and use information for each procedure is first abstracted and used to construct an interprocedural flow graph. The intraprocedural information is then propagated in two phases throughout the interprocedural flow graph to obtain the complete set of interprocedural reaching definitions and reachable uses. Interprocedural definition-use and use-definition chains are computed from this reaching information. The technique handles the interprocedural effects of the flow of data caused by both reference parameters and global variables, as well as supports separate compilation even in the presence of recursion. The technique has been implemented using a Sun 3/50 workstation and incorporated into an interprocedural data flow tester.<<ETX>>\",\"PeriodicalId\":317186,\"journal\":{\"name\":\"Proceedings. 1990 International Conference on Computer Languages\",\"volume\":\"45 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1990-03-12\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"27\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings. 1990 International Conference on Computer Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICCL.1990.63786\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings. 1990 International Conference on Computer Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICCL.1990.63786","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Computation of interprocedural definition and use dependencies
The detection of various dependencies that exist among the definitions and uses of variables in a program is necessary in many language-processing tools. The computation of definition-use dependencies that reach across procedure boundaries is considered. In particular, efficient techniques for computing interprocedural definition-use and use-definition chains and for incrementally updating the chains when a change is made in a procedure are presented. Intraprocedural definition and use information for each procedure is first abstracted and used to construct an interprocedural flow graph. The intraprocedural information is then propagated in two phases throughout the interprocedural flow graph to obtain the complete set of interprocedural reaching definitions and reachable uses. Interprocedural definition-use and use-definition chains are computed from this reaching information. The technique handles the interprocedural effects of the flow of data caused by both reference parameters and global variables, as well as supports separate compilation even in the presence of recursion. The technique has been implemented using a Sun 3/50 workstation and incorporated into an interprocedural data flow tester.<>