×

PyCG公司

swMATH ID: 37995
软件作者: Vitalis Salis、Thodoris Sotiropulos、Panos Louridas、Diomidis Spinellis、Dimitris Mitropulos
描述: PyCG:Python中的实用调用图生成。调用图在不同的上下文中发挥着重要作用,例如剖析和漏洞传播分析。对于模块化、包含动态特性和高阶函数的高级语言来说,高效生成调用图是一项具有挑战性的任务。尽管该语言很流行,但很少有工具旨在为Python程序生成调用图。更糟糕的是,这些工具存在一些有效性问题,这些问题限制了它们在实际程序中的实用性。我们提出了一种在Python中生成调用图的实用静态方法。我们通过过程间分析计算函数、变量、类和模块的程序标识符之间的所有赋值关系。基于这些赋值关系,我们通过解析对潜在调用函数的所有调用来生成结果调用图。值得注意的是,底层分析的设计是高效和可伸缩的,可以处理几个Python特性,例如模块、生成器、函数闭包和多重继承。我们使用两个基准评估了我们的原型实现(我们称之为PyCG):一个包含小型Python程序的微基准套件和一组包含几个流行的真实Pythons包的宏观基准。我们的结果表明,PyCG可以在不到一秒钟的时间内高效地处理数千行代码(平均1kLoC为0.38秒)。此外,它在精确度和召回率方面都优于Python的最新技术:PyCG达到了99.2的高精确度
主页: https://arxiv.org/abs/2103.00587
源代码:  https://github.com/vitsalis/PyCG
依赖项: 蟒蛇
关键词: 编程语言;arXiv_cs。损益;软件工程;arXiv_cs。东南方;蟒蛇;调用图;项目分析;跨过程分析;漏洞传播
相关软件: ast公司;守门人;Synode(合成码);法官;WALA公司;节点.js;烟尘;侏儒图;SAFEWAPI公司;帕拉米科;PyYAML公司;净现值法;取决于;JSAI公司;Callgrind公司;代码2图形;平安3;JavaScript脚本;蟒蛇
引用于: 0个文档

标准条款

1出版物描述软件 年份
PyCG:Python中的实用调用图生成arXiv公司
Vitalis Salis、Thodoris Sotiropoulos、Panos Louridas、Diomidis Spinellis、Dimitris Mitropoulos
2021