基于源码分析的自动化外部函数接口生成方法.pdf
JournalofComputerApplicationsISSN1001‐90812024‐07‐10
计算机应用,2024,44(7):2151-2159CODENJYIIDUhttp://www.joca.cn
文章编号:1001-9081(2024)07-2151-09DOI:10.11772/j.issn.1001-9081.2023070968
基于源码分析的自动化外部函数接口生成方法
11,2,31*4
孙蒴,张伟,冯温迪,张俞炜
(1.北京信息科技大学计算机学院,北京100101;
2.北京未来区块链与隐私计算高精尖中心(北京信息科技大学),北京100101;
3.国家经济安全预警工程北京实验室(北京信息科技大学),北京100101;4.北京大学计算机学院,北京100871)
(∗通信作者电子邮箱wendifeng@bistu.edu.cn)
摘要:外部函数接口(FFI)是解决一种编程语言调用其他语言函数库的主要方法。针对使用FFI技术时需要大
量人工编码的问题,提出自动化外部函数接口生成(AFIG)方法。该方法利用基于抽象语法树的源码逆向分析技术,
从被封装的库文件中精准提取出用于描述函数接口信息的多语言融合的统一表示。基于此统一表示,不同平台的代
码生成器可利用多语言转换规则矩阵,全自动化地生成不同平台的FFI相关代码。为解决FFI代码生成中的效率低
下问题,设计了一种基于依赖分析的任务聚合策略,通过把存在依赖的任务聚合为新的任务,有效消除了FFI代码任
务在并行下的阻塞与死锁,从而实现任务在多核系统下的可扩展与负载均衡。实验结果表明:与人工编码相比,AFIG
方法减少了FFI开发中98.14%的开发编码量以及41.95%的测试编码量;与现有的SWIG(SimplifiedWrapperand
InterfaceGenerator)方法相比,在同等任务下可减少61.27%的开发成本;且生成效率随着计算资源的增加呈线性
增长。
关键词:外部函数接口;代码生成;依赖消除;并行处理;静态分析
中图分类号:TP311.56文献标志码:A
Automaticforeignfunctioninterfacegenerationmethodbasedonsourcecodeanalysis
11,2,31*4
SUNShuo,ZHANGWei,FENGWendi,ZHANGYuwei
(1.ComputerSchool,BeijingInformationScienceandTechnologyUniversity,Beijing100101,China;