Friday, 02 August, 2002

Looking Into Genetic Programming

Most programmers have had some experience with a code generator of one type or another.  In 1984, for example, I and a friend wrote a program that would generate COBOL user interface code, given a description of the screen (in a text file) and the names and types of variables that were being displayed.  It wasn't anything fancy, but it saved us hours of typing very repetitive code.  The Unix tools lex and yacc are compiler creators—given a formal description of a programming language, these tools will create a compiler front-end.  Visual Basic,  Delphi, and other similar development environments also have code-generation features.  They're great time saving devices.

But the real dream is programs that write whole programs, given only a high-level description of a problem.  That's the goal of genetic programming.  My work and personal research interests have combined to lead me down this particular path.  I'll (I hope) have a lot more to say about it in the future.