[ The Development of Programming Languages
| Languages of AI ]
aving
the hardware necessary to develop AI is merely half of the required components. It
is the instructions called software that tells the hardware what to do besides being a
very expensive paperweight. The early years of AI used general-purpose programming
languages like C++ to write programs that allowed computers to think intelligently, but
developers soon realized that it took specialized languages to write the kinds of programs
that would make a computer artificially intelligent.
Programming languages are software that allow programmers to write more software.
It is called a language because it has its own vocabulary and syntax like spoken
language. The early history of computing forced programmers to first write programs
in machine code--i.e. the language of the computer in binary notation. To simplify
this tedious and difficult method of programming, assembly language was designed to
represent often used binary instructions into words. For example,
"010111000" may instruct the computer to add two numbers, so assembly language
would represent the same command with the word "ADD." Assembly language did not
make conceiving a program any easier but to actually do the programming with words instead
of numbers was an improvement.
The next step in programming language development was creating higher-level languages.
In this kind of language, the basic words used in assembly programming are further
developed and refined so that the code used to describe the program are more symbolic and
English-like. A program in the language Pascal that tells the computer to add the
values store in variables "a" and "b" and store the value into the
variable "c" would be: "c:=b+a;". Either through an interpreter
or a compiler, the words are translated into machine language so that the computer can
understand it. Other high-level languages include [list] (Gödel, Escher, Bach
290-292)
[ Top ]
While there are hundreds of programming languages in existence, the unique problems
presented in AI require specialized languages that operated on the basis of logic.
The main languages used today in AI programming are LISP and PROLOG.
LISP. LISt Processing is a
programming language created by John McCarthy in 1958 at MIT. As one of the major
advancements to develop AI, LISP was one of the first high-level languages used
English-like words to control the computer. Not only did this language make
computers easier to program, LISP gave more abilities for the computer to do symbolic
manipulation in the list format--an algorithm that treated symbols like beads strung
together. More importantly, LISP allowed programs to modify itself. Thus, if
the program was not running in the proper way, it could rewrite the code that define how
it ran in a certain instance to make it behave differently. It is because LISP could
modify itself that it could not compile its high-level language into machine code, making
it an interpreted language. Besides facilitating the creation of language
processors, some notable AI programs written in LISP are the expert systems Dendral and Automated
Mathematician. LISP is a language that enjoys a great deal of popularity in the
United States, but most European countries and Japan use the other popular programming
language, PROLOG.
[ Top ]
PROLOG. PROgrammation en LOGique was
the name Phillippe Roussel's wife dubbed the new programming language in 1972. Both
Roussel and his colleague, Alain Colmerauer, were Frenchmen who wanted to make a computer
parse a sentence and hopefully understand it. In September of 1970, Colmerauer had
written a paper describing a way to represent sentences through a tree structure in which
simple rules could interpret the tree and thus parse the sentence and even generate new
ones on its own. Such logical structures was greater improved in 1974 by including
the Horn clause format which essentially eliminated the "or" clause and forced
the use of "and" clauses in an "If... Then" statement in programming
and thus made every decision a computer made through this kind of program definite instead
of semi-definite. For example, suppose an expert system was written in PROLOG
to determine whether a person was Santa Claus from the description it received. So,
somewhere in the decision tree, the computer would check "If it has a white beard and
a booming laugh and a red suit." If all the requirements are met, then
the decision that the person is Santa would be a definite identification. This kind
of definite determination when searching through a decision tree allowed PROLOG to make
faster and more conclusive decisions that prevented a computer from being lost in a
decision path that led to no where because one of the previous decisions was wrong.
It is from this kind of decision-making process PROLOG allowed made the programming
language highly logical and usable in the field of AI.(Crevier 59-62,194-195)