comp.lang.ada
 help / color / mirror / Atom feed
From: clodius@hotspec.lanl.gov (William Clodius)
Subject: Re: C is 'better' than Ada because...
Date: 1996/08/05
Date: 1996-08-05T00:00:00+00:00	[thread overview]
Message-ID: <g1bugpefpq.fsf@hotspec.lanl.gov> (raw)
In-Reply-To: g1spa6hihy.fsf@hotspec.lanl.gov


In article <01bb80f9$5df267c0$9cee6fce@timhome2> "Tim Behrendsen"
<tim@airshields.com> writes: 

<snip>
   Well, you say my anecdote says nothing, then turn around and say that
   it requires a "knowledgeable person" to do arrays correctly.  If modern
   compilers are so good that programmers shouldn't have to worry
   about using arrays, then it should have been smart to optimize
   "misuse of arrays".

It takes a knowledgeable person to do anything correctly including
using pointers. The optimizations necessary to make properly used
arrays equivalent in efficiency to properly used pointers are
relatively simple. The optimizations necessary to optimize code that,
say, assumes column major access in C arrays, are equivalent to the
optimizations neceessary for code involving pointers emulating a
multidimensional array, where the innermost loop is associated with
large n strides, while an outer loop is associated with unit
strides. The large strides can result in paging etc. and the code will
typically be much more efficient if the inner and outer loops can be
interchanged, but the compiler can only do that if it is certain that
there are no side effects that are invalidated by such a
reordering. This often requires complicated global analysis.

   The point is, pointers are native to machine architectures, so it's
   going to be easier for the optimizer to produce straightforward
   optimizations if the programmer doesn't do anything dumb by
   creating unsafe side effects.

The point is that with pointers it is more difficult for the compiler
to be certain that the programmer didn't do anything dumb by creating
unsafe side effects. It is not enough for the programmer to not
introduce side effects, the compiler has to verify that he didn't
create side effects. Something that close to the machine can result in
unstructured memory accesses, just as gotos can result in unstructured
flow of control. However, unlike the gotos of most languages, the
unstructured memory accesses associated with C are not easilly
localized. Any pointer used as an argument to a function or as a
global variable, from the computer's point of view, may be aliased
with any other pointer used as an argument to the function or as a
global variable. Unless it can verify that such aliasing has not
occured by doing a complicated global analysis, many optimizations are
disallowed by the language.

Note: Fortran has a reputation for producing faster code than C in
many situations, but untill recently it had only arrays and no
pointers.



-- 

William B. Clodius		Phone: (505)-665-9370
Los Alamos National Laboratory	Email: wclodius@lanl.gov
Los Alamos, NM 87545




  parent reply	other threads:[~1996-08-05  0:00 UTC|newest]

Thread overview: 239+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-08-01  0:00 C is 'better' than Ada because William Clodius
1996-08-03  0:00 ` Tim Behrendsen
1996-08-05  0:00   ` Kevin D. Quitt
1996-08-05  0:00 ` Stefan 'Stetson' Skoglund
1996-08-05  0:00 ` William Clodius [this message]
     [not found] <Pine.GSO.>
     [not found] ` <4 <4vb399$kt8@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-20  0:00   ` Adam Beneschan
1996-08-20  0:00     ` Craig Franck
1996-08-21  0:00     ` Mike Roske
1996-08-21  0:00       ` William  C Brennan
  -- strict thread matches above, loose matches on Subject: below --
1996-08-04  0:00 @#$%!?!
1996-08-01  0:00 Tim Behrendsen
1996-08-02  0:00 ` Mark McKinney
1996-08-02  0:00 ` David Bonham
     [not found] ` <9608061851.AA17508@camo.brc.shell.com>
