Strongly-Typed Tree GP (STGP)
Strongly-typed tree GP was outlined by Montana and EpochX provides an implementation of it which we refer to in shorthand as XGP (EpochX tree GP). XGP stores and manipulates candidate programs in their tree structure, and so we can perform evaluation by triggering each node in the tree to evaluate its children, then itself.

The string representation of the programs that are produced has the standard lisp like format. For example:

ADD(3.0, MUL(5.0, -1.0))

We refer to this specific language as Epox, but the significant thing about Epox is that the language is extendable - new functions can be defined, and they can be made to handle any data-type.

As well as strongly-typed tree GP, EpochX also supports the popular context-free grammar GP and grammatical evolution representations.