Language comparisons

Grant Edwards grante at visi.com
Wed May 9 20:44:50 CEST 2001


In article <uu22u8jfn.fsf at roundpoint.com>, Ben Hutchings wrote:

>> For most of my career I've been working with compilers targetted at
>> register-scarce 8 and 16 bit processors with no pipelines and no
>> cache. With those compilers the code generated was quite
>> predictable, and it behooved the programmer to know whether indexing
>> through an array or incrementing a pointer through an array were
>> faster for a particular architecture.
>
>That's a 'feature' of old simple-minded compilers, not of their target
>machine.

For a given machine, incrementing and index or incrementing a
pointer may result in drastically different execution times for
a loop. An optimizing compiler could recognize a for loop thats
looping through an array (using either method) and do the
fastest thing (converting to the other method if required), but
in the past very few did.

>Regardless of which of those two ways you write your
>iteration, a current C compiler will generate code that iterates in
>whichever way is likely to be fastest on the target machines (if you
>turn on basic optimisations) - whether those target machines use
>68000-derivatives or UltraSparcs.

But compilers will only convert simple loops.  I've never seen
one convert more comlex algorithms between indexes and
pointers.

-- 
Grant Edwards                   grante             Yow!  I'm in ATLANTIC CITY
                                  at               riding in a comfortable
                               visi.com            ROLLING CHAIR...



More information about the Python-list mailing list