Loft engineer Jan Svoboda is studying Grammatical Evolution – a technique that mimics biological evolution as described by Darwin, to create new software. It’s able to generate computer code based on user-defined cost functions, such as unit tests. It creates random fragments of code and evaluates how good they are using the cost function. It then combines the relatively good solutions together, which usually leads to even better solutions. In this way, in theory, we can use AI to develop new software programs to achieve a defined goal, in any arbitrary language, based on a formal definition of its grammar.
There’s a great TED talk by Maurice Conti about Evolutionary Design, which is closely related. (The above screenshot is from this talk.)
For a more technical introduction, you can read this paper from Utrecht University’s Department of Computing and Information Science.