Friday, March 28, 2008

Self-Replication & Philogenesis

We have already explained how the software is able to replicate itself: it is possible to write a program which can return its own code. We have hint to the "universality" of all conventional programming languages, i.e. it is possible to write a program in the language A which is able to execute programs written in A. I apologize for this raw summing up.
So we know write programs able to "understand" themselves : is this a primitive form of self-consciousness? I will definetly not speak of this kind of issues, even if I will probably provide some about "Computability & Unsolvability" ...try google such a string ... something about Martin Davis ? ... :)
Well we can write a program (we call this program A_INT) able to produce a program (itself) as output and potentially able to predict the behaviour of it on a (small?) set of input. May be A_INT can improve some its own function!
Probably yes ... May this a base principle for a real digital life? ... We should ask it to an expert. Probably Peter Bently or Gregory Hornby can provide more significant feedbacks on this matter.
A_INT can dynamically define a sort of fitness function by results obtained on the input or by the a way the results are obtained (e.g. how long a computation takes) ... Wow!! we are embedding an evolutionary computation in A_INT: so we have obtained a self-replicating evolutionary interpreter.
Scientific literature is full of works on evolution applied to SW, the best example (and the base of thousands of other works), in my opinion are the works on evolutionary programming by John Koza.
The follwing picture shows the main concept at the base of all Koza works: code recombination on tree representing a program (i.e. a graphical representation of functional programming) and consequent offspring generation.

... hmmm I think there is something wrong ... what about the role of the environment? ... and, first of all, what is the environment ?

Labels:

1 Comments:

Anonymous Anonymous said...

Very interesting blog!

April 2, 2008 at 4:00 PM  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home