Brian Kramer
Login: bkramer
Codeword: kremlin
Class: CSE 151, AI
Professor: Richard Belew

AI Languages


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 programming.


http://www.norvig.com/python-lisp.html
Artificial Intelligence - A Modern Approach, Peter Norvig, Stuart Russel