[发明专利]一种用于加载动态链接库的代码自动生成方法及装置有效
申请号: | 201410567835.5 | 申请日: | 2014-10-22 |
公开(公告)号: | CN104317589B | 公开(公告)日: | 2017-08-25 |
发明(设计)人: | 邱田华;宋斌;刘毅;吴波;方鹏;郑艳梅;谭旭 | 申请(专利权)人: | 中国电子科技集团公司第四十一研究所 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京天奇智新知识产权代理有限公司11340 | 代理人: | 陈永宁 |
地址: | 266555 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 加载 动态 链接 代码 自动 生成 方法 装置 | ||
1.一种用于加载动态链接库的代码自动生成装置,其特征在于,包括函数原型和常量定义抽取模块、抽取规则编辑模块、代码模板和参数转换规则编辑模块、目标代码生成模块;所述抽取规则编辑模块,用于为抽取模块定义抽取规则;所述函数原型和常量定义抽取模块,用于根据定义好的抽取规则从头文件中抽取出函数原型和常量定义列表;所述代码模板和参数转换规则编辑模块,用于编辑代码模板和参数转换规则;所述目标代码生成模块,根据目标代码语言和加载方式,选择对应的代码模板和参数转换规则,将函数原型和常量定义转换为目标编程语言代码。
2.如权利要求1所述的用于加载动态链接库的代码自动生成装置,其特征在于,所述抽取规则编辑模块具体执行以下步骤:
步骤1111:新建或者打开已有规则;
步骤1112:根据头文件中函数原型和变量定义格式来编辑抽取规则;
步骤1113:找出几条典型的函数原型,检验该规则是否能解析出函数名称、变量名和变量类型信息,如果是则进入步骤1114,否则执行步骤1112;
步骤1114:保存为新的规则。
3.如权利要求1所述的用于加载动态链接库的代码自动生成装置,其特征在于,所述函数原型和常量定义抽取模块具体执行以下步骤:
步骤1121:函数原型和常量定义抽取模块装载头文件;
步骤1122:选择对应的抽取规则;
步骤1123:逐行解析头文件;
步骤1124:抽取出函数原型、常量,加到函数原型、常量列表中,生成常量列表和函数列表对象;
步骤1125:判断是否为最后一行,如是则执行步骤1126,如否则执行步骤1123;
步骤1126:保存为函数原型及常量列表文件。
4.如权利要求1所述的用于加载动态链接库的代码自动生成装置,其特征在于,所述代码模板和参数转换规则编辑模块具体执行以下步骤:
步骤1131:新建规则或者打开已有规则:
步骤1132:根据目标代码手动编辑代码模板;
步骤1133:判断检索规则是否完整,如是则执行步骤1134,如否则执行步骤1132;
步骤1134:保存为新的规则后结束;参数转换规则是源参数到目标参数的转换;检查函数列表中变量类型是否都在参数转换规则中,如果未包含在转换规则中,则自动添加到规则后面,并由用户自己添加目标参数类型。
5.如权利要求1所述的用于加载动态链接库的代码自动生成装置,其特征在于,所述目标代码生成模块具体执行以下步骤:
步骤1141:加载准备好的函数原型、常量列表;
步骤1142:选择目标语言、加载方式,得到转换规则和代码模块;
步骤1143:选择需要生成的函数项、常量项集合;
步骤1144:转换为目标语言下的函数、常量列表;
步骤1145:依次执行,得到模板文件对象位置;
步骤1146:把函数和常量列表添加到模板位置;
步骤1147:判断函数项是否为集合中的最后一项,如是则执行步骤1148,如否则执行步骤1145;
步骤1148:保存目标语言代码并结束。
6.一种用于加载动态链接库的代码自动生成方法,其特征在于,包括以下步骤:
步骤1:先运行抽取规则编辑模块编辑抽取规则,运行函数原型和常量定义抽取模块来抽取函数原型和常量定义;
步骤2:检验生成的函数原型和常量定义是否抽取完毕,如是,则进入步骤3,如否则进入步骤5;
步骤3:运行目标代码模板生成模块;
步骤4:检验目标代码生成模块的目标代码是否满足需要,是则结束,否则进入步骤6;
步骤5:运行抽取规则编辑模块修改规则后执行步骤1;
步骤6:运行代码模板和参数转换规则编辑模块来编辑代码模板和参数转换规则后,进入步骤3。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第四十一研究所,未经中国电子科技集团公司第四十一研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410567835.5/1.html,转载请声明来源钻瓜专利网。