买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:东北大学
摘要:本发明提供了一种多程序语言跨指令集架构移植方法,涉及程序语言移植方法,在待迁移软件项目压缩包上传后,工具可以自动化扫描软件内部结构中与架构相关的软件成分,包括依赖库信息、源代码成分和配置文件成分等,进行定位和分类归纳,同时结合构建的知识库以及不同架构的白名单和源码映射知识库进行匹配,生成不同类型的迁移建议,从而辅助开发者完成软件迁移工作,与现有技术相比,本发明提出的技术方案中采取自动化定位软件包中和架构相关的软件成分,并可帮助定位多程序语言在迁移时所需要关注的架构相关软件成分,针对不同的待迁移的成分类别,结合收集的知识库,生成定制化的迁移建议,辅助开发者快速构建目标指令集架构的开源软件生态。
主权项:1.一种多程序语言跨指令集架构移植方法,其特征在于,包括:步骤1:上传待迁移软件包;步骤2:判断所述待迁移软件包是否完成迁移,在所述待迁移软件包完成迁移的情况下,迁移流程结束;在所述待迁移软件包未完成迁移的情况下,执行步骤3;步骤3:判断待迁移软件包的类型,根据待迁移软件包的后缀名,判断待迁移软件包的类型为二进制包或软件源码压缩包,在待迁移软件包的类型为二进制包的情况下,执行步骤4,在待迁移软件包的类型为软件源码压缩包的情况下,执行步骤5;步骤4:对待迁移软件包进行解压,得到待迁移软件包的文件列表,判断待迁移软件包的文件列表中是否包含第一可执行文件,在所述待迁移软件包的文件列表中不包含第一可执行文件的情况下,表征待迁移软件包不需要迁移,迁移流程结束;在待迁移软件包的文件列表中包含第一可执行文件的情况下,获取第一可执行文件,根据第一可执行文件的名称和版本,将所有第一可执行文件的名称和版本与预先构建的文件粒度知识库中可执行文件的名称和版本进行匹配,若所有第一可执行文件的名称和版本与预先构建的文件粒度知识库中可执行文件的名称和版本均匹配,表征所述待迁移软件包与目标架构兼容,所述目标架构为待迁移软件包即将迁移到的指令集架构,待迁移软件包与目标架构兼容表征所述待迁移软件包已经完成迁移,迁移流程结束;若所有第一可执行文件的名称和版本与预先构建的文件粒度知识库中可执行文件的名称和版本不匹配,表征待迁移软件包需要迁移,输出待迁移软件包的文件列表;所述文件粒度知识库包括多个可执行文件的目标信息,所述目标信息包括可执行文件的名称、可执行文件的版本、可执行文件的直接依赖文件、可执行文件的传递依赖文件和可执行文件所属的指令集架构;步骤5:对待迁移软件包进行解压,得到解压后的文件,并根据解压后的文件中的第二可执行文件的名称和版本,以及预先构建的文件粒度知识库,获取待迁移软件包中的项目配置文件和工程文件,所述工程文件为文件后缀为编程语言文件后缀的文件;步骤6:获取项目配置文件中第三方组件库的名称和版本,并获取第一架构特征对应的代码片段,所述第一架构特征对应的代码片段包括项目配置文件中指令集架构特征对应的代码片段,以及工程文件中的指令集架构特征对应的代码片段,并获取工程文件中目标函数对应的变量名和所述变量名对应的值,所述目标函数为能够在预设的编程语言中加载可执行文件的函数,所述变量名对应的值为可执行文件的名称;步骤7:根据项目配置文件中第三方组件库的名称和版本和第一架构特征对应的代码片段,生成迁移建议步骤7.1:针对项目配置文件中第三方组件库的名称和版本,根据第三方组件库的名称和版本,在软件包粒度知识库中进行查找,若软件包粒度知识库中存在与第三方组件库的名称和版本相同的软件包,则表征待迁移软件包可在目标架构中运行,则输出提示信息,所述提示信息用于提示待迁移软件包已完成迁移,迁移流程结束;若软件包粒度知识库中存在与第三方组件库的名称相同但版本不相同的软件包,则生成的迁移建议为将项目配置文件中第三方组件库的版本替换为软件包粒度知识库中与第三方组件库的名称相同但版本不相同的版本;所述软件包粒度知识库多个软件包的软件信息,所述软件信息包括软件包中项目的名称、软件包的版本、软件包能够运行的操作系统和软件包能够运行的指令集架构;步骤7.2:针对第一架构特征对应的代码片段,确定第一架构特征对应的代码片段的指令集架构特征关键词,根据指令集架构特征关键词,以及预先构建的代码粒度知识库中指令集架构特征和指令集架构特征对应的不同指令集架构下的代码片段之间的映射关系,在代码粒度知识库中查找,得到指令集架构特征关键词对应的多个指令集架构下的代码片段,获取目标架构对应的代码片段,进而确定目标架构对应的代码片段包含的具体的标准架构特征,判断第一架构特征对应的代码片段中具体的指令集架构特征和标准架构特征是否相同,在第一架构特征对应的代码片段中具体的指令集架构特征和标准架构特征不相同的情况下,生成的迁移建议为:将第一架构特征对应的代码片段中具体的指令集架构特征对应的代码片段替换为代码粒度知识库中与目标架构对应的代码片段;所述代码粒度知识库包括指令集架构特征和指令集架构特征对应的不同指令集架构下的代码片段之间的映射关系;根据所述变量名对应的值,在文件粒度的知识库进行查找,若在文件粒度的知识库能够查找到所述变量名对应的值,表征所述变量名对应的值对应的可执行文件已完成迁移,迁移流程结束,若在文件粒度的知识库没有查找到所述变量名对应的值,表征所述变量名对应的值对应的可执行文件需要迁移。
全文数据:
权利要求:
百度查询: 东北大学 一种多程序语言跨指令集架构移植方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。