中文

CodeFuse-Query:面向大规模组织的数据中心式静态代码分析系统

软件工程 2024-01-04 v1 编程语言

摘要

在大规模软件开发领域,对动态和多方面静态代码分析的需求超出了传统工具的能力。为了填补这一空白,我们提出了 CodeFuse-Query,这是一个通过融合领域优化系统设计和逻辑导向计算设计来重新定义静态代码分析的系统。CodeFuse-Query 将代码分析重构为数据计算任务,支持每日扫描超过 100 亿行代码和 300 多种不同的任务。它优化资源利用,优先考虑数据复用,应用增量代码提取,并引入了专门针对代码变更的任务类型,突显了其领域优化设计。该系统的逻辑导向方面采用 Datalog,利用独特的双层模式 COREF 将源代码转换为数据事实。通过一种独特的语言 Godel,CodeFuse-Query 能够将复杂任务表述为逻辑表达式,从而利用 Datalog 的声明式能力。本文提供了 CodeFuse-Query 变革性方法的实证证据,展示了其鲁棒性、可扩展性和效率。我们还强调了其在现实世界中的影响和多样化应用,强调了其在大规模软件开发背景下重塑静态代码分析格局的潜力。此外,本着合作和推动领域发展的精神,我们的项目已开源,仓库可供公众访问。

关键词

引用

@article{arxiv.2401.01571,
  title  = {CodeFuse-Query: A Data-Centric Static Code Analysis System for Large-Scale Organizations},
  author = {Xiaoheng Xie and Gang Fan and Xiaojun Lin and Ang Zhou and Shijie Li and Xunjin Zheng and Yinan Liang and Yu Zhang and Na Yu and Haokun Li and Xinyu Chen and Yingzhuang Chen and Yi Zhen and Dejun Dong and Xianjin Fu and Jinzhou Su and Fuxiong Pan and Pengshuai Luo and Youzheng Feng and Ruoxiang Hu and Jing Fan and Jinguo Zhou and Xiao Xiao and Peng Di},
  journal= {arXiv preprint arXiv:2401.01571},
  year   = {2024}
}