To the Editors:
I read with great interest Brian Hayes's recent column "The Semicolon Wars" on the genealogy of computer languages (Computing Science, July-August). I was struck by the first figure that shows how many well-known languages are related to each other in a tree-like structure. Mr. Hayes carefully compared the development of computer languages to that of spoken languages. This is, of course, quite appropriate. However, another illuminating comparison is to the development and evolution of genomes in biology.
The genome has often been compared to an organism's operating system, and in this sense, its underlying genetic coding is the ultimate computer language. The triplet codons in the literal genetic code have not changed much over time. However, the specific features they encode in different genomes have changed dramatically since life first appeared.
One of the nice things about biology, moreover, is that the main mechanisms underlying this evolution can be studied experimentally. It is believed that the genome evolves through a variety of processes duplicating and copying chunks of DNA, and then further variation happens to these copies. One also sees, most often in bacteria, whole genetic elements horizontally transferred from one organism to another.
The parallels to computer languages in the operation of these mechanisms are quite strong: In a specific lineage of languages (such as that for Algol60, C and Java) one sees the duplication and variation of basic control structures for such items as loops and subroutines, and horizontal transfer of new structures (such as the object-oriented constructions from Simula67).
New Haven, CT