agent based modeling = simulating actions of multiple people with their own subjective preferences, perspectives, and behaviors
genetic programming = hotswapping software inside programs in an evolutionary fashion (survival of fittest, ancestry) to optimize towards a predefined objective
GP almost always involved ABM since thats kinda how evolution works but a lot of people never go past ABM into GP.
Stack based Push programs are different from Lisp-style function trees. It was developed primarily for "meta-genetic-programming" or "autoconstructive evolution" experiments, in which programs and genetic operators co-evolve or in which programs produce their own offspring while also solving problems. 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.