日前,我院研究生杜梦男以第三作者在第32届软件可靠性工程国际会议(ISSRE 2021)的Industry Track上发表题为MultiCode: A Unified Code Analysis Framework based on Multi-type and Multi-granularity Semantic Learning的学术论文。该论文获ISSRE 2021最佳实践论文。
软件可靠性工程国际会议(ISSRE)是软件可靠性领域顶级会议,专注于评估、预测和改善软件产品可靠性、安全性,包括前沿理论方法与创新技术工具。在ISSRE 2021会议投稿的226篇论文中,71篇论文被接受,仅该论文1篇被评为最佳实践论文。
基于深度神经网络的静态代码分析方法通常在不同代码分析任务中引入针对性设计,导致模型呈现高度多样化的态势。在工业领域,该现象会使开发者在开发涉及多需求的代码分析平台时,面临开发开销大、模型集成困难、可扩展性受限等问题。针对上述问题,MultiCode模型能够学习代码中多种类型和粒度的语义信息,进而支撑多种代码分析任务。论文提出使用抽象语法树、控制流图、程序依赖图等结构,对代码中不同类型和粒度的语义信息进行建模,并利用树神经网络和图神经网络分别对不同的语义信息进行处理。在该过程中,MultiCode模型自底向上地先学习语句级别的表示,再基于该表示学习代码段级别的表示。通过将该模型作为编码器进行神经网络构建,能够有效适配于不同的代码分析任务。在漏洞检测和代码克隆检测任务上的评估结果表明,其能够在不需要重新构建编码器的情况下,在不同任务中有效地识别并区分不同类别代码的语义,进而支撑多种任务上的预测。