The Push3 execution stack and the evolution of control

  • Authors:
  • Lee Spector;Jon Klein;Maarten Keijzer

  • Affiliations:
  • Hampshire College, Amherst, MA;Hampshire College, Amherst, MA, and Chalmers U. Tech. & Gööteborg U., Göteborg, Sweden;Chordiant Software Inc., Amsterdam, The Netherlands

  • Venue:
  • GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Push programming language was developed for use in genetic and evolutionary computation systems, as the representation within which evolving programs are expressed. It has been used in the production of several significant results, including results that were awarded a gold medal in the Human Competitive Results competition at GECCO-2004. One of Push's attractive features in this context is its transparent support for the expression and evolution of modular architectures and complex control structures, achieved through explicit code self-manipulation. The latest version of Push, Push3, enhances this feature by permitting explicit manipulation of an execution stack that contains the expressions that are queued for execution in the interpreter. This paper provides a brief introduction to Push and to execution stack manipulation in Push3. It then presents a series of examples in which Push3 was used with a simple genetic programming system (PushGP) to evolve programs with non-trivial control structures.