Expressing Evolution with Functional Programming Languages

Hello, I have just searched the FAQ and there isn't a reference to work done on software evolution in the context of functional programming.

Software evolution is defined to be any change to the system that affects its behaviour. For example, changing the source of a functional program is software evolution, changing the interpreter during program execution would also be considered software evolution.

Do you know of any work in the area of functional programming that has concerned itself with the change and evolution of such programs?

Thanks. Huw Evans

Sun, 12 Aug 2001 03:00:00 GMT

Ikra#2 / 2

Expressing Evolution with Functional Programming Languages

Huw> Software evolution is defined to be any change to the system Huw> that affects its behaviour. For example, changing the source Huw> of a functional program is software evolution, changing the Huw> interpreter during program execution would also be considered Huw> software evolution.

your description would seem to fit Koza's genetic programming (GP) paradigm, which attempts iteratively to refine a population of programs using a genetic algorithm. many (probably most) GP applications evolve source code written in applicative side-effect-free languages, and in that sense do a kind of automatic functional programming.

I believe that Clack & Yu are investigating the addition of further functional programming features into GP. details in <URL:http://www.cs.ucl.ac.uk/staff/t.yu/research.html>

the Probabilistic Incremental Program Evolution system of Salustowicz & Schmidhuber may also be of interest: <URL:http://www.idsia.ch/~rafal/research.html>

if you'd like to see my simple implementation of GP in Haskell please E-mail.