James Sheppard
Essay #1
CSE151 Spring 2000

Good Languages for AI

    What makes a good programming language for AI.  It certainly depends on your application but

implementation also is a factor.  An AI program is just like any program so making it readable is

always a good thing, so a high level language is desirable because these types of languages usually

have features which makes cryptic things in other languages, easier to read.  Especially if one isn't

familiar with the language, they might be able to guess what is going on.  Garbage collection is a

good thing too.  A lot of times you're going to have a lot of vectors allocated dynamically.  If you

forget to free up that memory, you could be in trouble if your program needs to run for a long

time.  Portability is also something you'd like to have in a language for obvious reasons.  And of

course speed is something you'd like to have.  That depends on your algorithm but it also depends

on the capabilities of the language.  These are all good things to have in a programming language

just to make your life easier, however AI also has special needs.  Among other things, the language

needs to be able to match patterns, especially when doing search.   Here are some other

requirements for an AI language.

    We've defined what we want in a language, but what languages out there meet those

requirements?  Lisp has all of those properties, but from personal experience, it doesn't seem

very portable.  At least not as portable as java seems to be.  So depending on what you want to

do, if portability is key, then java would be the way to go.  C is nice because programs are small

and fast.  This isn't to say that Lisp is slow.  Lisp programs can rival C programs in terms of speed

and it has other features like garbage collection and portability that C doesn't.  So I think what

I'm trying to say is that Lisp seems to be the best language for AI.  Its got everything you could

want, but for specalized tasks, I also think Java and C are good candidates for AI languages.  The

 AI FAQ (section 1-8), maintained by UCLA outlines why Lisp, Java and C are good AI

languages.