[发明专利]一种基于动态编译的代码编译生成工具和一种动态编译方法在审
申请号: | 201910232583.3 | 申请日: | 2019-03-26 |
公开(公告)号: | CN109947430A | 公开(公告)日: | 2019-06-28 |
发明(设计)人: | 周由甲;张进;王洁 | 申请(专利权)人: | 山东浪潮通软信息科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 陈婷婷 |
地址: | 250100 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态编译 代码编译 生成模块 计算机软件应用 代码动态 代码生成 代码文件 方法使用 方式编译 工具实现 工作效率 生成文件 用户使用 自定义 编译 文本 门槛 | ||
本发明公开了一种基于动态编译的代码编译生成工具和一种动态编译方法,属于计算机软件应用技术领域,该工具实现代码的动态编译和生成,该工具包含以下步骤:1)、按照程序集结构划分生成模块;2)、支持生成文件类型和路径的选择;3)、支持生成方法自定义扩展;4)、支持导入文本的方式编译生成代码文件。一种动态编译方法,该方法使用代码编译生成工具,实现代码的动态编译和生成,代码生成时,通过所述工具按照程序集结构划分生成模块,生成相应的程序集结构。本发明降低了用户使用动态编译进行代码动态编译生成的门槛,简化了操作,提高了用户的工作效率。
技术领域
本发明涉及计算机软件应用技术领域,具体地说是一种基于动态编译的代码编译生成工具和一种动态编译方法。
背景技术
由于传统的静态编译器存在执行文件体积庞大,运行期解析的方式运行性能较差等问题,在某些领域中动态编译受到了越来越多的青睐。动态编译具有按需编译生成,提高运行效率,优化软件空间,优化资源分配等优势。但现有的一些动态编译器使用起来十分繁琐,编写代码结构复杂且代码量巨大,对开发人员的能力要求比较高。如果有一种实现更为简单的动态编译工具,能够简化编码的工作量,并提高可读性,方便开发人员理解使用,优化开发体验,势必可以降低开发人员使用的门槛,提高工作效率,使动态编译的应用更为广泛。
发明内容
本发明的技术任务是针对以上不足之处,提供一种基于动态编译的代码编译生成工具和一种动态编译方法,可以简单、清晰的帮助开发人员使用动态编译的方式实现需求,优化开发体验。
本发明解决其技术问题所采用的技术方案是:
一种基于动态编译的代码编译生成工具,该工具实现代码的动态编译和生成,该工具包含以下步骤:
1)、按照程序集结构划分生成模块;
2)、支持生成文件类型和路径的选择;
3)、支持生成方法自定义扩展;
4)、支持导入文本的方式编译生成代码文件。
具体的,所述程序集结构包括程序集、命名空间、类/接口/枚举类、方法/属性/字段、标签;相应的,按照程序集结构划分生成模块,该工具基于此结构,划分成不同的生成模块,每一类生成模块负责其中对应部分的生成,划分的生成模块包括程序集生成模块、命名空间生成模块、类/接口/枚举类生成模块、方法/属性/字段生成模块、标签生成模块。其中每个模块包含一个或多个子模块,用户可自定义增删。
优选的,程序集生成模块中包含生成程序集中所需要的信息,包括程序集名称,引用的程序集集合,文件类型,生成类型,生成路径,及命名空间生成模块集合。具体描述如下:
优选的,命名空间生成模块中包含生成命名空间所需要的信息,包括命名空间名称,及包含的类/接口/枚举类生成模块。
优选的,类生成模块描述了类生成时需要的信息,包括类名称,实现接口集合,父类类型,修饰符类型,包含的字段/属性/方法生成模块,及标签生成模块;具体描述如下:
接口生成模块,描述了接口生成时需要的信息,包括接口名称,实现接口集合,修饰符类型,包含的字段/属性/方法生成模块,及标签生成模块;
枚举类生成模块描述了枚举类生成时需要的信息,包括枚举类名称,命名空间名称,父类类型,修饰符类型,以及枚举值字典。枚举值字典中的Key为枚举值索引号,Value为枚举值。
进一步的,
字段生成模块包含了生成字段所需要的信息,包括字段类型,字段名称,修饰符,及初始值语法树。具体描述如下:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮通软信息科技有限公司,未经山东浪潮通软信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910232583.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:数据处理方法及装置
- 下一篇:一种代码生成方法、装置、设备及存储介质