From: Simon McClenahan (email@example.com)
Date: Fri Jul 20 2001 - 14:54:35 MDT
----- Original Message -----
From: "Jordan Dimov" <firstname.lastname@example.org>
Sent: Friday, July 20, 2001 1:21 PM
Subject: Languages and AI
> A few months ago there was a discussion on this list about the utility
> and appropriateness of various languages for coding the ultimate AI.
I've tried to look in the archive, but since there is no text search
function (is there?) I read a whole bunch of interesting articles and got
side-tracked quite often. My current job really, really sucks is all I have
> Right now there is a lot of talk about new languages and platforms,
> specifically designed to facilitate strong AI programming. Using the
> right tools for a task is certainly crucial, and I do agree that comparing
> existing languages and designing new ones to aid AI programming is a
> worthy activity.
I would still even question the worthiness of designing new ones at this
time. High-level languages makes a human programmer's job of instructing a
computer much easier than coding in platform-specific assembly (with or
without macros). A HLL is an isomorphism between the programmer's knowledge
of the problem domain sequence of processes, and the instructions that a
CPU(s) natively execute (except maybe programming at the microcode level).
Will a Seed AI optimize its own source using a HLL, or in machine code? I
assume the latter! No doubt it would be a lot easier to program a Seed AI
using a "good" HLL, but there are so many of them already available, whether
they be procedural, object-oriented, annotated, declarative, parallel,
vector, etc. Once a Seed AI starts running, there is no more use for the
programmer with a HLL is there?
I noticed a very brief thread in the archives about the TUNES project
www.tunes.org . The FAQ describes its implementation
So our mid-term goals would be to work out the initial bootstrapped system
into such a generic metaprogramming platform that can be used not just to
dynamically compile itself into binary, but to do arbitrary meta-level
manipulations of arbitrary structures into arbitrary other structures. On
the syntactic front, we'd begin manipulating lowly HTML and XML, then jump
on to more arbitrary grammars, including subsets of other programming
languages, as well as any ad-hoc stuff we need to interoperate with the
external world. This could be the basis for semi-automatically interfacing
with code from other systems, or even semi-automatically stealing it,
starting with the nicer ones and moving toward more complexity (Scheme,
Haskell, CAML, Mercury, Common LISP, Java, etc., culminating with C; C++ is
too horrid to ever salvage C++ code into TUNES).
And of course there is a whole lot more detail. I hope that these guys
succeed with this project.
As for portability among platforms, maybe an evolved Seed AI would program
in Java bytecode, and each platform would compile for optimization. Long
live Java! ;-)
> I am going to
> violate all sorts of copyrights and stuff, and post a short excerpt from
> Hofstadter's excellent book "Metamagical Themas" which I found quite
Was this in "Godel, Escher, Bach" too? This excerpt sounds very familiar.
> program was written not in Lisp but in a language called SAIL, very
> different in spirit from Lisp. Nonetheless, it could easily have been
> written in Lisp. The reason it doesn't matter is simply that the
> scientific questions of how the mind works are on a totally different
> level from the statements of any computer language. The ideas transcend
> the language. "
I'm sure that Dougie would be pleased to know that I couldn't agree with him
more on this. In GEB, one of the dialogue chapters is various linguistic
translations of a poem by someone famous and I think is titled "Jabberwocky"
(excuse my ignorance, but, I'm ignorant). When the text was translated from
its original language into another, then back again (to English I think),
the "meaning" was effectively lost due to the translation process. If we try
to program a brain in anything other than a completely isomorphic langauge
to machine code, i.e. platform-specific assembly language, I fear there is a
risk that using a HLL that something will be missing in the translation by
the compiler, or even the OS, that would inhibit the AI being realized.
How does "all your base are belong to us." translate back into Japanese?
(and then back into English since I don't know Japanese.)
I also feel that there must be an alternative to a linguistic approach to
programming. Entering text is a very sequential operation. This seems
natural, because human thoughts are _usually_ linguistic, regardless of how
many languages you speak. This is also the key to speed-reading, btw, is to
override the way we've all been taught to read subvocally (speak the text in
our mind instead of vocally) according to Evellyn Wood, but I digress... A
picture tells a thousand words, or maybe more technically, a whole lot of
implicit metadata. This is why pictures are more appealing than text that
holds exactly the same amount of information. Even thinking about objects
versus structs, or XML DOM versus SAX event model, a hierachical model
introduces a visual element to our thoughts. Why can't we develop a visual
HLL, or a High Level Visualization programming language? I have suggested
UML in a previous email. I don't know of any others.
This archive was generated by hypermail 2.1.5 : Wed May 22 2013 - 04:00:24 MDT