1996-08-06  0:00   ` Tim Behrendsen
1996-07-30  0:00 Spasmo
1996-07-31  0:00 ` Jon S Anthony
1996-08-01  0:00   ` Tim Behrendsen
1996-08-02  0:00     ` Ralph Silverman
     [not found] ` <01bb7e29$61e3d260$87ee6fce@timpent.airshields.com>
1996-07-31  0:00   ` Bob Kitzberger
1996-07-31  0:00     ` Tim Behrendsen
1996-06-19  0:00 Alan Brain
1996-06-20  0:00 ` Ron Thompson
1996-06-22  0:00 ` Nasser Abbasi
1996-06-22  0:00   ` David Morton
1996-06-22  0:00     ` Robert Dewar
1996-06-23  0:00       ` The Deviant
1996-06-23  0:00         ` John Winters
1996-06-23  0:00         ` Michael Feldman
1996-06-23  0:00         ` Robert Dewar
1996-06-24  0:00         ` token%/etc/HOSTNAME
1996-06-23  0:00     ` John Winters
1996-06-23  0:00       ` David Morton
1996-06-23  0:00         ` John Winters
1996-06-23  0:00           ` David Morton
1996-06-23  0:00         ` Lawrence Kirby
1996-06-30  0:00   ` Nasser Abbasi
1996-06-23  0:00 ` Nasser Abbasi
1996-06-23  0:00   ` Fergus Henderson
1996-06-23  0:00     ` Robert Dewar
1996-06-28  0:00       ` Fergus Henderson
     [not found] ` <874508446wnr@t-cubed.demon.co.uk>
1996-06-29  0:00   ` Jon S Anthony
1996-06-29  0:00 ` Kevin D. Quitt
1996-06-29  0:00   ` Robert Dewar
1996-06-30  0:00   ` Fergus Henderson
1996-07-01  0:00     ` Mike Roske
1996-07-01  0:00       ` Robert Dewar
1996-07-02  0:00       ` Ken Garlington
1996-07-03  0:00     ` Kevin D. Quitt
1996-07-04  0:00       ` Ian Ward
1996-07-05  0:00         ` Peter Amey
1996-07-05  0:00           ` Robert Dewar
1996-07-10  0:00             ` James A. Squire
1996-07-15  0:00               ` Oliver Kellogg
1996-07-16  0:00                 ` Oliver Kellogg
1996-07-18  0:00                   ` Fraser Wilson
1996-07-18  0:00                     ` Fergus Henderson
1996-07-19  0:00                   ` Keith Thompson
1996-07-17  0:00                 ` Robert Dewar
1996-07-11  0:00             ` James A. Squire
1996-07-16  0:00             ` Nasser Abbasi
1996-07-16  0:00               ` Mark A Biggar
1996-07-17  0:00             ` James A. Squire
1996-07-17  0:00             ` Laurent Guerby
1996-07-17  0:00               ` David Emery
1996-07-18  0:00             ` James A. Squire
1996-07-07  0:00           ` Kevin D. Quitt
1996-07-08  0:00             ` Robert Dewar
1996-07-10  0:00               ` Peter Hermann
1996-07-15  0:00                 ` Tim McGuire
1996-07-16  0:00                   ` Kevin D. Quitt
1996-07-16  0:00                     ` Robert Dewar
1996-07-18  0:00                     ` Bob Gilbert
1996-07-19  0:00                       ` Kevin D. Quitt
1996-07-18  0:00                     ` Ken Garlington
1996-07-19  0:00                       ` Kevin D. Quitt
1996-07-19  0:00                         ` Richard O'Rourke
1996-07-22  0:00                           ` Kevin D. Quitt
1996-07-22  0:00                             ` Robert Dewar
1996-07-23  0:00                               ` Kevin D. Quitt
1996-07-24  0:00                                 ` Theodore E. Dennison
1996-07-24  0:00                                   ` Kevin D. Quitt
1996-07-25  0:00                                     ` Steve Howard
1996-07-25  0:00                                     ` Alan Brain
1996-07-27  0:00                                     ` Bob Kitzberger
1996-07-26  0:00                                   ` Mike Roske
1996-07-25  0:00                                 ` Fergus Henderson
1996-07-25  0:00                                   ` Kevin D. Quitt
1996-07-26  0:00                                     ` Fergus Henderson
1996-07-26  0:00                                     ` kennedy1
1996-07-23  0:00                               ` Theodore E. Dennison
1996-07-23  0:00                               ` Tim Behrendsen
1996-07-24  0:00                                 ` JamesS1889
1996-07-24  0:00                                 ` Dirk Dickmanns
1996-07-24  0:00                                 ` Theodore E. Dennison
1996-07-27  0:00                                   ` Tim Behrendsen
1996-07-29  0:00                                     ` Bob Kitzberger
1996-07-30  0:00                                       ` Tim Behrendsen
1996-07-30  0:00                                         ` Theodore E. Dennison
1996-07-30  0:00                                         ` Richard A. O'Keefe
1996-07-30  0:00                                           ` Tim Behrendsen
1996-07-29  0:00                                     ` Dirk Dickmanns
1996-07-30  0:00                                       ` Tim Behrendsen
1996-07-31  0:00                                         ` whiting_ms@corning.com (Matt Whiting)
1996-07-31  0:00                                         ` Dirk Dickmanns
1996-07-31  0:00                                           ` Kevin D. Quitt
1996-08-01  0:00                                             ` Alan Brain
1996-08-02  0:00                                               ` Kevin D. Quitt
1996-08-05  0:00                                                 ` Byron B. Kauffman
1996-08-15  0:00                                               ` Mike Roske
1996-08-15  0:00                                                 ` David Shochat
1996-08-16  0:00                                                   ` Ken Garlington
1996-08-16  0:00                                                 ` John Herro
1996-08-16  0:00                                                   ` John Herro
1996-08-16  0:00                                                 ` Jon S Anthony
1996-08-05  0:00                                             ` Robb Nebbe
1996-08-02  0:00                                           ` Dirk Dickmanns
1996-07-30  0:00                                     ` Theodore E. Dennison
1996-07-29  0:00                                   ` system
1996-07-30  0:00                                     ` Tim Behrendsen
1996-07-25  0:00                                 ` Alan Brain
1996-07-10  0:00               ` John F. Bode
1996-07-11  0:00                 ` Mike Roske
     [not found]               ` <4rvr2j$2gb0@info4.rus.uni-s <nhn30yhw6t.fsf@paralysys>
