comp.lang.ada
 help / color / mirror / Atom feed
* += in ada
@ 2003-09-25 16:25 Dmytry Lavrov
  2003-10-01  8:35 ` Peter Amey
  2003-10-01 14:06 ` Gautier
  0 siblings, 2 replies; 270+ messages in thread
From: Dmytry Lavrov @ 2003-09-25 16:25 UTC (permalink / raw)


Sorry,i can't post normal reply. It's "Re:is the writing on the wall for
ada"  is too big...


Russ wrote:
> 
> Jacob Sparre Andersen <sparre@crs4.it> wrote in message news:<3F7024F8.1000102@crs4.it>...
> > Russ wrote:
> > > Wes Groleau <groleau@freeshell.org> wrote in message news:<RbSdnT6kv7SrdPqiU-KYuQ@gbronline.com>...
> >
> > >>(Russ insists that A += 1 never needs temporaries
> > >>and that A := A + 1 always does.)
> >
> > Which as far as I know is not quite true.
> >
> > > That's not *quite* what I insist. What I insist is that, for
> > > vector/matrix operations, "+" is a *function* that must create a
> > > temporary vector/matrix and return it, and it must be *copied* to the
> > > lhs.
> >
> > I haven't got the LRM right here, but IIRC the compiler just has to
> > generate code that is _equivalent_ to that, i.e. code that gives the
> > same result.
> >
> > And at least for simple cases like matrix operations, it is possible to
> > make the compiler check if a temporary variable is needed or not.  We
> > can thus (at least in theory) leave it to the compiler to check if the
> > temporary variable is needed or not _and_ to consider which of the
> > solutions - with or without the temporary variable - is actually faster
> > on the hardware in question.
> >
> >  > On the other hand, "+=" is a *procedure* that does not
> > > necessarily need any temporaries because it can do its operations "in
> > > place". No temporaries, no extra copying.
> >
> > Yes.  But would you really like to have to mess with writing code that
> > you just as well could leave it to the compiler to generate _if_ it
> > actually would make a efficiency difference for the program?
> >
> > I prefer to leave as much work as possible to the compiler.
> >
> > > Someone else also claimed that a good Ada compiler can make "+" as
> > > efficient as "+=", but I don't see how that could be possible,
> > > considering that I could define "+" and "+=" to do anything I want.
> >
> > Remember that the compiler has access to the code for your "+" function
> > and can look at what it actually does.  This is simply a matter of
> > optimization.  And it is not really on an algorithmic level, so it
> > should be left to the compiler, unless you can prove that it is strictly
> > neccessary to improve the code beyond what you compiler manages.
> >
> > > Nothing in the language requires me to define "+" to actually do
> > > matrix addition. I could define it to write poetry if I wish.
> >
> > Yes.  But then the compiler will just notice that and optimize accordingly.
> >
> > > And let's not forget that a properly defined "+" should be able to
> > > handle sequential addition, such as A = B + C + D + E. No matter how
> > > you slice it, each of those additions needs a temporary.
> >
> > Assuming that we are discussing something nice like simple matrix
> > addition here, I don't see why.  If your hardware has an "add four
> > numbers" operation, you don't need any.  And in general should such an
> > operation be done on a per element basis, which would mean that one
> > would need one (if the operations are done sequetially) or two (if the
> > operations are done in parallel) registers in the CPU for storing
> > intermediate results.  But still: Leave this kind of optimization to the
> > compiler!
> 
> If the compiler can really do all that, then fine. But how many really
> can? Can gnat do that, for example? Or is this just one of those
> "maybe someday in the distant future," "pie in the sky" things?

If it's not done for integers as second(after constant precalc),
it's really strange.GNAT may not have it because of C.

Let's translate a:=a+b  to

mov eax,b
add a,eax
//optional checks:
jno @@noexcept
sub a,eax
 ---raise exception
@@noexcept:

> By the way, even if there is no difference in efficiency, I still
> prefer
> 
>     count += 1
> to
>     count = count + 1
> 
> The latter grates on my minimalist sensibilities like fingernails on a
> chalkboard, and I'll bet I'm not alone on this. As I said before, I'll
> bet the vast majority of C, C++, Java, Perl, and Python programmers
> use the first form. If this low-level deficiency is not corrected in
> Ada0x, that will be a big mistake.

