The Push3 execution stack and the evolution of control (2005)
| Venue: | In Proc. Gen. and Evol. Comp. Conf |
| Citations: | 19 - 5 self |
BibTeX
@INPROCEEDINGS{Spector05thepush3,
author = {Lee Spector and Jon Klein and Maarten Keijzer},
title = {The Push3 execution stack and the evolution of control},
booktitle = {In Proc. Gen. and Evol. Comp. Conf},
year = {2005},
pages = {1689--1696},
publisher = {ACM Press}
}
OpenURL
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.







