代码生成机理
代码生成器的作用是读取工程的元数据,按照指定的设计模式,混合产生出规范的源代码。典型的代码生成器模型如图4所示。在图中,为自动生成程序代码,必需的三个关键要素是设计模式(所产生代码的模板文件)、领域元数据(在代码中需建模的拓扑结构,即定义文件,通常随开发折提供的特定数据增长)。
图4 典型代码生成器的模型图
构建自己的代码生成器有2种方法,一是综合利用流行的代码生成器。构建出适合自己的代码生成器;另一种方法是构造出一个全新的代码生成器。无论哪种方法,在构建代码生成器都应该注意下面几个方面:
(1)使用纯文字样版,使用纯文字样版的好处除了编辑方便外,也能将程序代码定义逻辑和格式化逻辑分隔开来,使实作上更有弹性。
(2)编写正规表达式(Regular Expression),正规表达式是一种字符串的表示方式,使用它不仅扩大了字符串的表达能力,让使用者很容易进行字符串判断,也可避免撰写程序进行复杂字符串解析的麻烦,也自然使得数据处理的过程变得更为迅速便利。
(3)编译器原理,在对于文本文件的处理上,先利用扫描器(Scanner)扫描出其中的字符,再实作解析器(Parser)解析出所对应的语法,然后转换成所要产生的程序语言。
(4)文档输出入的处理, 由于程序产生牵涉到大量的文档读写动作,需要定义合适的数据结构及缓冲区机制来提升文档存取的效率,另一方面来说,在编写样版文档时也需考量到对于存取效率上的负担。
总而言之,随着代码生成技术的发展以及各种生成工具的出现,程序人员将从高度脑力劳动和繁琐的体力劳动解脱出来,代码编写工作将可以像生成流水线一样简单。所产生的代码将非常健壮,是高品质、高一致性、高效率的统一体。当然,并不是从所有的代码生成技术中都可以获得上面列出的好处。在一个软件工具中采用和实现代码生成技术需要对具体需求的评估、对各种技术的综合考虑甚至还包括对“拿来”和自行开发的一种权衡。