Jecel Assumpcao Jr
Tue, 11 Jul 2000 19:54:13 -0300


> When we read then that something is "50% of an 
> optimized C++", understand that it is the best of a 
> deliberate poor choice.<g>  For whatever reason-- 
> esoteric, exotic, practical, or otherwise--we have 
> chosen the lesser performance path.  In short we 
> are not forced by anything other than our own 
> initiative to travel it.

You have cited this several times, so I thought I should clear some
things up: the actual quote is

     Self 2.0 was able to achieve 50% of the performance of optmized C
     for highly numerical benchmarks.

The current Self compiler doesn't do as well in these benchmarks, but
has a better overall performance. The reason why this is significant is
that most people thought that dynamic object oriented programming
languages were unsuitable for scientific code, and this proved that
they were wrong.

Don't be fooled: 50% is amazing when you consider that -

    C doesn't check array boundaries, Self does
    C gives wrong answers on integer overflow, Self converts numbers
            into infinite precision integers to get the correct results
    C has a few predefined control structures, Self has user defined
    C has a simple static type system, Self treats integers and
            floating point numbers as full dynamically typed objects

The technology used in Self 4 is the same used in the Transmeta Crusoe
processors that you have mentioned several times. I don't see the
relation between dynamic binary translation (or code morphing) and
generating code from specifications. Perhaps you are impressed by the
fact that you can get a very different VLIW code from a given x86 code
if you run the same application under different conditions? This is
just trivial heuristics based on runtime profile information collection.

I would like to know your opinion on Japan's Fifth Generation Computing
Project (1982 to 1992). There don't seem to be many good references
online, which is understandable given that it predated the web. Here is
a report about it:

-- Jecel