archives

future history of logic programming

A Possible Future History of Logic Programming [PDF, 98KB] by M.H. van Emden:

When the first edition of Senner's history came out in 2020, it was widely praised for its compelling view of the development over many decades of logic programming. Reviewers praised it for its broad perspective, but deplored its lack of historical detail. Since then several collections of papers have made their way from estates via the auctions to various libraries. Senner has taken this opportunity to incorporate these recent findings in a new edition.

What has not changed in the new edition, and this is what I take issue with, is that Senner presents the development of logic programming as a relentless forward march towards an inevitable outcome. Of course, it is true that not a decade went by without some of the building blocks being fashioned that we take for granted as part of the majestic edifice that now dominates the landscape of programming.

How did Prolog achieve world domination? (I thought Forth was going to win for sure?) Easy. Through the following contributions of the 90's to logic programming:

  1. XML. The tree as universal data structure.
  2. Execution via virtual machine.
  3. Constraint programming.

What Senner's History of Logic Programming (MIT Press, 2020) fails to do is pinpoint the year in which revisionist historians of logic programming were decisively exposed for the frauds that they were. (Kidding.)

the power of GNU Awk

Two alternative perspectives on GNU Awk (both from 1996):

"Ve are using ze GNU AWK" by Philip Greenspun:

"Relational databases and the World Wide Web: Automatic generation of hypertext based on reverse-engineered meta information." That sounded like it would be the best talk in the conference. I settled into my plastic chair in the plastic Holiday Inn conference room with high hopes. A young Austrian began to page through some Viewgraphs. "Ve are dumping ze database catalog tables out of ze Oracle system into Microsoft Access. Un dan, ve are using an AWK script to generate ze static files. Ze big challenge is making ze 6 character file names for some operating systems as can't have ze long file names."

A man raised his hand. I figured he was going to say "Why didn't you install Oracle WebServer and then get a 10-year-old to write three PL/SQL functions to extract the data from the RDBMS on the fly?" but instead he asked "Why did you use AWK instead of perl?"

The Austrian responded "AWK is the only language that I know."

Why GAWK for AI? [.txt version] by Ronald P. Loui:
Most people are surprised when I tell them what language we use in our undergraduate AI programming class. That's understandable. We use GAWK. GAWK, Gnu's version of Aho, Weinberger, and Kernighan's old pattern scanning language isn't even viewed as a programming language by most people. Like PERL and TCL, most prefer to view it as a "scripting language." It has no objects; it is not functional; it does no built-in logic programming. Their surprise turns to puzzlement when I confide that (a) while the students are allowed to use any language they want; (b) with a single exception, the best work consistently results from those working in GAWK. (footnote: The exception was a PASCAL programmer who is now an NSF graduate fellow getting a Ph.D. in mathematics at Harvard.) Programmers in C, C++, and LISP haven't even been close (we have not seen work in PROLOG or JAVA).