Yes, OPERATION is needed,but it's does not mean that we really need "+="
operator.

I prefer build-in for build-in types
inc(count,1);   {like in many Pascal implementation}
to
count += 1
and to
count := count + 1

,because i really don't want to add new operators "+=","-=","*=",and
"/=" for divide(!!!;-), "\=" for a:=b/a ,and "!=" for factorial.

sin= for sine,sqrt= for squareroot,and juliafractal= for iteration of
julia fractal  . 


"procedure" notation should be used anywhere except where we need
"compatibility" with math notation.
There are no += operator in math,so we don't need operator,just
procedure(build-in for CPU-supported operations).

-- 
http://dmytrylavrov.narod.ru



^ permalink raw reply	[flat|nested] 270+ messages in thread

end of thread, other threads:[~2003-10-31 22:40 UTC | newest]

Thread overview: 270+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-25 16:25 += in ada Dmytry Lavrov
2003-10-01  8:35 ` Peter Amey
2003-10-01 12:38   ` Frank J. Lhota
2003-10-03 16:22     ` Isaac Gouy
2003-10-06 20:21       ` Russ
2003-10-06 22:47         ` (see below)
2003-10-04 20:17   ` Craig Carey
2003-10-06  7:36     ` Jean-Pierre Rosen
2003-10-06  8:13       ` Lutz Donnerhacke
2003-10-06 22:49       ` Wes Groleau
2003-10-01 14:06 ` Gautier
2003-10-02 12:26   ` Lutz Donnerhacke
2003-10-02 13:03     ` Preben Randhol
2003-10-02 13:36       ` Lutz Donnerhacke
2003-10-02 21:28         ` Keith Thompson
2003-10-07  0:41           ` Russ
2003-10-07 10:05             ` Dmytry Lavrov
2003-10-07 11:56               ` Lutz Donnerhacke
2003-10-07 14:02                 ` (see below)
2003-10-07 22:22                   ` Russ
2003-10-07 23:52                     ` (see below)
2003-10-08  6:08                     ` Preben Randhol
2003-10-09 19:07                       ` Russ
2003-10-09 19:42                         ` Vinzent 'Gadget' Hoefler
     [not found]                           ` <25oh51-uu2.ln1@beastie.ix.netcom.com>
