一种基于动态编译的代码编译生成工具和一种动态编译方法技术

技术编号:21476811 阅读:15 留言:0更新日期:2019-06-29 04:36
本发明专利技术公开了一种基于动态编译的代码编译生成工具和一种动态编译方法,属于计算机软件应用技术领域,该工具实现代码的动态编译和生成,该工具包含以下步骤:1)、按照程序集结构划分生成模块;2)、支持生成文件类型和路径的选择;3)、支持生成方法自定义扩展;4)、支持导入文本的方式编译生成代码文件。一种动态编译方法,该方法使用代码编译生成工具,实现代码的动态编译和生成,代码生成时,通过所述工具按照程序集结构划分生成模块,生成相应的程序集结构。本发明专利技术降低了用户使用动态编译进行代码动态编译生成的门槛,简化了操作,提高了用户的工作效率。

【技术实现步骤摘要】
一种基于动态编译的代码编译生成工具和一种动态编译方法
本专利技术涉及计算机软件应用
,具体地说是一种基于动态编译的代码编译生成工具和一种动态编译方法。
技术介绍
由于传统的静态编译器存在执行文件体积庞大,运行期解析的方式运行性能较差等问题,在某些领域中动态编译受到了越来越多的青睐。动态编译具有按需编译生成,提高运行效率,优化软件空间,优化资源分配等优势。但现有的一些动态编译器使用起来十分繁琐,编写代码结构复杂且代码量巨大,对开发人员的能力要求比较高。如果有一种实现更为简单的动态编译工具,能够简化编码的工作量,并提高可读性,方便开发人员理解使用,优化开发体验,势必可以降低开发人员使用的门槛,提高工作效率,使动态编译的应用更为广泛。
技术实现思路
本专利技术的技术任务是针对以上不足之处,提供一种基于动态编译的代码编译生成工具和一种动态编译方法,可以简单、清晰的帮助开发人员使用动态编译的方式实现需求,优化开发体验。本专利技术解决其技术问题所采用的技术方案是:一种基于动态编译的代码编译生成工具,该工具实现代码的动态编译和生成,该工具包含以下步骤:1)、按照程序集结构划分生成模块;2)、支持生成文件类型和路径的选择;3)、支持生成方法自定义扩展;4)、支持导入文本的方式编译生成代码文件。具体的,所述程序集结构包括程序集、命名空间、类/接口/枚举类、方法/属性/字段、标签;相应的,按照程序集结构划分生成模块,该工具基于此结构,划分成不同的生成模块,每一类生成模块负责其中对应部分的生成,划分的生成模块包括程序集生成模块、命名空间生成模块、类/接口/枚举类生成模块、方法/属性/字段生成模块、标签生成模块。其中每个模块包含一个或多个子模块,用户可自定义增删。优选的,程序集生成模块中包含生成程序集中所需要的信息,包括程序集名称,引用的程序集集合,文件类型,生成类型,生成路径,及命名空间生成模块集合。具体描述如下:优选的,命名空间生成模块中包含生成命名空间所需要的信息,包括命名空间名称,及包含的类/接口/枚举类生成模块。优选的,类生成模块描述了类生成时需要的信息,包括类名称,实现接口集合,父类类型,修饰符类型,包含的字段/属性/方法生成模块,及标签生成模块;具体描述如下:接口生成模块,描述了接口生成时需要的信息,包括接口名称,实现接口集合,修饰符类型,包含的字段/属性/方法生成模块,及标签生成模块;枚举类生成模块描述了枚举类生成时需要的信息,包括枚举类名称,命名空间名称,父类类型,修饰符类型,以及枚举值字典。枚举值字典中的Key为枚举值索引号,Value为枚举值。进一步的,字段生成模块包含了生成字段所需要的信息,包括字段类型,字段名称,修饰符,及初始值语法树。具体描述如下:属性生成模块包含了生成属性所需要的信息,包括属性类型,属性名称,修饰符,Get方法方法体语法树,是否包含Set方法,Set方法方法体语法树,是否显示实现,显示实现类型,及包含的标签生成模块。具体描述如下:方法生成模块包含了生成方法所需要的信息,包括方法名称,方法返回值类型,修饰符,参数列表,是否显示实现,显示实现类型,及方法体语法树。进一步的,所述的方法生成模块衍生出构造函数生成模块,包括类名称,修饰符,参数列表,构造函数初始化器类型,构造函数初始化器参数,构造函数方法体语法树。其中构造函数初始化器类型包含None,This,Base三种类型。进一步的,标签生成模块包含了生成标签所需要的信息,包括标签名称,标签参数列表。具体的,对于步骤2),支持生成文件类型和路径的选择,该工具支持的应用类型包括生成控制台应用、Windows窗体应用和类库,同时也支持生成到内存和生成到物理文件,其中生成到物理文件时,支持路径选择;对于步骤3),支持生成方法自定义扩展,该工具提供扩展机制,可以屏蔽现有生成模块,将自定义模块注册到工具中,如果当前生成模块无法满足开发人员需求,开发人员可以继承相关生成模块的基类,并注册到生成工具当中,实现自定义扩展;对于步骤4),支持导入文本的方式编译生成代码文件,该工具支持开发人员将已经编写好的文本格式的类或接口的代码直接导入到工具中,这样开发人员只需要配置相关的程序集和命名空间信息,就可以完成编译生成工作。用户将已编写好的文本格式的类或接口的代码直接导入到工具中并编译生成。通过使用该编译生成工具,能够协助开发人员简单清晰的实现动态编译;且生成的程序集文件支持多种格式、多种存储方法,可供开发人员根据需求选择;当工具不能妈祖开发人员需求时,页可以使用扩展方式注册自定义生成模块。本专利技术还公开了一种动态编译方法,该方法使用代码编译生成工具,实现代码的动态编译和生成,代码生成时,通过代码编译生成工具按照程序集结构划分生成模块,生成相应的程序集结构;程序集结构包括程序集、命名空间、类/接口/枚举类、方法/属性/字段、标签等。相应的,该工具划分的生成模块包括程序集生成模块、命名空间生成模块、类/接口/枚举类生成模块、方法/属性/字段生成模块、标签生成模块等。程序集生成模块中包含生成程序集中所需要的信息,包括程序集名称,引用的程序集集合,文件类型,生成类型,生成路径,及命名空间生成模块集合。命名空间生成模块中包含生成命名空间所需要的信息,包括命名空间名称,及包含的类/接口/枚举类生成模块。类生成模块描述了类生成时需要的信息,包括类名称,实现接口集合,父类类型,修饰符类型,包含的字段/属性/方法生成模块,及标签生成模块。接口生成模块,描述了接口生成时需要的信息,包括接口名称,实现接口集合,修饰符类型,包含的字段/属性/方法生成模块,及标签生成模块。枚举类生成模块描述了枚举类生成时需要的信息,包括枚举类名称,命名空间名称,父类类型,修饰符类型,以及枚举值字典。枚举值字典中的Key为枚举值索引号,Value为枚举值。方法生成模块包含了生成方法所需要的信息,包括方法名称,方法返回值类型,修饰符,参数列表,是否显示实现,显示实现类型,及方法体语法树。性生成模块包含了生成属性所需要的信息,包括属性类型,属性名称,修饰符,Get方法方法体语法树,是否包含Set方法,Set方法方法体语法树,是否显示实现,显示实现类型,及包含的标签生成模块。字段生成模块包含了生成字段所需要的信息,包括字段类型,字段名称,修饰符,及初始值语法树。标签生成模块包含了生成标签所需要的信息,包括标签名称,标签参数列表。该方法在代码生成时,支持生成文件类型和路径的选择,支持生成方法自定义扩展,支持导入文本的方式编译生成代码文件,用户将已编写好的文本格式的类或接口的代码直接导入到所述工具中编译生成。支持的应用类型包括生成控制台应用、Windows窗体应用和类库,同时也支持生成到内存和生成到物理文件,其中生成到物理文件时,支持路径选择;支持生成方法自定义扩展,可以屏蔽现有生成模块,将自定义模块注册到工具中,如果当前生成模块无法满足开发人员需求,开发人员可以继承相关生成模块的基类,并注册到生成工具当中,实现自定义扩展;支持开发人员将已经编写好的文本格式的类或接口的代码直接导入到工具中,这样开发人员只需要配置相关的程序集和命名空间信息,就可以完成编译生成工作。本专利技术的一种基于动态编译的代码编译生成工具和本文档来自技高网...

