
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
c++编程开发是大多数后端软件编程开发程序员都需要熟练掌握的一个编程开发语言,而本文我们就通过案例分析来给大家简单介绍一下,c++编程应用实践分析。
C++从代码到可执行bin文件,主要分为四个阶段:预处理、编译、汇编和链接。
预处理:处理一些#号定义的命令或语句(如#define、#include、#ifdef等),生成.i文件;
编译:进行词法分析、语法分析和语义分析等,生成.s的汇编文件,大家熟悉的AST抽象语法树就在该过程产生;
汇编:将对应的汇编指令翻译成机器指令,生成二进制.o目标文件;
链接:链接分为两种,静态链接:将静态链接库中的内容直接装填到可执行程序中;动态链接:只在可执行程序中记录与动态链接库中共享对象的映射信息。
代码级质量技术的技术原理,主要是获取到该过程的代码片段数据或植入对应的目标代码,来达到对应的质量目标,如获取片段数据可以用来理解代码判断风险,可以用来指结构化代码结构,供自动生成单元测试和代码检测提供基础数据;如植入对应目标代码,可以用来做插桩(即覆盖率采集)或动态数据采集等。
大层次一:代码理解,CodeC(CodeComprehend):偏底层技术,基于底层AST等能力、分析出代码的特性(AST、调用链、依赖等)和风险度,通过API、SDK等方式对外提供基础服务
存储层:主要用来代码编译过程的基础数据和对应的数据存储选型调优等,在这个过程主要难点在于基础工具的选型和过程性能的调优,以达到可以在业务应用的目标;
分析层:分析层是依托基础的数据,根据特定的要求,对数据进行结构化的建模,如函数调用链、依赖关系等,做好基础的分析供上层应用;
模型层:用于通过分析层和基础数据,去训练代码存在的潜在风险或风险偏向(性能问题突出等);
API层:通过API、SDK等方式对外提供基础服务。
该层会遇到众多技术挑战,如要适配不同语言的解析器、编译过程;基础框架进行代码调优;分析过程数据缺失修复等,是一项非常细致且有技术挑战的工作,当然我们在该过程也会探索出一些技术经验供大家参考。
大层次二:代码级质量技术应用,Codeπ:主要是依托代码理解的过程或产出,植入对应的信息,以达到对应的质量目标,这个层次应用场景是关键,因此我们是以解决问题的目标为导向,对该层次进行细分,所以目标或应用场景的不同会使得该层次的分类会不断增加,目前分为以下四类:
CodeQ(CodeQuality):与召回问题相关(智能UT、基于规则的代码缺陷检测、基于AI的代码缺陷检测、火焰图、ASAN等在个分类);
CodeP(CodeProbe):与动态插桩相关(ccover、covtool、jacoco、gocov等在这层),主要是往代码里面植入探针获取运行行为数据;
CodeH(CodeHealth):评估代码健康度(类似sonarcube等)、代码风险度评估用于决策后续的质量行为;
CodeDL(Codedefectlocation):代码缺陷定位。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加抖音太原达内IT培训学习了解。