2003-10-10  7:37                             ` Preben Randhol
2003-10-10 18:56                               ` Russ
2003-10-11  8:10                                 ` Preben Randhol
2003-10-11  8:30                                 ` Samuel Tardieu
2003-10-10 12:09                             ` Vinzent 'Gadget' Hoefler
2003-10-10  7:34                         ` Preben Randhol
2003-10-12  0:50                           ` Wes Groleau
2003-10-12  8:24                             ` Preben Randhol
2003-10-12 14:57                               ` Robert I. Eachus
2003-10-12 18:37                                 ` (see below)
2003-10-13  0:42                                   ` Robert I. Eachus
2003-10-13  8:32                                     ` Dmytry Lavrov
2003-10-13 19:18                                       ` Robert I. Eachus
2003-10-13 23:36                                     ` Alexandre E. Kopilovitch
2003-10-14  6:14                                       ` Vinzent 'Gadget' Hoefler
2003-10-14 15:19                                         ` Robert I. Eachus
2003-10-30 21:43                                     ` ARG process (was += in ada) Randy Brukardt
2003-10-30 23:21                                       ` Robert I. Eachus
2003-10-10 20:31                         ` += in ada Dmytry Lavrov
2003-10-12  8:23                           ` Dmytry Lavrov
2003-10-14 18:00                           ` Russ
2003-10-14 18:15                             ` Vinzent 'Gadget' Hoefler
2003-10-15 12:50                             ` Georg Bauhaus
2003-10-15 13:25                               ` Hyman Rosen
2003-10-15 14:04                                 ` Vinzent 'Gadget' Hoefler
2003-10-15 15:19                                   ` Hyman Rosen
2003-10-15 18:06                                     ` Vinzent 'Gadget' Hoefler
2003-10-15 18:53                                       ` Hyman Rosen
2003-10-15 19:34                                         ` Vinzent 'Gadget' Hoefler
2003-10-15 23:09                                         ` Alexandre E. Kopilovitch
2003-10-16  5:05                                     ` Russ
2003-10-16 12:07                                       ` Marin David Condic
2003-10-16 13:43                                       ` Hyman Rosen
2003-10-16 23:57                                         ` Robert I. Eachus
2003-10-17  6:22                                           ` Russ
2003-10-17  6:38                                             ` Preben Randhol
2003-10-17 15:48                                             ` Robert I. Eachus
2003-10-19  1:15                                               ` Russ
2003-10-19 16:04                                                 ` Robert I. Eachus
2003-10-19 23:59                                                   ` Russ
2003-10-20  5:24                                                     ` Chad R. Meiners
2003-10-20  5:52                                                       ` Robert I. Eachus
2003-10-20 12:40                                                         ` Marin David Condic
2003-10-20 14:36                                                           ` Preben Randhol
2003-10-21  0:23                                                           ` Wes Groleau
2003-10-21  3:46                                                             ` Hyman Rosen
2003-10-21  6:37                                                           ` Russ
2003-10-21 10:10                                                             ` Marius Amado Alves
2003-10-22  5:23                                                               ` Russ
2003-10-20 14:34                                                         ` Preben Randhol
2003-10-21  7:43                                                         ` Russ
2003-10-21 12:45                                                           ` Lutz Donnerhacke
2003-10-22  7:13                                                             ` Russ
2003-10-22  8:48                                                               ` Vinzent 'Gadget' Hoefler
2003-10-22  9:02                                                               ` Lutz Donnerhacke
2003-10-22 18:21                                                                 ` Russ
2003-10-22 19:10                                                                   ` Vinzent 'Gadget' Hoefler
2003-10-23  5:24                                                                     ` + " Russ
2003-10-22 19:16                                                                   ` += " sk
2003-10-22 19:13                                                                     ` Vinzent 'Gadget' Hoefler
2003-10-23  5:16                                                                     ` Russ
2003-10-23  5:45                                                                       ` sk
2003-10-22 21:22                                                                 ` Russ
2003-10-23  2:23                                                                   ` Wes Groleau
2003-10-22  9:46                                                               ` Preben Randhol
2003-10-22  8:01                                                             ` Russ
2003-10-21 13:38                                                           ` Robert I. Eachus
2003-10-22  7:24                                                             ` Russ
2003-10-22 19:50                                                               ` Robert I. Eachus
2003-10-23  5:34                                                                 ` Russ
2003-10-23 14:14                                                                   ` Robert I. Eachus
2003-10-24  9:15                                                                     ` Peter Hermann
2003-10-24 10:11                                                                       ` Marius Amado Alves
2003-10-26  7:35                                                                         ` Pascal Obry
2003-10-24 11:20                                                                       ` Marin David Condic
2003-10-25  3:14                                                                       ` Russ
2003-10-25  5:07                                                                     ` Russ
2003-10-19 23:19                                                 ` Robert A Duff
2003-10-20  6:16                                                   ` Russ
2003-10-20 14:31                                                     ` Preben Randhol
2003-10-20 17:10                                                     ` Robert I. Eachus
2003-10-20 17:53                                                       ` Hyman Rosen
2003-10-20 19:11                                                         ` Robert I. Eachus
2003-10-20 19:32                                                           ` Hyman Rosen
2003-10-20 23:24                                                           ` Alexandre E. Kopilovitch
2003-10-21  0:40                                                     ` Wes Groleau
2003-10-21  3:45                                                       ` Hyman Rosen
2003-10-21 12:07                                                         ` Preben Randhol
2003-10-21 12:18                                                           ` Marius Amado Alves
2003-10-21 12:45                                                         ` Marin David Condic
2003-10-21 14:46                                                           ` Robert I. Eachus
2003-10-21 17:54                                                             ` Chad R. Meiners
2003-10-21 20:23                                                               ` Robert I. Eachus
2003-10-22  0:18                                                             ` Wes Groleau
2003-10-22  4:07                                                               ` Robert I. Eachus
2003-10-22 20:41                                                                 ` Wes Groleau
2003-10-22 11:56                                                             ` Marin David Condic
2003-10-22  0:14                                                           ` Wes Groleau
2003-10-22 12:31                                                             ` Early Ada Mistakes (was: Re: += in ada) Marin David Condic
2003-10-22 20:05                                                               ` Robert I. Eachus
2003-10-23  4:47                                                                 ` Marin David Condic
2003-10-23 14:36                                                                   ` Early Ada Mistakes Hyman Rosen
2003-10-23 19:04                                                                     ` Chad R. Meiners
2003-10-24 13:33                                                                       ` Preben Randhol
2003-10-24 16:59                                                                         ` Robert I. Eachus
2003-10-23 19:08                                                                     ` Wes Groleau
2003-10-23 22:17                                                                       ` Robert I. Eachus
2003-10-24 11:26                                                                       ` Marin David Condic
2003-10-23 18:50                                                                   ` Wes Groleau
2003-10-22 21:00                                                               ` Wes Groleau
2003-10-23  4:53                                                                 ` Marin David Condic
2003-10-22  6:56                                                           ` += in ada Russ
2003-10-22  7:26                                                             ` Preben Randhol
2003-10-22 11:27                                                             ` Stephane Richard
2003-10-22 20:12                                                               ` Robert I. Eachus
2003-10-22 20:52                                                             ` Wes Groleau
     [not found]                                                         ` <emte61-d03.ln1@beastie.ix.netcom.com>
2003-10-21 12:57                                                           ` Hyman Rosen
2003-10-21  2:43                                                 ` Alexandre E. Kopilovitch
2003-10-21  9:39                                                   ` Stephane Richard
2003-10-19 22:26                                               ` Wes Groleau
2003-10-16  4:31                                   ` + " Russ
2003-10-16  8:57                                     ` += " Vinzent 'Gadget' Hoefler
2003-10-16 20:56                                     ` + " Georg Bauhaus
2003-10-16  4:04                               ` += " Russ
2003-10-16  8:57                                 ` Vinzent 'Gadget' Hoefler
2003-10-17  3:03                                 ` Wes Groleau
2003-10-17 11:46                                   ` Marin David Condic
2003-10-17 11:50                                     ` Preben Randhol
2003-10-17 12:40                                       ` sk
2003-10-17 12:48                                         ` Preben Randhol
2003-10-15 14:16                             ` Dmytry Lavrov
2003-10-16  5:40                               ` Russ
2003-10-16 12:45                                 ` Lutz Donnerhacke
2003-10-16 22:07                                   ` Russ
2003-10-17  9:10                                     ` Lutz Donnerhacke
2003-10-16 13:48                                 ` Dmytry Lavrov
2003-10-16 20:46                                 ` Georg Bauhaus
2003-10-17  2:37                                   ` Russ
2003-10-17  3:01                                     ` sk
2003-10-17  5:42                                       ` Russ
2003-10-17 11:26                                         ` sk
2003-10-17 20:24                                           ` Dmytry Lavrov
2003-10-17  3:52                                     ` Chad R. Meiners
2003-10-17  6:32                                     ` Preben Randhol
2003-10-17  8:48                                     ` Dmytry Lavrov
2003-10-16  1:25                             ` Chad R. Meiners
2003-10-19 23:50                               ` Robert A Duff
2003-10-20  5:52                                 ` Chad R. Meiners
2003-10-07 18:28                 ` Alexander Kopilovitch
2003-10-10 19:56                   ` Dmytry Lavrov
2003-10-20  7:41       ` idem (Was: += in ada) Jacob Sparre Andersen
2003-10-20  8:28         ` Dmitry A. Kazakov
2003-10-20  8:34         ` (see below)
2003-10-31 22:40         ` Nick Roberts
2003-10-14  9:52   ` += in ada Stuart Palin
2003-10-16  8:49     ` Russ
2003-10-16 12:46       ` Lutz Donnerhacke
2003-10-16 13:46         ` Hyman Rosen
2003-10-16 15:42           ` Mark A. Biggar
2003-10-16 16:48             ` Hyman Rosen
2003-10-17  0:26               ` Robert I. Eachus
2003-10-17  1:26                 ` Marin David Condic
2003-10-17  3:59                   ` Chad R. Meiners
2003-10-17 11:54                     ` Marin David Condic
2003-10-17 20:35                       ` Russ
2003-10-19 22:22                     ` Wes Groleau
2003-10-19  1:37                   ` Russ
2003-10-19  3:16                     ` sk
2003-10-19 14:10                     ` Preben Randhol
2003-10-19 14:29                     ` Marin David Condic
2003-10-20  2:47                       ` Russ
2003-10-20  3:03                         ` Vinzent 'Gadget' Hoefler
2003-10-20  5:47                         ` Chad R. Meiners
2003-10-20 12:56                           ` Marin David Condic
2003-10-20  6:19                         ` Ross Higson
2003-10-21 17:30                           ` Russ
2003-10-21 18:40                             ` sk
2003-10-22  7:35                               ` Russ
2003-10-21 23:28                             ` Ross Higson
2003-10-21 23:55                               ` Jerry Petrey
2003-10-22  7:35                             ` Preben Randhol
2003-10-20 16:30                         ` Martin Dowie
2003-10-20 17:05                           ` Hyman Rosen
2003-10-20 17:46                             ` Martin Dowie
2003-10-20 18:01                               ` Hyman Rosen
2003-10-21  0:57                           ` Wes Groleau
2003-10-21  1:46                             ` Stephane Richard
2003-10-21  3:38                             ` Hyman Rosen
2003-10-21  8:49                             ` Martin Dowie
2003-10-21  9:04                             ` Marius Amado Alves
2003-10-21 13:00                               ` Marin David Condic
2003-10-21 13:37                                 ` Marius Amado Alves
2003-10-21 14:50                                   ` Robert I. Eachus
2003-10-21 15:01                                     ` Stephane Richard
2003-10-21 15:03                                     ` Stephane Richard
2003-10-21 15:07                                     ` Vinzent 'Gadget' Hoefler
2003-10-21 15:13                                       ` Stephane Richard
2003-10-21 15:58                                       ` (see below)
2003-10-21 15:24                                     ` Dmitry A. Kazakov
2003-10-21 16:44                                     ` Marius Amado Alves
2003-10-22  7:32                                     ` Preben Randhol
2003-10-22  8:48                                       ` Vinzent 'Gadget' Hoefler
2003-10-22 20:24                                         ` Robert I. Eachus
2003-10-27 12:01                                           ` Vinzent 'Gadget' Hoefler
2003-10-27 17:31                                             ` Robert I. Eachus
2003-10-21 13:01                               ` Hyman Rosen
2003-10-21  4:49                           ` sk
2003-10-21 21:19                             ` Simon Wright
2003-10-22  4:37                               ` sk
2003-10-19 14:40                     ` chris
2003-10-19 15:12                     ` Stephane Richard
2003-10-19 16:26                     ` Robert I. Eachus
2003-10-20  2:02                       ` Hyman Rosen
2003-10-20  6:12                         ` Robert I. Eachus
2003-10-20 12:50                           ` Hyman Rosen
2003-10-20 17:53                             ` Robert I. Eachus
2003-10-20 18:03                               ` Hyman Rosen
2003-10-21  1:35                                 ` Marin David Condic
2003-10-21  3:05                             ` Alexandre E. Kopilovitch
2003-10-21  3:30                               ` Hyman Rosen
2003-10-21 13:22                                 ` Alexandre E. Kopilovitch
2003-10-21 15:02                                   ` Hyman Rosen
2003-10-19 21:09                     ` Dmytry Lavrov
2003-10-17 14:15                 ` Hyman Rosen
2003-10-17 14:40                   ` Lutz Donnerhacke
2003-10-17 15:40                     ` Hyman Rosen
2003-10-17 15:49                       ` Lutz Donnerhacke
2003-10-17 20:43                         ` Hyman Rosen
2003-10-17 16:02                       ` Preben Randhol
2003-10-17 16:06                         ` Preben Randhol
2003-10-19 22:36                         ` Wes Groleau
2003-10-18  0:08                   ` Russ
2003-10-18 10:31                     ` Georg Bauhaus
2003-10-20  5:35                   ` Chad R. Meiners
2003-10-20 13:00                     ` Hyman Rosen
2003-10-20 14:27                       ` (see below)
2003-10-20 15:58                         ` Chad R. Meiners
2003-10-16 21:53             ` Russ
2003-10-17  8:20           ` Lutz Donnerhacke
2003-10-17 14:21             ` Hyman Rosen
2003-10-17 14:42               ` Lutz Donnerhacke
2003-10-17 15:46                 ` Hyman Rosen
2003-10-17 15:35               ` Larry Kilgallen
2003-10-17 16:02               ` Robert I. Eachus
2003-10-17 17:20                 ` Chad R. Meiners
2003-10-16  8:57     ` Vinzent 'Gadget' Hoefler

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