国内刊号:51-1307/TP
国际刊号:1001-9081
发布日期:
作者:孙蒴, 张伟, 冯温迪, 张俞炜
单位:1.北京信息科技大学 计算机学院, 北京 100101;2.北京未来区块链与隐私计算高精尖中心(北京信息科技大学), 北京 100101;3.国家经济安全预警工程北京实验室(北京信息科技大学), 北京 100101;4.北京大学 计算机学院, 北京 100871
关键词:外部函数接口,代码生成,依赖消除,并行处理,静态分析
基金:国家重点研发计划项目(2022YFC3320900);北京市教育委员会科研计划项目(KM202311232005);“北京未来区块链与隐私计算高精尖中心”和“国家经济安全预警工程北京实验室”资助
外部函数接口(FFI)是解决一种编程语言调用其他语言函数库的主要方法。针对使用FFI技术时需要大量人工编码的问题,提出自动化外部函数接口生成(AFIG)方法。该方法利用基于抽象语法树的源码逆向分析技术,从被封装的库文件中精准提取出用于描述函数接口信息的多语言融合的统一表示。基于此统一表示,不同平台的代码生成器可利用多语言转换规则矩阵,全自动化地生成不同平台的FFI相关代码。为解决FFI代码生成中的效率低下问题,设计了一种基于依赖分析的任务聚合策略,通过把存在依赖的任务聚合为新的任务,有效消除了FFI代码任务在并行下的阻塞与死锁,从而实现任务在多核系统下的可扩展与负载均衡。实验结果表明:与人工编码相比,AFIG方法减少了FFI开发中98.14%的开发编码量以及41.95%的测试编码量;与现有的SWIG (Simplified Wrapper and Interface Generator)方法相比,在同等任务下可减少61.27%的开发成本;且生成效率随着计算资源的增加呈线性增长。
来源:2024年第7期
《计算机应用》期刊编辑部