【技术保护点】
1.一种基于动态编译的代码编译生成工具,该工具实现代码的动态编译和生成,其特征在于该工具包含以下步骤:1)、按照程序集结构划分生成模块;2)、支持生成文件类型和路径的选择;3)、支持生成方法自定义扩展;4)、支持导入文本的方式编译生成代码文件。

【技术特征摘要】
1.一种基于动态编译的代码编译生成工具,该工具实现代码的动态编译和生成,其特征在于该工具包含以下步骤:1)、按照程序集结构划分生成模块;2)、支持生成文件类型和路径的选择;3)、支持生成方法自定义扩展;4)、支持导入文本的方式编译生成代码文件。2.根据权利要求1所述的一种基于动态编译的代码编译生成工具,其特征在于所述程序集结构包括程序集、命名空间、类/接口/枚举类、方法/属性/字段、标签;相应的,该工具生成的模块包括程序集生成模块、命名空间生成模块、类/接口/枚举类生成模块、方法/属性/字段生成模块、标签生成模块。3.根据权利要求2所述的一种基于动态编译的代码编译生成工具,其特征在于程序集生成模块中包含生成程序集中所需要的信息,包括程序集名称,引用的程序集集合,文件类型,生成类型,生成路径,及命名空间生成模块集合。4.根据权利要求2所述的一种基于动态编译的代码编译生成工具,其特征在于命名空间生成模块中包含生成命名空间所需要的信息,包括命名空间名称,及包含的类/接口/枚举类生成模块。5.根据权利要求2所述的一种基于动态编译的代码编译生成工具,其特征在于类生成模块描述了类生成时需要的信息,包括类名称,实现接口集合,父类类型,修饰符类型,包含的字段/属性/方法生成模块,及标签生成模块;接口生成模块,描述了接口生成时需要的信息,包括接口名称,实现接口集合,修饰符类型,包含的字段/属性/方法生成模块,及标签生成模块;枚举类生成模块描述了枚举类生成时需要的信息,包括枚举类名称,命名空间名称,父类类型,修饰符类型,以及枚举值字典。6.根据权利要求2所述的一种基于动态编译的代码编译生成工具,其特征在于方法生成模块包含了生成方...

【专利技术属性】
技术研发人员:周由甲张进王洁
申请(专利权)人:山东浪潮通软信息科技有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1