John McCarthy, creator of Lisp died recently. Those that wrote chess programs, like William Bader (one of SCS’s senior programmers), and me, knew his work well.
We’ve used things we learned from chess programming to create SCS/ClassPag™ for (newspaper classified pagination).
Chess programming provided a rich environment for computer science research. Debugging chess programs was quite difficult. The complexity of the algorithms meant that hand simulation of the program’s logic was often nearly impossible. Chess programmers quickly realized that writing such programs depended on having the best tool for thinking through the programs’ designs.
McCarthy developed Lisp for his AI projects. It replaced OPS5 when he found he could no longer improve his chess program because he could no longer understand it!
Remember that in the early days of chess programming, the development environment wasn’t interactive. Batch compilations and test runs were the norm. Programmers like Ed Kozdrowicki and Dennis Cooper, authors of the CoKo, wrote in FORTRAN. They invented indenting code to show the nesting levels of loops, etc. CoKo was well over 50,000 lines of code. (A single spaced printout of the code was six inches thick.) Like most chess programs in those days, it was tested using all the computer time the authors could beg, borrow or steal. In CoKo’s case just 12 executions! Imagine doing a live show-and-tell of such minimally tested software at a convention (many of these programs were shown at the Association for Computing Machinery annual meetings) before nearly a thousand of your most respected colleagues!
Ken Thompson developed C and Unix as a platform for his chess programming efforts. He and his chess program/machine, Belle, designed at AT&T’s Bell Laboratories, won the North American Computer Chess Championship in 1978. In 1983, Belle became the first chess program to reach the U.S. master level of playing ability.
Ken basically stole the computer on which he did this skunk works development. When asked what he was up to, he replied that he was developing a text processor that the lab (i.e., Bell Labs) could use in document preparation. When asked for a demo, he had to quickly put together what later was called nroff. To compose type for a phototypesetter he then developed troff.
Thompson and McCarthy were both Turing Award winners, which most regard as the Nobel prize for computer science.
Barbara Huberman Liskov, a graduate student of McCarthy’s, wrote a Lisp based chess playing system for her doctorate. She then developed a new paradigm for programming which she embodied in a programming language of her own design called CLU. CLU was the first programming language that supported all of the concepts that are fundamental to object oriented programming. For this contribution she received the Turing Award. I suspect the design of CLU was influenced by her chess programming experience.
In a biography of Liskov, John V. Guttag, Head of the MIT Electrical Engineering and Computer Science Departmen,t wrote, “CLU was a truly audacious language. It tastefully combined the then novel ideas of 1) data abstraction, 2) iteration abstraction, 3) exception handling, and 4) polymorphic types. CLU was not a “paper”
programming language. Barbara and her students produced a high quality implementation on a variety of platforms. Along the way, they pioneered a number of implementation techniques, e.g., for raising and catching exceptions, that are still used today. Every important programming language since 1975 has borrowed ideas from CLU. Java, for example, owes its notion of inheritance to Simula and Smalltalk, but almost everything else of interest in it was pioneered in CLU.” [
Here is some correspondence between me and Dr. Liskov:
“Dear Dr. Liskov,
Congratulations on winning the Turing award.
I note that your winning of the Turing award is particularly appropriate since Turing himself and John McCarthy, your adviser, were both students of computer chess.
I remember sitting in the lunch room at the Bank of Delaware in 1972 with my fresh BSCS degree from the U of Delaware reading your PhD dissertation. (Chess programs in LISP! Wow!) You were Barbara Huberman then. I was working in data processing operations because I wasn’t trained to program in 1401 Autocoder or 360 COBOL. There was a recession on (RCA had just let 2,000 data processing staff go) so I was glad for the job.
Anyway the VP of data processing (called the IBM Department) (who didn’t have a degree) picked up what I was reading and shrugged when I tried to explain what it was about. I suspect that he thought my interests were at best unusual. He must have had some inkling that I was special because after that he kept giving me little projects that resulted in challenges to the status quo. I started having fun at the BoD job. To this day I say this was thanks to you.
As you know writing chess programs confers on their authors special insights. Unless you are able to use an algorithmic language that supports clear thinking, your hopes for getting working chess programs are slim.
For our work with newspapers we build numerous domain specific
languages. Not surprisingly much of the software we supply to
newspapers solves their NP-hard problems.
I was thinking of you the other day. While scanning several articles on the web I found myself saying “Oh, this one sounds like Barbara.” I checked the authors and there you were. You have a clarity of thought and expression that makes whatever you write an outstanding pleasure to read.
Once again I am delighted to offer you my personal congratulations on your award.
Thanks,
Richard”
Barbara Liskov wrote on 3/27/09:
“thanks so much for your note. I really appreciate it. It’s great
to learn about your story and I’m glad I was able to help (if in
fact I did)!
Best regards,
Barbara Liskov”