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