John McCarthy on the Elephant Programming Language


John McCarthy
John McCarthy
(click to enlarge)

He wasn't on the program, but this morning's keynote was given by Professor John McCarthy--the inventor of LISP and coiner of the term "artificial intelligence."

This morning, he's talking about Elephant 2000, a programming language designed for writing programs that interact with people. One of the things he points out that I find interesting is the idea that the compiler should generate required data structures without the user having to specify them. I'm not sure how that works from his explanation, but I'm certain that if we want languages that admit more parallelism, this is a feature that would help.

He describes the idea of ascribing believe to a thermostat. He uses a simple system like a thermostat not because it's necessary to understand the operation of thermostats, but rather because it's useful for understanding the nature of belief.

ELephant programs have input and output specifications since their goal is human interaction. They also need accomplishment specifications.

He gives some examples of Elephant programs. This, for example sets is a program saying that if the flight isn't full the make a commitment to the passenger and then communicate that act.

if !full(flt) then accept.request(make commitment(admit(psgr,flt)))
  answer.query exists commitment admit(psgr, flt).

There are more examples online. Obviously, the notation itself is clean. The question is whether you can do something with the semantics associated with the notation. Unfortunately, Professor McCarthy ran out of time and we didn't really get to the punch line, I think.