AlanTuring.net Reference Articles on Turing

What is Artificial Intelligence?

By Jack Copeland

© Copyright B.J. Copeland, May 2000

 

AI Programming Languages

In the course of their work on the Logic Theorist and GPS, Newell, Simon and Shaw developed their Information Processing Language, or IPL, a computer language tailored for AI programming. At the heart of IPL was a highly flexible data-structure they called a "list". A list is simply an ordered sequence of items of data. Some or all of the items in a list may themselves be lists. This leads to richly branching structures.

In 1960 John McCarthy combined elements of IPL with elements of the lambda calculus--a powerful logical apparatus dating from 1936--to produce the language that he called LISP (from LISt Processor). In the U.S., LISP remains the principal language for AI work. (The lambda calculus itself was invented by Princeton logician Alonzo Church, while investigating the abstract Entscheidungsproblem, or decision problem, for predicate logic--the same problem that Turing was attacking when he invented the universal Turing machine.)

The logic programming language PROLOG (from PROgrammation en LOGique) was conceived by Alain Colmerauer at the University of Marseilles, where the language was first implemented in 1973. PROLOG was further developed by logician Robert Kowalski, a member of the AI group at Edinburgh University. This language makes use of a powerful theorem-proving technique known as "resolution", invented in 1963 at the Atomic Energy Commission's Argonne National Laboratory in Illinois by the British logician Alan Robinson. PROLOG can determine whether or not a given statement follows logically from other given statements. For example, given the statements "All logicians are rational" and "Robinson is a logician", a PROLOG program responds in the affirmative to the query "Robinson is rational?". PROLOG is widely used for AI work, especially in Europe and Japan.

Researchers at the Institute for New Generation Computer Technology in Tokyo have used PROLOG as the basis for sophisticated logic programming languages. These languages are in use on non-numerical parallel computers developed at the Institute. (The languages and the computers are known as "Fifth Generation" software and hardware.)

Other recent work includes the development of languages for reasoning about time-dependent data such as "the account was paid yesterday". These languages are based on tense logic, a type of logic that permits statements to be located in the flow of time. (Tense logic was invented in 1953 by the philosopher Arthur Prior at the University of Canterbury, New Zealand.)

[Previous section] [top of page] [Next section]