【IT168 专稿】一切自动化是人类的一个梦想,人们为了实现这个梦想不断努力。人们利用计算机软件与硬件实现办公自动化、管理自动化的同时,也在考虑程序代码的自动生成。
在软件工程发展过程中,计算机科学家为了降低软件开发得强度,缩短开发周期,减少代码的重复书写,从而减轻程序员的编程负担,一直以来都致力于代码自动生成方面的研究。Lex/Yacc是最早用于自动化编写编译程序的工具。随着现代化信息环境日趋复杂,各种应用软件的开发难度随之加大,这需要更有技巧,更有方法地从事软件开发,开发团队之间也必须更无障碍地沟通,否则极可能无法在有限的开发时间中完成任务。由于时间上的压力,一般人只注重程序的编写速度,却忽略其完成后的实用性与维护性,加上大型程序多人共同参与开发,每个人都有各自的程序风格,容易造成严重的差异性,随着系统规模越来越大,这将造成系统完成后在测试及维护上沉重的负担,代码自动生成技术更显出了其显著的优越性。尽管这些应用没有代码生成工具也能开发完成,但利用代码生成技术可以大大加速软件的开发进度,提高软件的质量。
代码生成的优势与劣势分析
传统的代码开发调试工作流包括“编辑、编译、以及测试”。如图1所示。代码生成增加了一些新的工作流元素。传统的编辑、编译、以及测试阶段仍然适用。在代码生成的工作流中,首先编辑模版和定义文件(或者生成器本身),然后运行生成器创建输出文件。接着对输出文件进行编译测试(如果目标语言不是编译的语言,不考虑图1(右)中的编译阶段)。

图1 传统工作流与代码生成工作流的对比