TUAnalyzer - analyzing templates in C++ code

T. Gschwind, M. Pinzger, H. Gall
{"title":"TUAnalyzer - analyzing templates in C++ code","authors":"T. Gschwind, M. Pinzger, H. Gall","doi":"10.1109/WCRE.2004.40","DOIUrl":null,"url":null,"abstract":"We present TUAnalyzer, a novel tool that extracts the template structure of C++ programs on the basis of the GNU C/C++ compiler's internal representation of a C/C++ translation unit. In comparison to other such tools, our tool is capable of supporting the extraction of function invocations that depend on the particular instantiation of C++ templates and to relate them to their particular template instantiation. TUAnalyzer produces RSF format output that can be easily fed into existing visualization and analysis tools such as Rigi or Graphviz. We motivate why this kind of template analysis information is essential to understand real-world legacy C++ applications. We present how our tool extracts this kind of information to allow others to build on our results and further use the template information. The applicability of our tool has been validated on real code as proof of concept. The results obtained with TUAnalyzer enable us and other approaches and tools to perform detailed studies of large (open source) C/C++ projects in the near future.","PeriodicalId":443491,"journal":{"name":"11th Working Conference on Reverse Engineering","volume":"120 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2004-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"17","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"11th Working Conference on Reverse Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/WCRE.2004.40","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 17

Abstract

We present TUAnalyzer, a novel tool that extracts the template structure of C++ programs on the basis of the GNU C/C++ compiler's internal representation of a C/C++ translation unit. In comparison to other such tools, our tool is capable of supporting the extraction of function invocations that depend on the particular instantiation of C++ templates and to relate them to their particular template instantiation. TUAnalyzer produces RSF format output that can be easily fed into existing visualization and analysis tools such as Rigi or Graphviz. We motivate why this kind of template analysis information is essential to understand real-world legacy C++ applications. We present how our tool extracts this kind of information to allow others to build on our results and further use the template information. The applicability of our tool has been validated on real code as proof of concept. The results obtained with TUAnalyzer enable us and other approaches and tools to perform detailed studies of large (open source) C/C++ projects in the near future.
分析c++代码中的模板
基于GNU C/ c++编译器对C/ c++翻译单元的内部表示,我们提出了一种新的工具TUAnalyzer,它可以提取c++程序的模板结构。与其他此类工具相比,我们的工具能够支持提取依赖于c++模板的特定实例化的函数调用,并将它们与特定的模板实例化关联起来。TUAnalyzer产生RSF格式的输出,可以很容易地输入到现有的可视化和分析工具,如Rigi或Graphviz。我们解释了为什么这种模板分析信息对于理解现实世界的遗留c++应用程序是必不可少的。我们介绍了我们的工具如何提取这类信息,以允许其他人在我们的结果基础上构建并进一步使用模板信息。作为概念证明,我们的工具的适用性已经在实际代码上得到了验证。使用TUAnalyzer获得的结果使我们和其他方法和工具能够在不久的将来对大型(开源)C/ c++项目进行详细的研究。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信