Aibek Sarimbekov, Y. Zheng, Danilo Ansaloni, L. Bulej, L. Marek, Walter Binder, P. Tůma, Zhengwei Qi
{"title":"基于DiSL的动态程序分析工具的生产性开发","authors":"Aibek Sarimbekov, Y. Zheng, Danilo Ansaloni, L. Bulej, L. Marek, Walter Binder, P. Tůma, Zhengwei Qi","doi":"10.1109/ASWEC.2013.12","DOIUrl":null,"url":null,"abstract":"Dynamic program analysis tools serve many important software engineering tasks such as profiling, debugging, testing, program comprehension, and reverse engineering. Many dynamic analysis tools rely on program instrumentation and are implemented using low-level instrumentation libraries, resulting in tedious and error-prone tool development. The recently released Domain-Specific Language for Instrumentation (DiSL) was designed to boost the productivity of tool developers targeting the Java Virtual Machine, without impairing the performance of the resulting tools. DiSL offers high-level programming abstractions especially designed for development of instrumentation-based dynamic analysis tools. In this paper, we present a controlled experiment aimed at quantifying the impact of the DiSL programming model and high-level abstractions on the development of dynamic program analysis instrumentations. The experiment results show that compared with a prevailing, state-of-the-art instrumentation library, the DiSL users were able to complete instrumentation development tasks faster, and with more correct results.","PeriodicalId":394020,"journal":{"name":"2013 22nd Australian Software Engineering Conference","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-06-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":"{\"title\":\"Productive Development of Dynamic Program Analysis Tools with DiSL\",\"authors\":\"Aibek Sarimbekov, Y. Zheng, Danilo Ansaloni, L. Bulej, L. Marek, Walter Binder, P. Tůma, Zhengwei Qi\",\"doi\":\"10.1109/ASWEC.2013.12\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Dynamic program analysis tools serve many important software engineering tasks such as profiling, debugging, testing, program comprehension, and reverse engineering. Many dynamic analysis tools rely on program instrumentation and are implemented using low-level instrumentation libraries, resulting in tedious and error-prone tool development. The recently released Domain-Specific Language for Instrumentation (DiSL) was designed to boost the productivity of tool developers targeting the Java Virtual Machine, without impairing the performance of the resulting tools. DiSL offers high-level programming abstractions especially designed for development of instrumentation-based dynamic analysis tools. In this paper, we present a controlled experiment aimed at quantifying the impact of the DiSL programming model and high-level abstractions on the development of dynamic program analysis instrumentations. The experiment results show that compared with a prevailing, state-of-the-art instrumentation library, the DiSL users were able to complete instrumentation development tasks faster, and with more correct results.\",\"PeriodicalId\":394020,\"journal\":{\"name\":\"2013 22nd Australian Software Engineering Conference\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2013-06-04\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"4\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2013 22nd Australian Software Engineering Conference\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ASWEC.2013.12\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2013 22nd Australian Software Engineering Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ASWEC.2013.12","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4
摘要
动态程序分析工具服务于许多重要的软件工程任务,如概要分析、调试、测试、程序理解和逆向工程。许多动态分析工具依赖于程序插装,并使用低级插装库实现,这导致了冗长且容易出错的工具开发。最近发布的领域专用工具语言(Domain-Specific Language for Instrumentation, DiSL)旨在提高针对Java虚拟机的工具开发人员的工作效率,同时不损害最终工具的性能。DiSL提供了高级编程抽象,特别为开发基于仪器的动态分析工具而设计。在本文中,我们提出了一个对照实验,旨在量化DiSL编程模型和高级抽象对动态程序分析仪器开发的影响。实验结果表明,与目前流行的最先进的仪器库相比,DiSL用户能够更快地完成仪器开发任务,并且得到更准确的结果。
Productive Development of Dynamic Program Analysis Tools with DiSL
Dynamic program analysis tools serve many important software engineering tasks such as profiling, debugging, testing, program comprehension, and reverse engineering. Many dynamic analysis tools rely on program instrumentation and are implemented using low-level instrumentation libraries, resulting in tedious and error-prone tool development. The recently released Domain-Specific Language for Instrumentation (DiSL) was designed to boost the productivity of tool developers targeting the Java Virtual Machine, without impairing the performance of the resulting tools. DiSL offers high-level programming abstractions especially designed for development of instrumentation-based dynamic analysis tools. In this paper, we present a controlled experiment aimed at quantifying the impact of the DiSL programming model and high-level abstractions on the development of dynamic program analysis instrumentations. The experiment results show that compared with a prevailing, state-of-the-art instrumentation library, the DiSL users were able to complete instrumentation development tasks faster, and with more correct results.