c++标准模板库的验证用法

Bence Babati, G. Horváth, Norbert Pataki, Attila Páter-Részeg
{"title":"c++标准模板库的验证用法","authors":"Bence Babati, G. Horváth, Norbert Pataki, Attila Páter-Részeg","doi":"10.1145/3351556.3351570","DOIUrl":null,"url":null,"abstract":"The C++ Standard Template Library (STL) is the most well-known and widely used library that is based on the generic programming paradigm. The STL takes advantage of C++ templates, so it is an extensible, effective but flexible system. Professional C++ programs cannot miss the usage of the STL because it increases quality, maintainability, understandability and efficacy of the code. However, the usage of C++ STL does not guarantee error-free code. Contrarily, incorrect application of the library may introduce new types of problems. Unfortunately, there is still a large number of properties that are tested neither at compilation-time nor at runtime. It is not surprising that in implementation of C++ programs so many STL-related bugs may occur. It is clearly seen that the compilation validation is not sophisticated enough to detect subtle misusages of this library. In this paper, we propose different approaches for the validation of the C++ STL's usage. We take advantage of aspect-oriented programming paradigm, metaprogramming techniques, static analysis, and automated debugging tool as well. We compare the presented approaches comprehensively, the pros and cons of these techniques are considered, evaluated and highlighted.","PeriodicalId":126836,"journal":{"name":"Proceedings of the 9th Balkan Conference on Informatics","volume":"28 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-09-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"3","resultStr":"{\"title\":\"On the Validated Usage of the C++ Standard Template Library\",\"authors\":\"Bence Babati, G. Horváth, Norbert Pataki, Attila Páter-Részeg\",\"doi\":\"10.1145/3351556.3351570\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The C++ Standard Template Library (STL) is the most well-known and widely used library that is based on the generic programming paradigm. The STL takes advantage of C++ templates, so it is an extensible, effective but flexible system. Professional C++ programs cannot miss the usage of the STL because it increases quality, maintainability, understandability and efficacy of the code. However, the usage of C++ STL does not guarantee error-free code. Contrarily, incorrect application of the library may introduce new types of problems. Unfortunately, there is still a large number of properties that are tested neither at compilation-time nor at runtime. It is not surprising that in implementation of C++ programs so many STL-related bugs may occur. It is clearly seen that the compilation validation is not sophisticated enough to detect subtle misusages of this library. In this paper, we propose different approaches for the validation of the C++ STL's usage. We take advantage of aspect-oriented programming paradigm, metaprogramming techniques, static analysis, and automated debugging tool as well. We compare the presented approaches comprehensively, the pros and cons of these techniques are considered, evaluated and highlighted.\",\"PeriodicalId\":126836,\"journal\":{\"name\":\"Proceedings of the 9th Balkan Conference on Informatics\",\"volume\":\"28 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2019-09-26\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"3\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 9th Balkan Conference on Informatics\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3351556.3351570\",\"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 of the 9th Balkan Conference on Informatics","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3351556.3351570","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 3

摘要

c++标准模板库(STL)是基于泛型编程范式的最知名和最广泛使用的库。STL利用了c++模板,因此它是一个可扩展的、有效的、灵活的系统。专业的c++程序不能错过STL的使用,因为它提高了代码的质量、可维护性、可理解性和有效性。然而,c++ STL的使用并不能保证代码没有错误。相反,不正确地应用库可能会引入新的问题类型。不幸的是,仍然有大量的属性既不在编译时测试,也不在运行时测试。在c++程序的实现中可能会出现这么多与stl相关的错误,这并不奇怪。可以清楚地看到,编译验证不够复杂,无法检测到这个库的细微误用。在本文中,我们提出了不同的方法来验证c++ STL的使用。我们利用了面向方面的编程范式、元编程技术、静态分析和自动调试工具。我们全面比较了所提出的方法,对这些技术的优缺点进行了考虑、评估和强调。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
On the Validated Usage of the C++ Standard Template Library
The C++ Standard Template Library (STL) is the most well-known and widely used library that is based on the generic programming paradigm. The STL takes advantage of C++ templates, so it is an extensible, effective but flexible system. Professional C++ programs cannot miss the usage of the STL because it increases quality, maintainability, understandability and efficacy of the code. However, the usage of C++ STL does not guarantee error-free code. Contrarily, incorrect application of the library may introduce new types of problems. Unfortunately, there is still a large number of properties that are tested neither at compilation-time nor at runtime. It is not surprising that in implementation of C++ programs so many STL-related bugs may occur. It is clearly seen that the compilation validation is not sophisticated enough to detect subtle misusages of this library. In this paper, we propose different approaches for the validation of the C++ STL's usage. We take advantage of aspect-oriented programming paradigm, metaprogramming techniques, static analysis, and automated debugging tool as well. We compare the presented approaches comprehensively, the pros and cons of these techniques are considered, evaluated and highlighted.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Categorization of C++ Classes for Static Lifetime Analysis Trends Review of the Contemporary Security Problems in the Cyberspace Can a robot be an efficient mediator in promoting dyadic activities among children with Autism Spectrum Disorders and children of Typical Development? Complexity Aspects of Unstructured Sparse Graph Representation Female Students' Attitude Towards Studying Informatics and Expectations for Future Career - Balkan Case
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1