You can graph phylogenic trees without doing changing the internals of how the program recognizes species. It gets harder if you were to do sexual reproduction, but let's ignore that at the moment.
All you need to do is log the parent species and the mutations details of every bot that dies. From that it's possible to reconstruct the frequencies, parentage, lineage, etc. of every genotype in the entirity of time.
My main problem is that any distinction we make about what a species is is going to be artificial. There really aren't strong lines between species, even in nature. I would even argue that in nature it's possible to have different species with the same genotype.
I'm doing an experiment now where I have two species, started with 100 of each. One with only Start and Stop in the gene wich I have checked autotroph for, to see if it will evolve into a simple algea, and the other with only zeros. I found though that the program has changed the start-stop two 2 zeros instead in the DNA. Why is that?
Two things:
1. You'll need a bot with at least 3 DNA slots for it to evolve from non-replicator to replicator.
2. If things get changed to 0s in the program's DNA, it means it couldn't find a matching command or word it knows about. stroe will be read in as a 0 for instance.