A. Simão, A. Vincenzi, Antônio Carlos Lima de Santana
{"title":"A Language for the Description of Program Instrumentation and Automatic Generation of Instrumenters","authors":"A. Simão, A. Vincenzi, Antônio Carlos Lima de Santana","doi":"10.19153/cleiej.6.1.7","DOIUrl":null,"url":null,"abstract":"\n \n \nInstrumentation is a technique frequently used in software engineering for several different purposes, e.g. program and/or specification execution trace, testing criteria coverage analy- sis, and reverse engineering. Instrumenting a software product can be divided into two main tasks: (i) deriving the software product structure and (ii) inserting statements for collecting runtime/simulation information. \nMost instrumentation approaches are specific to a given domain or language. Thus, it is very difficult to reuse the effort expended in developing an instrumenter, even if the target languages are quite similar. To tackle this problem, in this paper, we propose an instrumentation-oriented meta-language, named IDeL, designed to support the description of both main tasks of instru- mentation process, namely: (i) the product structure derivation and (ii) the insertion of the instrumentation statements. In order to apply IDeL to a specific language L, it should be in- stantiated with a context-free grammar of L. To promote IDeL’s practical use, we also developed a supporting tool, named idelgen, that can be thought of as an application generator, based on the transformational programming paradigm and tailored to the instrumentation process. We illustrate the main concepts of our proposal with examples describing the instrumentation required in some traditional data flow testing criteria for C language. \n \n \n","PeriodicalId":418941,"journal":{"name":"CLEI Electron. J.","volume":"109 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"CLEI Electron. J.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.19153/cleiej.6.1.7","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10
Abstract
Instrumentation is a technique frequently used in software engineering for several different purposes, e.g. program and/or specification execution trace, testing criteria coverage analy- sis, and reverse engineering. Instrumenting a software product can be divided into two main tasks: (i) deriving the software product structure and (ii) inserting statements for collecting runtime/simulation information.
Most instrumentation approaches are specific to a given domain or language. Thus, it is very difficult to reuse the effort expended in developing an instrumenter, even if the target languages are quite similar. To tackle this problem, in this paper, we propose an instrumentation-oriented meta-language, named IDeL, designed to support the description of both main tasks of instru- mentation process, namely: (i) the product structure derivation and (ii) the insertion of the instrumentation statements. In order to apply IDeL to a specific language L, it should be in- stantiated with a context-free grammar of L. To promote IDeL’s practical use, we also developed a supporting tool, named idelgen, that can be thought of as an application generator, based on the transformational programming paradigm and tailored to the instrumentation process. We illustrate the main concepts of our proposal with examples describing the instrumentation required in some traditional data flow testing criteria for C language.