This blog chronicles my study of FSharp by means of implementing a simple programming language PUSH 3. The language was invented at Hampshire College for experiments in genetic programming. It is described in detail as well as in a number of books and papers by Lee Spector (

In the spirit of a talmudic saying: “Grabbed too much – grabbed nothing”, I have stopped short of to implementing a full-blown genetic programming system that actually evolves PUSH programs trying to solve different symbolic regression problems. After all, I am sure folks at Hampshire College have spent years researching it.

While writing this implementation, the full source of which can be found on GitHUB I have also tried to observe my own process: making design decisions, following well known methodologies (like TDD) in a completely “clean” environment where I could not blame any mistakes I make or duct-tape kind of shortcuts I take on pressures of a production environment. This experience was also quite instructive, however, harder to document than simple language exploration.

Tools and resources used:

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.