LETTERS TO THE EDITORS
Programming Pedigrees
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).
Mark Gerstein
Yale University
New Haven, CT