{"title":"IR映射:基于中间表示(IR)的映射,以促进增量静态分析","authors":"Vaidehi Ghime, Ankita Khadsare, Anushri Jana, Bharti Chimdyalwar","doi":"10.1145/3511430.3511451","DOIUrl":null,"url":null,"abstract":"An Intermediate Representation (IR) is a data structure to represent a program. It represents each program entity as an object (IR object), having a unique identification number (ID). Static program analysis tools perform analysis on IRs of the input program and compute analysis information at program points - which are represented as IR objects. The analysis information is stored against their corresponding ID. Performing incremental analysis on evolving systems involve the reuse of analysis information for the unchanged IR objects between versions of a program. However, the IDs changes over the version with the change. This acts as an obstacle to the reuse of analysis information. To overcome this, a one-to-one correspondence between IDs of unchanged IR objects is necessary. We term this correspondence as IR mapping. This paper presents an accurate and efficient approach for IR mapping. We formally proved the correctness of our IR mapping technique. We evaluated the time consumption of our technique on versions of a core banking application. We found that our approach consumes on an average of 5.7% of the total time taken by incremental analysis of programs ranging from 9K- 87K LoC.","PeriodicalId":138760,"journal":{"name":"15th Innovations in Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-02-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"IR Mapping: Intermediate Representation (IR) based Mapping to facilitate Incremental Static Analysis\",\"authors\":\"Vaidehi Ghime, Ankita Khadsare, Anushri Jana, Bharti Chimdyalwar\",\"doi\":\"10.1145/3511430.3511451\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"An Intermediate Representation (IR) is a data structure to represent a program. It represents each program entity as an object (IR object), having a unique identification number (ID). Static program analysis tools perform analysis on IRs of the input program and compute analysis information at program points - which are represented as IR objects. The analysis information is stored against their corresponding ID. Performing incremental analysis on evolving systems involve the reuse of analysis information for the unchanged IR objects between versions of a program. However, the IDs changes over the version with the change. This acts as an obstacle to the reuse of analysis information. To overcome this, a one-to-one correspondence between IDs of unchanged IR objects is necessary. We term this correspondence as IR mapping. This paper presents an accurate and efficient approach for IR mapping. We formally proved the correctness of our IR mapping technique. We evaluated the time consumption of our technique on versions of a core banking application. We found that our approach consumes on an average of 5.7% of the total time taken by incremental analysis of programs ranging from 9K- 87K LoC.\",\"PeriodicalId\":138760,\"journal\":{\"name\":\"15th Innovations in Software Engineering Conference\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-02-24\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"15th Innovations in Software Engineering Conference\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3511430.3511451\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"15th Innovations in Software Engineering Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3511430.3511451","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
IR Mapping: Intermediate Representation (IR) based Mapping to facilitate Incremental Static Analysis
An Intermediate Representation (IR) is a data structure to represent a program. It represents each program entity as an object (IR object), having a unique identification number (ID). Static program analysis tools perform analysis on IRs of the input program and compute analysis information at program points - which are represented as IR objects. The analysis information is stored against their corresponding ID. Performing incremental analysis on evolving systems involve the reuse of analysis information for the unchanged IR objects between versions of a program. However, the IDs changes over the version with the change. This acts as an obstacle to the reuse of analysis information. To overcome this, a one-to-one correspondence between IDs of unchanged IR objects is necessary. We term this correspondence as IR mapping. This paper presents an accurate and efficient approach for IR mapping. We formally proved the correctness of our IR mapping technique. We evaluated the time consumption of our technique on versions of a core banking application. We found that our approach consumes on an average of 5.7% of the total time taken by incremental analysis of programs ranging from 9K- 87K LoC.