Thats why i said i was being extremely pedantic. I don't know about anything arbitrarily changing its coding while running, but systems which generate entirely new algorithms to do a certain task are certainly around in a very basic form.
The method i'm thinking of was actually another option for that very same piece of evolutionary computing coursework I mentioned in my other post. I cant remember the name my lecturer gave this system because it was almost two years ago now but, in essence, the algorithm worked by being given the basic building blocks of code, such as if statements, for loops, basic mathematics, etc, and them putting them together. The algorithm would then use an evolutionary process to generate gradually better and better solutions.
For those who don't know how the evolutionary process works, in essence, an initial population of solutions are created (which are essentially random and are almost certainly going to be rubbish). These will then be combined and mutated in various ways. The population of newer and older solutions will be tested and then the population will be culled in such a way that means the best solutions have the most chance of surviving but aren't certain to survive while the worst solutions have the worst chance of surviving but aren't certain to be killed off.
Whether we have a system which can generate a new algorithm analytically, rather than using the evolutionary process to evolve random solutions, I don't know. I certainly can't think of such a system, but that doesn't mean there isn't one