Not long ago Charles gave a talk at the Society of Computer-Archeologists in Denmark entitled "The Rosetta Code". The title refers to the Rosetta Stone which was key to the deciphering of hieroglyphs as it contains the same text in two languages and three different alphabets. You can still see it in The British Museum.
Software history buffs will appreciate the talk as it draws upon examples of how the Algol compiler designed by Peter Naur was implemented. (Charles first job after he left Hungary was to maintain this code…). Peter Naur had been the editor of the very influential Algol report from 1960 which ended up shaping the design of most programming languages in use today. Naur recently received the Turing Award for these achievements.
The analogy to the Rosetta Stone refers to the three levels of the compiler: the implementation, the comments and the overall design.
- The implementation is in machine code.
- The comments use a high level langauge to express the design intentions. The "comment language" looks very much like Algol itself, although often extended in various ways. Today we take the high level language for granted and we seek other, more powerful means to express our intentions. Also note that already in those days they introduced notations that we today would consider revolutionary in a programming language like ≡ ¬ ≠ and 10. It is also impressive to see how efficient the machine code is; it is often less than the actual pseudo Algol code it is implementing!
- The design intention itself is a piece of handwritten paper.
Here is the presentation.