From: Ben Goertzel (ben@webmind.com)
Date: Fri Jul 20 2001 - 16:10:38 MDT
> Really? Fine. I want to be able to access the PARSED source code, not
> the plaintext, from inside the program. Furthermore, I want to be able to
> alter the parsed source code, represented in a natural way (i.e., an
> expression is a tree and not a series of machine instructions). I want to
> be able to annotate any element in this tree, whether a branch or a leaf,
> with complex data structures of my own devising, including new data types
> of my own devising, without destroying the integrity of the existing data
> or preventing the code from executing. Any existing languages got that
> feature, which is simply first on the list?
If I understand what you're asking correctly, I believe this sort of thing
is fairly easy to do in LISP, but not in other standard languages
I don't doubt the value of this kind of feature for self-modifying AI.
However, this kind of flexibility is going to lead to some very severe
performance problems. In order to limit these to a manageable magnitude,
you're going to have to make some hard decisions about which kinds of
annotations are going to be most common (hence need to be handled most
efficiently). These decisions will be much harder to make now than in a
couple years when you know more about self-modifying AI.
Based on what I understand about your approach to AI, I would definitely
recommend LISP for your short-term experimentation. LISP is better-built
for self-modifying programs than any other standard language. Refal would
be equally good but there are no high-quality Refal interpreters at this
point.
What you're asking can also be done in Java, using dynamic class loading and
parsing of class files within Java programs. I've done some of that, but,
it's a real pain in the ass compared to doing such things in LISP.
-- Ben
This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:36 MDT