[发明专利]程序编译方法、编译器、设备及存储介质在审
申请号: | 202111602625.1 | 申请日: | 2021-12-24 |
公开(公告)号: | CN114281339A | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 高佳琦;翟恩南;刘洪强 | 申请(专利权)人: | 阿里巴巴(中国)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京太合九思知识产权代理有限公司 11610 | 代理人: | 刘戈 |
地址: | 310052 浙江省杭州市滨江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 编译 方法 编译器 设备 存储 介质 | ||
本申请实施例提供一种程序编译方法、编译器、设备及存储介质。该方法包括:对待编译程序的源代码进行预处理,得到预处理后的源代码,待编译程序是开发人员编写的用于实现网络功能的程序;对预处理后的源代码进行指令分析,生成相应的分析结果,以得到包括分析结果和预处理后的源代码的中间表示;基于中间表示进行代码拆分,得到待编译程序的第一源代码和第二源代码,第一源代码用于生成待编译程序在第一可编程芯片上的可执行代码,第二源代码用于生成待编译程序在第二可编程芯片上的可执行代码,第一可编程芯片用于协助第二可编程芯片处理网络流量。该方法能够降低开发人工人本并缩短开发时长。
技术领域
本申请涉及计算机技术领域,尤其涉及一种程序编译方法、编译器、设备及存储介质。
背景技术
随着互联网技术的不断发展,可编程芯片例如中央处理器(Central ProcessingUnit,CPU)芯片的性能提升已经赶不上需求的增长。协助可编程芯片处理网络流量技术(例如智能网卡)的出现和普及,使得很多原本由某一可编程芯片实现的网络功能(例如攻击检测、流量统计、防火墙)可以被卸载到其他可编程芯片上执行,在减轻该可编程芯片计算负担的同时,提高了数据包处理的吞吐,降低了转发延迟。
以原本由CPU芯片实现的网络功能被卸载到智能网卡中的可编程芯片上为例,通常,开发者需要基于智能网卡的功能特性,将与需要计算设备实现的网络功能相应的整体方案拆分为CPU方案和智能网卡方案,开发者需要分别基于CPU方案和智能网卡方案,在对应的编程平台上分别编写CPU芯片和智能网卡的程序。然而,这样的方式,存在开发人工成本较高、开发时间较长的问题。
发明内容
本申请实施例提供一种程序编译方法、编译器、设备及存储介质,用以解决现有技术中开发人工成本较高、开发时间较长的问题。
第一方面,本申请实施例提供一种程序编译方法,包括:
对待编译程序的源代码进行预处理,得到预处理后的源代码,所述待编译程序是开发人员编写的用于实现网络功能的程序;
对所述预处理后的源代码进行指令分析,生成相应的分析结果,以得到包括所述分析结果和所述预处理后的源代码的中间表示;
基于所述中间表示进行代码拆分,得到所述待编译程序的第一源代码和第二源代码,所述第一源代码用于生成所述待编译程序在第一可编程芯片上的可执行代码,所述第二源代码用于生成所述待编译程序在第二可编程芯片上的可执行代码,所述第一可编程芯片用于协助所述第二可编程芯片处理网络流量。
第二方面,本申请实施例提供一种编译器,包括:
预处理模块,用于对待编译程序的源代码进行预处理,得到预处理后的源代码,所述待编译程序是开发人员编写的用于实现网络功能的程序;
分析模块,用于对所述预处理后的源代码进行指令分析,生成相应的分析结果,以得到包括所述分析结果和所述预处理后的源代码的中间表示;
拆分模块,用于基于所述中间表示进行代码拆分,得到所述待编译程序的第一源代码和第二源代码,所述第一源代码用于生成所述待编译程序在第一可编程芯片上的可执行代码,所述第二源代码用于生成所述待编译程序在第二可编程芯片上的可执行代码,所述第一可编程芯片用于协助所述第二可编程芯片处理网络流量。
第三方面,本申请实施例还提供一种计算设备,包括:第一可编程芯片和第二可编程芯片,所述第一可编程芯片用于协助所述第二可编程芯片处理网络流量;所述第一可编程芯片上的可执行代码是基于第一源代码生成,所述第二可编程芯片上的可执行代码是基于第二源代码生成;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴(中国)有限公司,未经阿里巴巴(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111602625.1/2.html,转载请声明来源钻瓜专利网。