Class: CSE 151, AI
Professor: Richard Belew
By far, the most important aspect of an artificial intelligent
program is speed. Other important qualities include a good garbage
collector as well as rapid prototyping. Since the human mind is
closely related to a list structure, the ability to quickly manipulate
lists is extremely important when searching for a proficient langauge.
Object oriented aspects of a langauge allow for easy code reuse and
inheritance, simplifying the code as well.
According to Norvig and Russel, "even though a computer is a
million times faster in raw switching speed, the brain ends up being
a billion times faster at what it does (p. 566). One of the
attractions of the neural network approach is the hope that a device
could be built that combines the parallelism of the brain with the
switching speed of the computer." At this point, one realizes the
main issue for producing good AI learning algorithms is speed. The
future may utilize better algorithms, but a language which is faster
in computing is needed.
Modern programming languages offer a variety of memory
management tools. In AI programming, memory allocation and
deallocation becomes very important due to the extraordinary size of
computations needed. Human code that has any significant length
almost always has memory leaks, and will produce considerable issues
for large scaled programs. Due to the slow growth of memory, limited
resources are available, and a language which handles memory
deallocation well is good for AI.
Most AI implementation algorithms deal with some sort of list
manipulation, attempting to simulate actual thought process. This
symbol manipulation works faster on languages specifically built for
the purpose, such as LISP, or Python. For this reason, languages that
are able to utilize fast list updates are well suited for AI
Artificial Intelligence - A Modern Approach, Peter Norvig, Stuart Russel