1996-07-18  0:00                 ` Robert Dewar
1996-07-18  0:00                 ` Kevin D. Quitt
1996-07-26  0:00                 ` Richard Riehle
1996-07-08  0:00             ` Ian Ward
1996-07-08  0:00               ` C is 'better' than Ada ... NOT!! Kevin D. Quitt
1996-07-12  0:00                 ` C is 'better' than Ada because John F. Bode
1996-07-15  0:00                   ` Sandy McPherson
1996-07-18  0:00                     ` Robert Dewar
1996-07-19  0:00                       ` Theodore E. Dennison
1996-07-19  0:00                     ` Theodore E. Dennison
1996-07-19  0:00                     ` Ken Garlington
1996-07-20  0:00                       ` Michael Feldman
1996-07-21  0:00                         ` Alfonso Urdaneta
1996-07-21  0:00                           ` Robert Dewar
1996-07-22  0:00                             ` Kevin D. Quitt
1996-07-22  0:00                               ` Robert Dewar
1996-07-26  0:00                               ` Richard Riehle
     [not found]                             ` <31f3c52e.238719470 <Pine.GSO.3.92.960726122347.25896E-100000@nunic.nu.edu>
1996-07-31  0:00                               ` Darrin Smith
1996-07-31  0:00                                 ` Fergus Henderson
1996-08-01  0:00                                 ` Jerry van Dijk
1996-08-06  0:00                                   ` Kirk Bradley
1996-08-09  0:00                                   ` Richard Riehle
1996-08-10  0:00                                     ` Craig Franck
1996-08-16  0:00                                       ` Richard Riehle
1996-08-18  0:00                                         ` Craig Franck
     [not found]                                       ` <Pine.GSO.3.92.960816102000. <4v5pis$4h1@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-18  0:00                                         ` David Weller
1996-08-15  0:00                                     ` Mike Stark
1996-08-02  0:00                                 ` Robert Dewar
1996-08-11  0:00                             ` Jon S Anthony
     [not found]                             ` <31f3c52e.238719470 <4uj42h$j06@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-11  0:00                               ` Doug & Rose Miller
1996-08-11  0:00                                 ` Craig Franck
1996-08-11  0:00                                   ` Doug & Rose Miller
1996-08-12  0:00                                     ` Craig Franck
1996-08-16  0:00                                       ` nasser
     [not found]                             ` <31f3c52e.238719470 <4v5pis$4h1@mtinsc01-mgt.ops.worldnet.att.net>
