AI Zone Admin Forum Add your forum

NEWS: survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..


Does anyone knows the programming language in which Cleverbot, Jabberwacky and Robomatic have been coded?

Like AIML for Alicebots.


  [ # 1 ]


“Over a million people visit every day .. using (4D v11 SQL) .. according to co-developer @balinderwalia”


“Microsoft .NET Framework 2.0”


  [ # 2 ]

You sure do have good googling skills Marcus but way to go.
i asked the programming language in which Cleverbot, Jabberwacky and Robomatic have been coded. Tle language used to provide some sort of AI to them like AIML for aiml bots


  [ # 3 ]

I don’t know what “programming language” those bots were written in, Ankit, but I feel that I need to clear up a possible misconception here. AIML, in and of itself, isn’t a “programming language”, per se. It’s more accurate to describe it as a “data structure language”, instead. AIML bots that are hosted at Pandorabots (by far the most common AIML bots) use Program Z, written in Common LISP, for their “programming language”, or AIML interpreter. My chatbot, Morti, is an AIML bot, who’s interpreter is a modified version of Program O, which is written in PHP. So when referring to an AIML bot, you’re not referring to it’s “programming language”, but it’s “data structure”, instead.

I hope this clarifies things for folks. smile


  [ # 4 ]

whereas, I would say “AIML is a scripting language”, which is a kind of programming language, and it matters not what the scripting language interpreter is written in usually.  “ChatScript is a scripting language” and the engine is written in C++

It matters what the engine is written in only if you need to recompile it. But you write your “bot” in the scripting language. Scripting languages can be procedural, declarative, or a mixture of both.


  [ # 5 ]

Way back in the early history of computers Von Neumann explained that programs (derived from programming language) are data.  All programs are a “data structure language”.

Procedural, declarative are just buzz words somewhat like third generation verses forth generation languages.  For example, a set of if-then rules for an expert system is not quite what I understand declarative to be.  But put together into something like Prolog, that becomes more close to declarative.  To quote Wikipedia: “Like functional programming, many logic programming languages permit side effects, and as a result are not strictly declarative.”

The buzz today, as described by Wikipedia again; “In computer science, declarative programming is a programming paradigm that expresses the logic of a computation without describing its control flow.”

And twenty five years ago we called the very same thing a forth generation language - something extended from macros.  I remember the ADABAS Natural language as a forth generation.  Wikipedia suggests SQL Selects are declarative.  Same difference.

Also note that interpreters or run-time engines are a buzz too.  If Microsoft gets its way, the operating system will be a run-time engine much more comprehensive than just the .Net framework.  Compiling into p-code, whoops I mean byte code, no that’s not it - it is CLI code for C# and soon to be C++ too for Microsoft, is just an artifact like compiling BASIC into intermediate code was (BASIC is interpretative.)

But with virtualization, all computer operating systems will be run-times remotely similar to much, much more sophisticated AIML engines.  Since procedural languages are a mismatch for parallel programming, the future suggests almost all programming languages will become more, if not totally, declarative.

So considering AIML to be a (simple) programming language is a good modern interpretation of the state of the art.


  [ # 6 ]

Although a lot of terms in the industry are buzz-words. I wouldn’t throw things like ‘declarative, Procedural, interpreters or run-time engine’ also on that pile.
In the end, there is a real difference between a declarative or procedural approach. In the first, you simply say what you want without caring how it’s done. The latter is exactly the opposite: what is done doesn’t matter, only how it is done.  You need some ‘words’ to describe the different approaches.
Secondly, interpreter, jit, compiler are different techniques on ‘how’ to do things. they can have very different results.

and soon to be C++ too for Microsoft

Not certain what you mean by this, but MS’s C++ compiler has been using CLI as it’s in-between compilation step for a whole long time now. It’s the same compiler with different ‘parameters’.


  login or register to react