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