RubyConf 2008: Genetic Programming meets TDD
The themes of automatic and genetic programming will be explored in context of the Ruby programming language.
First automatic discovery of Ruby's syntax using its internal abstract syntax tree and a genetic algorithm will be explained.
Simple analysis of object oriented structure can be performed by using a semantic lexicon (ie: WordNet) and traversing the inheritance hierarchies of Ruby classes and mixed in modules.
By feeding in code snippets of certain patterns as training data to a pattern finding algorithm, existing open source projects can be searched and have results returned in the form of similar real world examples. These include basic patterns like method definition, and more advanced "design patterns".
Finally, the talk will culminate in a new programming workflow using genetic programming that involves the previously described topics. This workflow is a step forward from Test Driven Development / Refactoring, where tests/specifications are dictated in a description/behavior style (a la BDD) and contracts between interacting code/classes are specified, but the code is interactively evolved instead of hand-written.
About Larry Diehl
Larry Diehl is an Orlando developer and student that has been using Ruby as his primary language for the past 3 years.
He has programmed Rails applications full time for the past 2.5 years, first for Bear Den Designs and more recently for IZEA, while being enrolled as a full time student at the University of Central Florida and taking online courses.
Larry presents semi-regularly at the Orlando Ruby Users Group and local events such as BarCampOrlando, and blogs occasionally on programming topics at larrytheliquid.com.
He is concentrating his final year of study exclusively on academics, and is getting involved with Artificial Intelligence research, specifically Genetic Programming.