1996-08-18  0:00                               ` Doug & Rose Miller
1996-08-20  0:00                                 ` Craig Franck
1996-07-23  0:00                         ` Ken Garlington
1996-07-27  0:00                       ` Tim Behrendsen
1996-07-27  0:00                         ` Lawrence Kirby
1996-07-29  0:00                         ` Ian Ward
1996-07-30  0:00                         ` Bob Cousins
1996-07-30  0:00                           ` Robert Dewar
1996-09-05  0:00                             ` Bob Cousins
1996-08-13  0:00                       ` Jon S Anthony
1996-08-14  0:00                         ` Craig Franck
1996-08-28  0:00                           ` Van Snyder
1996-08-14  0:00                       ` Jon S Anthony
1996-08-15  0:00                         ` Craig Franck
1996-08-15  0:00                           ` Joe Gwinn
1996-08-16  0:00                             ` Don Nelson
1996-08-19  0:00                               ` Joe Gwinn
1996-08-19  0:00                                 ` Ken Garlington
1996-08-28  0:00                         ` Van Snyder
1996-08-30  0:00                           ` Norman H. Cohen
1996-08-15  0:00                       ` Stefan 'Stetson' Skoglund
1996-08-15  0:00                       ` Jon S Anthony
1996-08-20  0:00                         ` nasser
1996-08-15  0:00                     ` David Weller
1996-08-15  0:00                       ` William  C Brennan
1996-07-18  0:00               ` Hamilton Link
1996-07-19  0:00                 ` Kevin D. Quitt
1996-07-10  0:00             ` Stephen M O'Shaughnessy
1996-07-10  0:00               ` Peter Seebach
1996-07-18  0:00             ` Brian Rogoff
1996-07-19  0:00             ` James A. Squire
1996-07-29  0:00             ` William Clodius
1996-07-30  0:00               ` Robert Dewar
1996-07-31  0:00                 ` Tim Behrendsen
     [not found]                   ` <9608020139.AA29105@pulsar.telesoft>
1996-08-02  0:00                     ` Tim Behrendsen
1996-08-05  0:00                       ` Kevin D. Quitt
1996-07-30  0:00               ` Richard A. O'Keefe
1996-07-30  0:00                 ` Tim Behrendsen
1996-08-01  0:00                   ` Byron B. Kauffman
1996-08-01  0:00                     ` Ian Ward
1996-07-31  0:00               ` Ralph Silverman
1996-07-30  0:00             ` William Clodius
1996-08-01  0:00               ` Tim Behrendsen
1996-07-30  0:00             ` Robert I. Eachus
1996-08-01  0:00               ` David Wheeler
1996-08-01  0:00             ` Olivier Devuns @pulsar
1996-08-11  0:00             ` Jon S Anthony
1996-08-12  0:00               ` Craig Franck
1996-08-12  0:00                 ` John Howard
1996-08-13  0:00                   ` Craig Franck
1996-08-13  0:00                     ` Ken Garlington
1996-08-14  0:00                       ` Craig Franck
1996-08-12  0:00                 ` James A. Squire
1996-08-12  0:00                   ` Craig Franck
1996-08-14  0:00                 ` Stephen M O'Shaughnessy
1996-08-14  0:00                 ` Stephen M O'Shaughnessy
     [not found]                 ` <Pine.GS <gwinn-1908961215100001@smc19.ed.ray.com>
1996-08-19  0:00                   ` Adam Beneschan
1996-08-13  0:00             ` Jon S Anthony
1996-08-13  0:00             ` Jon S Anthony
1996-08-14  0:00             ` Norman H. Cohen
1996-08-19  0:00             ` Jon S Anthony
1996-08-20  0:00               ` Craig Franck
1996-08-20  0:00             ` Jon S Anthony
1996-08-21  0:00               ` Craig Franck
1996-08-27  0:00             ` Valentin Bonnard
1996-07-06  0:00         ` Walter B. Hollman Sr.
1996-07-05  0:00       ` Jon S Anthony
1996-07-08  0:00         ` Peter Hermann
1996-07-09  0:00           ` Dirk Dickmanns
1996-07-12  0:00       ` ntxbow
1996-07-15  0:00         ` Kevin D. Quitt
1996-07-15  0:00           ` Robert Dewar
1996-07-16  0:00           ` Ian Ward
1996-07-17  0:00             ` Dale Stanbrough
1996-07-23  0:00       ` Jon S Anthony
1996-07-29  0:00       ` William Clodius
1996-07-31  0:00       ` Darin Johnson
1996-08-01  0:00         ` Tim Behrendsen
1996-08-01  0:00       ` Jon S Anthony
1996-08-01  0:00       ` Jon S Anthony
1996-08-05  0:00       ` Stefan 'Stetson' Skoglund
1996-08-16  0:00       ` Jon S Anthony
1996-07-01  0:00 ` James A. Squire
1996-07-02  0:00 ` Darin Johnson
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox