Re: [agi] My proposal for an AGI agenda

2007-04-10 Thread Eric Baum

I'd commend to the LISP hackers' attention the compiler Stalin
by Jeff Syskind, who last I knew was at Purdue.
I'm uncertain the extent to which the compiler is available,
but I imagine if you look around (for example find Syskind's home page)
you will find papers or or pointers. My erstwhile collaborator
Kevin Lang, initially a skeptic on the subject, ran extensive tests 
on Stalin and concluded the compiled code was substantially faster 
than compiled C and C++, even on problems where this was quite 
surprising. It's possible Kevin published something on these tests. 

The above is about all I know on the subject, so please don't ask
for more details. The above was roughly 10
yrs ago. At the time, both Syskind and Kevin (and me) were at the NEC
Research Institute.
Presumably there is a catch or you would all be using Stalin ;^(

Philip On 3/23/07, Samantha Atknis [EMAIL PROTECTED] wrote:
 8,Fast where most of the processing is done.
 
 In the language or in things written in the language or both?  Lisp
 has been interpreted and compiled simultaneously and nearly
 seamlessly for 20 years and has efficiency approaching compiled C
 in many problem domains.

Philip Samantha, you need to provide me with references if you want
Philip me to believe this.  No LISP compiler has ever been optimized
Philip to any serious degree AFAIK.  The nature of the language makes
Philip it difficult to write efficient code in the first place.  And
Philip I suspect that these many problem domains don't include any
Philip that involve numeric calculations.

-
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


Re: [agi] My proposal for an AGI agenda

2007-04-10 Thread BillK

On 4/10/07, Eric Baum wrote:

I'd commend to the LISP hackers' attention the compiler Stalin
by Jeff Syskind, who last I knew was at Purdue.
I'm uncertain the extent to which the compiler is available,
but I imagine if you look around (for example find Syskind's home page)
you will find papers or or pointers. My erstwhile collaborator
Kevin Lang, initially a skeptic on the subject, ran extensive tests
on Stalin and concluded the compiled code was substantially faster
than compiled C and C++, even on problems where this was quite
surprising. It's possible Kevin published something on these tests.



http://community.schemewiki.org/?Stalin
http://en.wikipedia.org/wiki/Stalin_(Scheme_implementation)
http://cobweb.ecn.purdue.edu/~qobi/software.html

Stalin is an aggressively optimizing Scheme compiler. It is the most
highly optimizing Scheme compiler, and in fact one of the most highly
optimizing compilers of any sort for any language. Stalin is publicly
 freely available, licensed under the GNU GPL. It was written by
Jeffrey M. Siskind.

In detail, Stalin is a whole-program compiler that uses advanced flow
analysis  closure conversion techniques. It compiles Scheme to highly
optimized C. Stalin has a few very significant limitations, however:

* it takes a *long* time to compile anything including the compiler
* it is not designed for interactive use or debugging
* it does not support R4RS/R5RS high-level macros
* it does not support the full numeric tower

The compiler itself does lifetime analysis and hence does not generate
as much garbage as might be expected, but global reclamation of
storage is done using the Boehm garbage collector.



Scheme
http://cbbrowne.com/info/scheme.html
http://en.wikipedia.org/wiki/Scheme_(programming_language)

 Scheme is a LISP dialect that is relatively small, nicely supports
tail recursion, provides block structure and lexical scoping, and
gives a variety of object types first-class status (e.g. - first
class objects are namable and can be passed around as function
arguments, results, or as list elements).

If Common LISP is considered analogous to C++ (which is not entirely
unreasonable), Scheme would comparatively be analogous to C. Where
Common LISP requires that the rich functionality (such as a wide
variety of data structures and the Common Lisp Object System (CLOS))
come as an intrinsic part of the language, Scheme encourages the use
of libraries to provide these sorts of additional functionality.

The Scheme libraries are small enough that programmers commonly
construct functionality using primitive functions, where a LISP system
might have something already defined. This gives additional
opportunity either to tune performance or shoot oneself in the foot by
reimplementing it poorly...



BillK

-
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


Re: [agi] My proposal for an AGI agenda

2007-04-10 Thread Benjamin Goertzel

The Stalin Scheme compiler can be obtained here:

http://cobweb.ecn.purdue.edu/~qobi/software.html

It is a batch-mode-only compiler, meaning it lacks the interactive
aspect that makes languages like LISP and Ruby so nice to
use.

The optimizations inside the Stalin compiler are quite advanced
though not as much so as the stuff inside the Java supercompiler
I worked with a while back

http://www.supercompilers.com

This sort of thing can really speed up numerical, mathematical code
quite a lot.  Using the Java supercompiler one can get Java code
that runs 50 times faster than comparable C code, for various mathematical
benchmarks (e.g. the FFT, sorting, etc.).

Stalin also has an advanced garbage collector, more so than existing
JVM's for example.

In practice Stalin is a bitch to use, due to being a slow compiler,
having no interactive mode, having no debugger, and other pragmatic
irritations.  It also leaves out some parts of Scheme.

In short, Stalin is a research compiler and probably not slick enough for
practical commercial use, but it demonstrates the principle
that an optimized LISP compiler can kick ass in batch mode.

Just as the Java supercompiler (in spite of its incompleteness at
the moment) demonstrates the principle that
supercompilation can make Java vastly faster than C++.

The reason C++ is the best approach for high-performance computing
right now is not anything fundamental -- it's just a matter of the
practicalities
of currently existing technology.  If someone put sufficient $$ or time
into making kick-ass optimizing compilers and supercompilers for nicer
languages, we'd all be better off.  But that doesn't seem to happening
at a very rapid rate...  And I'm personally more interested in pushing
toward
AGI than in improving programming language infrastructure...

-- Ben G







On 4/10/07, Eric Baum [EMAIL PROTECTED] wrote:



I'd commend to the LISP hackers' attention the compiler Stalin
by Jeff Syskind, who last I knew was at Purdue.
I'm uncertain the extent to which the compiler is available,
but I imagine if you look around (for example find Syskind's home page)
you will find papers or or pointers. My erstwhile collaborator
Kevin Lang, initially a skeptic on the subject, ran extensive tests
on Stalin and concluded the compiled code was substantially faster
than compiled C and C++, even on problems where this was quite
surprising. It's possible Kevin published something on these tests.

The above is about all I know on the subject, so please don't ask
for more details. The above was roughly 10
yrs ago. At the time, both Syskind and Kevin (and me) were at the NEC
Research Institute.
Presumably there is a catch or you would all be using Stalin ;^(

Philip On 3/23/07, Samantha Atknis [EMAIL PROTECTED] wrote:
 8,Fast where most of the processing is done.

 In the language or in things written in the language or both?  Lisp
 has been interpreted and compiled simultaneously and nearly
 seamlessly for 20 years and has efficiency approaching compiled C
 in many problem domains.

Philip Samantha, you need to provide me with references if you want
Philip me to believe this.  No LISP compiler has ever been optimized
Philip to any serious degree AFAIK.  The nature of the language makes
Philip it difficult to write efficient code in the first place.  And
Philip I suspect that these many problem domains don't include any
Philip that involve numeric calculations.

-
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



-
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


Re: [agi] My proposal for an AGI agenda

2007-04-10 Thread Benjamin Goertzel



Philip Samantha, you need to provide me with references if you want
Philip me to believe this.  No LISP compiler has ever been optimized
Philip to any serious degree AFAIK.  The nature of the language makes
Philip it difficult to write efficient code in the first place.  And
Philip I suspect that these many problem domains don't include any
Philip that involve numeric calculations.




Philip, I think your latter sentence is exactly wrong!

Mathematical code is exactly what's MOST EASILY OPTIMIZABLE using
techniques as exist in the Stalin Scheme compiler, or better yet in the Java
supercompiler.

Each numeric operation is of course no faster after optimized or super
compilation;
but these advanced compilation techniques can reorganize the math in the
code
so as to require fewer numeric operations.

And these advanced compilation techniques are easier to apply to LISP or
Refal
or Haskell than to Java, and easier to apply to Java than to C++

So, mathematical code is exactly where one should expect the largest
advantage
of optimized LISP over Java or C++ ...

-- Ben G

-
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


Re: [agi] My proposal for an AGI agenda

2007-04-10 Thread Philip Goetz

On 4/10/07, Benjamin Goertzel [EMAIL PROTECTED] wrote:


Mathematical code is exactly what's MOST EASILY OPTIMIZABLE using
techniques as exist in the Stalin Scheme compiler, or better yet in the Java
supercompiler.

Each numeric operation is of course no faster after optimized or super
compilation;
but these advanced compilation techniques can reorganize the math in the
code
so as to require fewer numeric operations.

And these advanced compilation techniques are easier to apply to LISP or
Refal
or Haskell than to Java, and easier to apply to Java than to C++


Why is that?

BTW, for numeric computation in Java, see the Colt package put out by CERN.

-
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


Re: [agi] My proposal for an AGI agenda

2007-04-10 Thread Benjamin Goertzel



 And these advanced compilation techniques are easier to apply to LISP or
 Refal
 or Haskell than to Java, and easier to apply to Java than to C++

Why is that?




well...

C++ has pointers, which basically rule out sophisticated  compilation
techniques like partial evaluation and supercompilation.

Java has no fundamental problems like that, it's just a big language, which
means
the actual practice of applying sophisticated compilation techniques to Java
is
a pain.

As an example, roughly 5 times as much work was put in on the Java
supercompiler
than was put in previously on the Refal supercompiler (Refal is a simple AI
language, sorta
the Russian counterpart of LISP), but the Refal supercompiler is further
advanced.

The Java supercompiler works OK now for Java code that is written with the
supercompiler's
currently limitations in mind, but hasn't yet been extended to cope with all
of Java.

Anyone who wants to invest $500K or so in completing the Java supercompiler
let
me know and I'll connect you with the supercompilers guys ;-)

-- Ben

-
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/?member_id=231415user_secret=fabd7936

Re: [agi] AGI interests

2007-04-10 Thread Hank Conn

as a person: nihilism  the human condition. crime, drugs, debauchery.
self-destructive and life-endangering behaviour; rejection of social
norms. the world as I know it is a rather petty, woeful place and I
pretty much think modern city-dwelling life is a stenchy wet mouthful
of arse - not to say that living and dying in depravity and pain like
every one of my ancestors wasn't a whole lot worse. I'm far from
finding much in the Modern|West that is particularly engaging, but
luckily enough also think the Old|East was even more pathetic and that
naturalist hippies should be shot for their banal bovinity. I get
somewhat of a kick out of the fact that I might be risking the chance
to live forever by being such a societal refusenik.

amen brother. ^_^


On 3/28/07, kevin. osborne [EMAIL PROTECTED] wrote:


 Everyone on this list is quite different.
 What about the rest of you, what are your interests?

as a programmer: skilling up in cognitive systems in a fairly gradual
way so I'm ready and able to contribute when human-level (though not
necessarily -like) reasoning becomes a solved problem in the
mathematics|theory domain and needs competent programmers (which I'm
very far from being at this point, even after 10 years in the field)

as a fan of AGI: watching the smart guys (like Novamente) do the real
work of laying out the problem domain in theory and positing solutions
that make the leap between sound logic and running code. I'm not as
happy with all the blowhard action from others who are seemingly
incompetent in regards to making the leaps between

undertanding_cogniton-implementable_theory_of_thought-code-real_AGI_results
but am aware that the more people who are trying the better and as
someone with -zero- theories am aware that I'm a mere critic so -try-
to keep my scepticism to myself.

as a techie: scepticism. I think the 'small code' and 'small hardware'
people are kidding themselves. The CS theory|code we have today is
pretty much universally a complete bucket of sh!t and the hardware 
networking (while better) is still kinder toys compared to where it
could be. We are just -so- damn far away from say being able to build
hardware/software into things like ubiquitous (i.e. motes everywhere)
nanotech. Thinking that a semi-trivial set of code loops will somehow
become meta-cognitive is ridiculous and a tcpip socket does not a
synapse make.

as a singulatarian: big fan; I think it's inevitable, and that things
are definitely starting to snowball - see
http://del.icio.us/kevin/futurism. Can't say I'm buying into any
'when' predictions quite yet though.

as a person: nihilism  the human condition. crime, drugs, debauchery.
self-destructive and life-endangering behaviour; rejection of social
norms. the world as I know it is a rather petty, woeful place and I
pretty much think modern city-dwelling life is a stenchy wet mouthful
of arse - not to say that living and dying in depravity and pain like
every one of my ancestors wasn't a whole lot worse. I'm far from
finding much in the Modern|West that is particularly engaging, but
luckily enough also think the Old|East was even more pathetic and that
naturalist hippies should be shot for their banal bovinity. I get
somewhat of a kick out of the fact that I might be risking the chance
to live forever by being such a societal refusenik.

-
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



-
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/?member_id=231415user_secret=fabd7936