[portland] Saturday: more code sprinting

Jesse Hallett hallettj at gmail.com
Wed Jan 16 00:40:57 CET 2008

Hi Jeff,

I had an idea that I think would be fun as a group project. I have
heard here and there about experiments involving creating computer
programs that can reproduce and evolve. Sometimes this is done as part
of a genetic algorithm; but sometimes it is just for fun. One story
that really got me interested was told by a guy who created such a
program in a Linux environment. He let it go for a while - but
eventually got bored and wiped the directory containing the
reproducing programs. Later he discovered that the programs had
developed the ability the leave that directory, and so had actually
escaped deletion. I am interested in finding out what other
interesting behaviors might develop if these things are allowed to
keep going for a while.

Programs can be made to replicate and change by parsing their own
source code into an abstract syntax tree. Then nodes are swapped out
at random with nodes from another program, or that are randomly
generated. The program then produces a new source file that
incorporates the changes, compiles it, and sets it running.

I would want to write this project in Scheme; mostly because parsing
syntax trees in LISP derived languages is as easy as matching
parenthesis. But any functional language would work. Functional
languages are much better suited than languages from other paradigms
because every node in a functional syntax tree is essentially a
self-contained program.

I think that the hardest part of this project will be answering these questions:

1. What sort of goals and challenges should be provided for these programs?
2. How will programs share genetic code and/or mutate so as to create
interesting development?
3. How will programs interact? For instance, will they be able to eat
each other? How will they exchange code? And how will the find each
other for these purposes?

After writing all of this, I found out that I won't be available on
Saturday. So I think this is an idea to consider for a future code
sprint. If anybody is interested, I recommend reading up on Scheme, or
LISP generally, and genetic algorithms. But remember that this project
differs from the usual implementation genetic algorithms in that
reproduction would be unsupervised.


On Jan 14, 2008 4:27 PM, Jeff Schwaber <freyley at gmail.com> wrote:
> Hey folks,
> Saturday, starting at 10am, there's going to be more code sprinting.
> But I've been invited to a competing event, a truffle hunt.
> Who's going to tell me about the fabulous project they have to work
> on, or their excitement and anticipation for this week's code sprint
> and keep me from going truffling instead?
> Jeff
> _______________________________________________
> Portland mailing list
> Portland at python.org
> http://mail.python.org/mailman/listinfo/portland

More information about the Portland mailing list