From: Patrick Hohmeyer <pi3_1415926536@yahoo.ca>
Subject: Re: was Re: Ada / C++ comparison paper anymore
Date: Wed, 19 Dec 2001 15:51:43 -0500
Date: 2001-12-19T15:51:43-05:00 [thread overview]
Message-ID: <DK6U7.24955$Yq5.2627743@news20.bellglobal.com> (raw)
In-Reply-To: V06U7.9376$xl6.1002639@rwcrnsc54
Mark Lundquist wrote :
> No, but if I want to write
>
> procedure P2 is new P_Base (T2);
>
> I can certainly do that, right? And while P1 is primitive to T1 and P2 is
> not necessarily primitive to T2 (depending on the scope of the
> instantiation), an implicit instantiation is obviously not primitive
> either.
> I'm not seeing how my scheme weakens anything at all... It just results
> in
> a lighter syntax. Can you please be more specific about *exactly* what
> problems you see it causing, and how? I would be genuinely interested to
> know...
>
Ok, an exemple :
procedure X is
generic
type Number is range <>;
type Num_Arr is array (Integer range <>) of Number;
function Mean(A : Num_Arr) return Number;
function Mean(A : Num_Arr) return Number is
Sum : Integer := 0;
begin
for I in A'Range loop
Sum := Sum + Integer(A(I));
end loop;
return Number(Sum/A'Length);
end Mean;
type T_Employes is array(Integer range <>) of Natural; -- employe numbers
type T_Employe_S is array(Integer range <>) of Natural; -- employe salaries
function Sal_Mean is new Mean(Natural,T_Employe_S);
Employes : T_Employes(1..1000);
Employe_S : T_Employe_S(1..1000);
Mean_Sal : Natural;
begin
Mean_Sal := Sal_Mean(Employe_S); -- line 1
Mean_Sal := Sal_Mean(Employes); -- line 2
end X;
--end code -----------------------
First, I know that identifiers as similiar as Employes and
Employe_S are bad.
You can easly mix them and thats exactly the point here.
Line 1 is correct, we calculate the mean salary of our employes.
But Line 2 calculates the mean of the employe numbers.
This makes no sense, and thanks to Ada this dont even compile,
as I haven't defined the Mean function for the employe numbers.
But with your auto-instanciation, I simply would write Mean
and nobody catched the error. It compiles and even *runs* fine,
only the results are completly nonsense.
That's why I'm against auto-instantiations.
People make bugs. And everything that is transformed auto-magicly
helps bugs to survive longer.
--
Patrick Hohmeyer
next prev parent reply other threads:[~2001-12-19 20:51 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-17 10:22 Ada / C++ comparison paper Martin Dowie
2001-12-17 14:42 ` Frode Tenneboe
2001-12-17 22:07 ` Hyman Rosen
2001-12-17 22:34 ` David C. Hoos
2001-12-17 22:37 ` Marin David Condic
2001-12-18 0:54 ` Ed Falis
2001-12-18 9:30 ` martin.m.dowie
2001-12-18 14:49 ` Marin David Condic
2001-12-18 17:51 ` Hyman Rosen
2001-12-19 16:10 ` Greg C
2001-12-20 14:41 ` Hyman Rosen
2001-12-20 20:16 ` Greg C
2001-12-19 20:44 ` Wes Groleau
2001-12-19 20:47 ` Ed Falis
2001-12-20 18:16 ` Ted Dennison
2001-12-20 19:12 ` Richard Riehle
2001-12-18 1:16 ` Larry Kilgallen
2001-12-17 22:52 ` Matthew Heaney
2001-12-18 15:47 ` Hyman Rosen
2001-12-18 16:20 ` Pat Rogers
2001-12-18 17:00 ` Hyman Rosen
2001-12-18 17:28 ` Larry Kilgallen
2001-12-18 19:40 ` Brian Rogoff
2001-12-18 20:25 ` Hyman Rosen
2001-12-19 0:53 ` was Re: Ada / C++ comparison paper anymore Mark Lundquist
2001-12-19 1:47 ` Brian Rogoff
2001-12-19 18:20 ` Mark Lundquist
2001-12-19 19:39 ` Patrick Hohmeyer
2001-12-19 19:38 ` Mark Lundquist
2001-12-19 20:51 ` Patrick Hohmeyer [this message]
2001-12-20 17:56 ` Brian Rogoff
2001-12-20 18:48 ` Patrick Hohmeyer
2001-12-20 19:20 ` Brian Rogoff
2001-12-21 3:16 ` Implicit instantiation (was Re: Ada / C++ comparison paper anymore) Mark Lundquist
2001-12-21 3:12 ` Implicit instantiation (was Re: was " Mark Lundquist
2001-12-21 2:55 ` Mark Lundquist
2001-12-20 20:22 ` was Re: Ada / C++ comparison paper anymore Ted Dennison
2001-12-20 20:57 ` Marin David Condic
2001-12-21 17:44 ` Richard Riehle
2001-12-21 17:51 ` Marin David Condic
2001-12-19 18:20 ` Ada / C++ comparison paper Mark Lundquist
2001-12-20 20:27 ` Ted Dennison
2001-12-20 20:59 ` Marin David Condic
2001-12-21 14:26 ` Ted Dennison
2001-12-21 14:32 ` Marin David Condic
2001-12-21 15:11 ` Jean-Marc Bourguet
2001-12-20 22:30 ` tmoran
2001-12-20 22:36 ` Marin David Condic
2001-12-21 14:23 ` Ted Dennison
2001-12-21 18:46 ` tmoran
2001-12-21 19:09 ` Ted Dennison
2001-12-21 2:46 ` Mark Lundquist
2001-12-21 14:28 ` Ted Dennison
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox