[Push] Re: [GP] GP, meta programming and reflection

Lee Spector lspector at hampshire.edu
Sun Mar 2 11:08:16 EST 2003


Tom,

The Push project and the PushGP genetic programming system provide some
points of contact to these ideas. The Push programming language allows for
explicit code manipulation and many of the interesting features of
evolutionary computing systems based on Push (like PushGP) derive from this
capability. For example, it is simple for a Push program to duplicate
chunks of its own code (with possible modificiations) to implement modules,
eliminating the need for any add-on ADF/ADM mechanisms. Other "fancy" GP
features (like support for recursion and evolution of genetic operators)
are also supported naturally by the code-self-manipulation features.

On the other hand, it's not always clear in an evolved Push program what's
the "meta" program and what's the "object" program -- one often finds a
bunch of self-manipulating/self-executing code that uses non-traditional
techniques. So I don't know if this is really what you're after.

More information on the Push project (including code and papers) can be
found at http://hampshire.edu/lspector/push.html

That page is not 100% current -- for example I know that there are at least
three other versions of Push in existence (one in Java by Russ Abbott at
http://abbott.calstatela.edu/GeneticProgramming/, one by Keith Downing, and
one in C by Chris Perry and Jon Klein and incorporated into the Breve
simulation environment). This stuff isn't yet on the page... I ought to
update it soon...

I'd be happy to discuss any of this further with you.

 -Lee



Metaprogramming can be defined as the art of programming programs which
can read, manipulate or write other programs.   A typical example are
interpreters.  These are programs which are able to manipulate and
reason about lower level programs.  In most cases, the interpreter is
referred to as the meta-level and the program is at the object level.

Since GP is all about the evolution of programming, it seems logical
that one would like to evolve combinations of meta programs and object
programs to solve problems.  I was wondering whether this issue has been
recognised before in GP. I assume it has yet i'm not aware of any major
contribution in this context.  Can somebody provide me with a pointer?
If this has not been recognised before, can anyone explain why it might
not seem relevant for a GP system?

Tom


--

Tom Lenaerts (tlenaert at vub.ac.be)
Artificial Intelligence Lab (ARTI)
Computational Modeling Lab (CoMo)
Department of Computer Science (DINF)
Faculty of Science
Vrije Universiteit Brussel
Pleinlaan 2, 1050 Brussels
<http://como.vub.ac.be/Members/tom.htm>http://como.vub.ac.be/Members/tom.htm

Yahoo! Groups Sponsor
ADVERTISEMENT
<http://rd.yahoo.com/M=246920.2960106.4328965.2848452/D=egroupweb/S=1705948923:HM/A=1464858/R=0/*http://www.gotomypc.com/u/tr/yh/cpm/grp/300_Cquo_1/g22lp?Target=mm/g22lp.tmpl>



To unsubscribe from this group, send an email to:
genetic_programming-unsubscribe at yahoogroups.com



Your use of Yahoo! Groups is subject to the
<http://docs.yahoo.com/info/terms/>Yahoo! Terms of Service.

--
Lee Spector
Dean, School of Cognitive Science
Associate Professor of Computer Science    lspector at hampshire.edu
Cognitive Science, Hampshire College       http://hampshire.edu/lspector/
Amherst, MA 01002                          413-559-5352, Fax: 413-559-5438




More information about the Push mailing list