自动代码生成

来源:互联网 发布:全栈工程师是程序员吗 编辑:程序博客网 时间:2024/05/29 05:12

关注自动代码生成的技术好久了。总的来说可以分为两类,一个模型生成代码,例如UML,xml;一个是模板+配置生成代码。

 

从技术上来说两者是相通的,这么分只是用于开发的模式不一样。模型代码生成有很多的GUI设计工具,但是模板代码生成一直没有见到好的工具,大部分是通过配置脚本来实现的,有时候脚本过于复杂,本身也就和代码一样变得难以维护。

 

大部分公司对自动代码生成的需求都来源于代码库的维护问题。

某部门做了个项目,库里积累的一些比较成型的代码,代码复用率比较高,麻烦的是每次新项目或变更都要频繁的更改,这时候就可以考虑用自动代码生成的技术去改造代码变更的流程了。

 

当然代码模块化程度不是很好的时候,特别是对于一些手工编写的C代码库,使用模型生成的代码往往伤筋动骨,对开发效率的影响很大。适度的采用模板代码生成技术可以提高代码变更的效率,关键是通过对模板和配置的理解,可以对变更的需求进一步整理。积累到一定程度,就可以用模型来描述代码变更需求,最终通过模型代码生成来保证高质量和效率的代码开发。

 

另一种代码生成技术的分类是主动代码生成Active Code Generation和被动Passive Code Generation。

 

代码产业化的另一个热点是对自动代码生成工具的定制。就是某一专业领域的代码成熟后,不仅仅是卖代码,还把代码相关的设计,变更流程,通过软件界面固化后,打包一起卖。TargetLink, Embedded Coder, ASCET-SD, SCADE Driver, CANbedded, MicroSAR无不属于此类。由于这类工具的供应商都有很强的专业咨询背景,往往是某一行业的老大,已经具备将项目作为产品来卖的实力。

 

先列举一下网上相关的资源,我只关注开源的C代码生成工具与方法。

http://en.wikipedia.org/wiki/Comparison_of_code_generation_tools

 

被逼无奈,开始用vim脚本做自动代码生成了。


录制脚本 vim -W  script.vim sour.txt

执行脚本vim -n -s script.vim object.txt >NUL

原创粉丝点击