REVIEW - Code Generation in Action


Code Generation in Action


Jack Herrington



Manning Publications Company (2003)




Mathew Davies


April 2004



Code generation involves writing programs to generate the source code for other programs. This book demonstrates how it can sometimes make good engineering sense to generate source code automatically. The author explains what code generation is, when automatic code generation might be appropriate, how it might be accommodated within the software development process, and how you might go about organising and managing code generation.

Mr Herrington chooses the Ruby programming language to build his code generators, using XML to build the text files that drive his generators. He demonstrates how combining the Ruby programming language with its ReXML extension provides a means of extracting all necessary information from these input files.

The book demonstrates the code generation technique by showing you how to build a series of small but useful generators. A particularly nice touch to this book is the author's attention to the practical details. For example, he makes time and space to discuss the types of objection that other members of the software development and management teams might raise to the use of code generation. He also provides you with advice on techniques for dealing with such objections.

I feel that the real value of this book lies not in the particular examples that have been chosen to illustrate the technique but in the ideas that it generates for applications elsewhere. The book certainly seems to justify its current retail price of around£25.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept All Cookies" you agree ACCU can store cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

By clicking "Share IP Address" you agree ACCU can forward your IP address to third-party sites to enhance the information presented on the site, and that these sites may store cookies on your device.