[Push] Push2 available
Lee Spector
lspector at hampshire.edu
Thu Jan 8 15:59:42 EST 2004
A major revision to the "Push" language for evolutionary computation
("Push2") has been completed and a number of new files are now
available for viewing/download. In particular, the following are now
available:
- A specification document that serves both as a concise introduction
to the language and as a language reference.
- A Push2 interpreter implemented in Common Lisp and distributed in
source code form.
- A Push2 interpreter implemented in C++ and distributed in source code
form.
- Versions of PushGP (a simple genetic programming system that evolves
Push programs) for both the Lisp and the C++ Push2 implementations.
- A Push2 interpreter (based on the C++ version) built as a plug-in for
the BREVE simulation environment.
Many of the code distributions are currently labeled as "beta"
versions, and we make no promises of support. But this is an active
project and we expect to fix bugs and to remove "beta" designations in
the near future.
All of this, along with links to related publications, to Push-related
code by others, and to a Push-specific mailing list, can be found at:
http://hampshire.edu/lspector/push.html
I am including below a very brief description of Push; more complete
documentation can be found at the above URL.
Enjoy,
-Lee
---- Brief description of Push ----
Push is a programming language intended primarily for use in
evolutionary computation systems (such as genetic programming systems),
as the language in which evolving programs are expressed. Push has an
unusually simple syntax, which facilitates the development (or
evolution) of mutation and recombination operators that generate and
manipulate programs. Despite this simple syntax, Push provides more
expressive power than most other program representations that are used
for program evolution. Push programs can process multiple data types
(without the syntax restrictions that usually accompany this
capability), and they can express and make use of arbitrary control
structures (e.g. recursive subroutines and macros) through the explicit
manipulation of their own code (via a "CODE" data type). This allows
Push to support the automatic evolution of modular program
architectures in a particularly simple way, even when it Push is
employed in an otherwise ordinary genetic programming system (such as
PushGP, which is a "generic" GP system except that it evolves Push
programs rather than Lisp-style program trees). Push can also support
entirely new evolutionary computation paradigms such as
"autoconstructive evolution," in which genetic operators and other
components of the evolutionary system themselves evolve (as in the
Pushpop and SwarmEvolve2 systems).
--
Lee Spector
Dean, Cognitive Science + Associate Professor, Computer Science
Cognitive Science, Hampshire College, Amherst, MA 01002
lspector at hampshire.edu, http://hampshire.edu/lspector/
Phone: 413-559-5352, Fax: 413-559-5438
More information about the Push
mailing list