Skip to content
/ PUSH Public

A fast C implementation of the genetic programming language PUSH

License

Notifications You must be signed in to change notification settings

jgraef/PUSH

Repository files navigation

PUSH - A fast C implementation of the genetic programming language PUSH

This PUSH implementation is written in pure C (except Python wrapper) and uses
GLib for Code lists and Stacks (also for Hashtables and some other things).

Features:
	* Fast execution: About 1 million PUSH instructions per second
	  (tested on AMD64 Athlon 3500+)
	* Almost no dependencies: Only glib-2.28.6 (or higher)
	* Store and load interpreter states (and thus also code) into / from
	  XML files
	* Run multiple programs together in a multi-threaded PUSH VM
	* Coming soon: Genetic programming module

Experimental Python wrapper:
push.py includes classes Interpreter, Process and VM, where Interpreter is a
basic wrapper of the C interfaces with automatic value conversion and Process
and VM build a simple virtual machine where multiple PUSH programs can be run
at once.
NOTE: Since I'm changing large portions of code at the moment, push.py won't
      work. I'll fix that soon.

Contact me:
If you have any problems or questions, contact me via janosch.graef@gmx.net

About

A fast C implementation of the genetic programming language PUSH

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published