When I was at Cycorp, we used Allegro for program development and a Lisp-to-C 
translator and runtime of Cycorp's design for production.  When containing 
millions of knowledge store objects, Allegro is less space efficient than the 
Cycorp C runtime.  For example, Allegro uses two fullwords to implement a CONS 
cell, whereas with CDR-coding, a typical list can use just one fullword per 
cell.  Allegro also had the drawback of runtime fees.  At the time of my 
departure in August 2006, Cycorp was developing a Lisp-to-Java translator and 
Java runtime to perhaps replace the C versions.  Even the preliminary Java 
version was faster than Allegro in a 64-bit Linux environment, with image size 
(virtual memory footprint) of approximately two GB.

For my own AI research I am using Java.  Apart from its satisfactory speed, I 
like the NetBeans IDE, and most importantly like all the third-party software 
libraries that I can plug in.  Because my stuff is GPL, there really is a wide 
variety of compatible software.   For example, in the last 9 months I built an 
object store to contain the OpenCyc ontology and then added WordNet, the 
lexicon that I parsed from Wiktionary, and the CMU Pronouncing Dictionary.  All 
of this is to support a robust English dialog system that will depend up a 
reversible construction grammar now under development.   I was able to plug in 
Hibernate and MySQL to host millions of knowledge base propositions.  Once I 
got above 20 million propositions, performance became noticeably slower.  So I 
am unplugging Hibernate and plugging in Oracle Berkeley DB Java Edition (GPL 
compatible) and hope to regain ideal performance by using a sharded (physically 
partitioned) object store.

For deployment I am using J2EE which is scalable from single box (where I'm at 
now) to cluster to fully distributed.

Regarding self-modifying programs, I prefer that the system intelligently 
compose its source code and then compile it.  I already experimented with a 
java classloader that can replace classes in a JVM on the fly.

I'm building the dialog system so that I can teach the system in English how to 
do things and so not worry about the programming <smile>

-Steve

----- Original Message ----
From: Ben Goertzel <[EMAIL PROTECTED]>
To: agi@v2.listbox.com
Sent: Saturday, March 24, 2007 10:03:44 AM
Subject: Re: [agi] My proposal for an AGI agenda


Allegro LISP seems to basically fulfill all those requirements also 
(with minor tweaks -- e.g.
Allegro Cache isn't exactly part of the language, but it's tightly 
integrated...).

 ben g


>> David Clarke wrote:
>> I have 18 points at www.rccconsulting.com/aihal.htm and an explanation for
>> each one.  Prove to me that this list of features can all be accommodated
>> by
>> any existing computer language and I will stop my development right now
>> and
>> switch.
>>
>>     
>
> David, your full list of requirements is completely provided by C# and .NET.
> See below for point by point matching:
>
> 1. Object Oriented
> As a modern OO language C# supports encapsulation, data hiding,
> polymorphism, etc, blah, blah, blah
>
> 2. All Classes, Methods, Properties, Objects can be created and changed
> easily by the program itself.
> .NET provides in depth reflection capabilities that provide this capability.
> You can also construct code at run time using various approaches from high
> level code to MSIL.  
>
> 3. Efficiently run many programs at the same time. 
> There is in depth support for multi tasking at the process and thread level.
> This includes multithreaded debugging. This is in part dependent on the OS
> but that’s not an issue with Windows or Linux.
>
> 4. Fully extensible. 
> .NET is fully extensible through the addition of class libraries.
>
> 5. Built-in IDE (Interactive Development Environment) that allows programs
> to be running concurrently with program edit, compile and run. 
> A number of IDEs are available. The Microsoft IDE supports real time update
> of variables during debug sessions. As well as the language being fully
> extensible the IDE is also fully extensible.
>
> 6. As simple as possible. 
> This is of course an unknown. That said C# has been designed to be as clean
> a language as possible. It is type safe, has very good garbage collection,
> and a minimal syntax that is very familiar to C/C++ and Java programmers.
>
> 7. Quick programming turnaround time. 
> If you mean compile time then C# compiles in a JIT environment so is very
> quick, especially incremental builds.
>
> 8. Fast where most of the processing is done. 
> C# is almost as efficient as C++. Where speed critical components are needed
> you can drop into unmanaged mode for high performance.
>
> 9. Simple hierarchy of Classes and of Objects. 
> What is a simple hierarchy? If you mean the library classes then it is as
> simple as you want to make it. There is a rich set of class libraries that
> you can utilise but you don't have to.
>
> 10. Simple Class inheritance. 
> C# uses single inheritance rather than multiple inheritance. This greatly
> simplifies class design. Interfaces are provided to support those cases
> where multiple inheritance would have been used. IMO this is much better
> approach.
>
> 11. Simple external file architecture. 
> This is dependent on the OS but at the simplest you have text files. At the
> other extreme you have RDBMS.
>
> 12. Finest possible edit and compile without any linking of object modules.
> There are no object modules as such in .NET. Classes are grouped into
> namespaces and then libraries. Each library is a .DLL which is directly
> callable from the code.
>  
> 13. Scalable to relatively large size. 
> C# is industrial strength. There are no limitations on current hardware. You
> can develop fully distributed apps across multiple domains if you can afford
> the hardware :-)
>
> 14. Built in SQL, indexes, tables, lists, stacks and queues. 
> Microsoft's version of C# ships with SQLSERVER RDBMS (single user, 3
> conections), all common data structures are available as class libraries.
> SQL syntax is now built right into the language with C# 3.0 (currently in
> beta). You can use SQL to access all data containers not just SQL RDBMS.
>
> 15. Efficient vector handling of all data types. 
> Again this is handled via class libraries.
>
> 16. Internet interface. 
> Yes, it’s a standard class library.
>
> 17. Runs on Windows PC machines. 
> Yes. It also runs on Linux as Mono. There is a good IDE available for Gnome.
>
> 18. Can run as multiple separate systems on the same computer or in the
> background
> You can run multiple instances of the IDE on the same computer. You can
> build applications that are services that will run as a service background
> task.
>
> I hope this will save you a lot of effort :-)
>
>   

-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/?list_id=303





 
____________________________________________________________________________________
Finding fabulous fares is fun.  
Let Yahoo! FareChase search your favorite travel sites to find flight and hotel 
bargains.
http://farechase.yahoo.com/promo-generic-14795097

-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/?list_id=303

Reply via email to