一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种编译器后端代码自动构建方法及系统与流程

2022-03-26 16:32:38 来源:中国专利 TAG:

技术特征:
1.一种编译器后端代码自动构建方法,用于在指定框架系统下自动生成目标平台的编译器后端代码,所述方法包括:s1、获取与目标平台同一框架下的已有样本平台的后端描述文件,构建样本平台的后端描述文件中每条指令基于定义-引用关系的标识符引用关系图,在标识符引用关系图中,每个标识符对应一个节点;s2、基于步骤s1中的标识符引用关系图,对标识符分类,其中,标识符被分为语言特定类型、平台特性信息类型、开发者定义类型;s3、将每条指令中不同类型的标识符转换为对应的敏捷标识符,并基于标识符引用关系图生成每条指令对应的以敏捷标识符表示的代码布局模板,所述代码布局模板中包含有平台特性信息的标识符定位;s4、获取目标平台编码指令,将目标平台编码指令与样本平台的指令进行匹配以获得与样本平台指令对应的代码布局模板,基于代码布局模板填入敏捷标识符对应的样本平台中的语言特定类型和开发者定义类型的属性值以生成目标平台的指令模块,将用户输入的目标平台编码指令中的平台特性信息属性值按照其对应定位填入指令模板中以生成当前目标平台编码指令对应的编译器后端代码。2.根据权利要求1所述的方法,其特征在于:所述语言特定类型的标识符是指编程语言中普遍存在的标识符,在标识符引用关系图中语言特定类型的标识符对应的节点没有输入也没有输出;所述平台特性信息类型的标识符是指有取决于指令集架构的标识符,在标识符引用关系图中平台特性信息类型的标识符对应的节点只有输出没有输入;所述开发者定义类型的标识符是指由开发者自己定义名称的标识符,在标识符引用关系图中开发者定义类型的标识符对应的节点既有输入也有输出。3.根据权利要求1所述的方法,其特征在于,所述平台特性信息类型的标识符定位指示的是平台特性信息类型的属性值在代码布局模板中的位置。4.根据权利要求3所述的方法,其特征在于,所述步骤s4包括针对每条目标平台编码指令执行如下步骤:s41、获取用户输入的当前目标平台编码指令中的平台特性信息属性值,其中不同的平台特性信息属性值对应于不同的敏捷标识符属性索引,所述敏捷标识符索引是预先设置的为每类敏捷标识符属性赋予的唯一索引;s42、基于步骤s41获得的平台特性信息属性值计算当前目标平台编码指令的特征向量;s43、基于步骤s42计算出的特征向量与样本平台每条指令的特征向量计算目标平台编码指令与样本平台的每条指令的欧式距离,获得与目标平台编码指令欧氏距离小于或等于预设阈值匹配成功的样本平台指令;s44、基于获得的样本平台指令对应的代码布局模块,基于代码布局模板填入敏捷标识符对应的样本平台中的语言特定类型和开发者定义类型的属性值以生成目标平台的指令模块,所述指令模板中的平台特性信息类型的标识符的属性为空并按照平台特性信息类型的标识符定位由带有属性索引信息的敏捷标识符表示;s45、将当前目标平台编码指令的平台特性信息属性值按照其对应的敏捷标识符属性
索引填入指令模板中以生成当前目标平台编码指令对应的编译器后端代码。5.根据权利要求4所述的方法,其特征在于,所述预设阈值为0.2。6.根据权利要求5所述的方法,其特征在于,采用word2vec通过如下方式生成指令的特征向量:其中,fv
i
是第i条指令的特征向量,l是指令i的平台特性信息类型的敏捷标识符的长度,是第i条指令对应的平台特性信息类型的敏捷标识符列表中的第t个属性,pw
t
是平台特性信息类型的敏捷标识符列表中的第t个属性对应的权重。7.根据权利要求6所述的方法,其特征在于,每条指令的特征向量是一个10维的向量。8.根据权利要求7所述的方法,其特征在于,通过如下方式计算两条指令间的欧式距离:其中,sd(i,j)表示第i条指令和第j条指令的欧氏距离,fv
ik
是第i条指令的特征向量中的第k维值。9.根据权利要求8所述的方法,其特征在于,所述平台特性信息类型的敏捷标识符列表中每个属性对应的权重通过如下方式预先获得:p1、获取多个样本平台的后端描述文件,并将每个样本平台的后端描述文件中的每条指令进行标识符拆分及标识符分类,将所有类别的标识符转换为对应的敏捷标识符,统计平台特性信息类型的标注符对应的所有属性的敏捷标识符以获得平台特性信息类型的敏捷标识符列表;p2、为平台特性信息类型的敏捷标识符列表中的每个属性赋予取值空间为[0,1]的权重得到一个权重组合,使得权重组合中的所有权重的累加和为1,基于当前的权重计算不同样本平台之间的指令的欧式距离以进行指令匹配,指令间的欧式距离小于或等于预设阈值的两条指令匹配成功,统计不同样本平台之间的指令匹配成功的条目数;p3、重复执行步骤p2,直至选出不同样本平台之间的指令匹配成功的条目数最大对应的权重组合。10.一种用于实现如权利要求1-9任一所述方法的系统,其特征在于,所述系统包括:样本平台代码处理模块,用于获取与目标平台同一框架下的已有样本平台的后端描述文件,构建样本平台的后端描述文件中每条指令基于定义-引用关系的标识符引用关系图,在标识符引用关系图中,每个标识符对应一个节点;代码布局模板生成模块,用于将样本平台每条指令中不同类型的标识符转换为对应的敏捷标识符,并基于标识符引用关系图生成每条指令对应的以敏捷标识符表示的代码布局模板,所述代码布局模板中包含有平台特性信息的标识符定位;指令模板生成模块,用于将目标平台编码指令与样本平台的指令进行匹配以获得样本
平台指令对应的代码布局模板,基于代码布局模板填入敏捷标识符对应的样本平台中的语言特定类型和开发者定义类型的属性值以生成目标平台的指令模块;代码生成器,用于根据用户输入的目标平台编码指令中的平台特性信息属性值按照其对应定位填入指令模板中以生成该目标平台编码指令对应的编译器后端代码。11.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序可被处理器执行以实现权利要求1至9任一所述方法的步骤。12.一种电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求1至9中任一项所述方法的步骤。

技术总结
本发明提供一种编译器后端代码自动构建方法,所述方法包括:S1、获取与目标平台同一框架下的已有样本平台的后端描述文件,构建其基于定义-引用关系的标识符引用关系图;S2、基于标识符引用关系图,对标识符分类,其中,标识符被分为语言特定类型、平台特性信息类型、开发者定义类型;S3、将每条指令中不同类型的标识符转换为对应的敏捷标识符,并基于标识符引用关系图生成每条指令对应的以敏捷标识符表示的代码布局模板,所述代码布局模板中包含有平台特性信息的标识符定位;S4、基于代码布局模板生成目标平台的指令模块,按照定位将目标平台编码指令中的平台特性信息属性值填入指令模板中以生成当前目标平台编码指令对应的编译器后端代码。译器后端代码。译器后端代码。


技术研发人员:钟茗 耿洪娜 吕方 冯晓兵
受保护的技术使用者:中国科学院计算技术研究所
技术研发日:2021.12.20
技术公布日:2022/3/25
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献