comp.lang.ada
 help / color / mirror / Atom feed
From: eachus@spectre.mitre.org (Robert I. Eachus)
Subject: Re: Overloading and polymorphism
Date: 03 Jan 1995 20:41:56 GMT
Date: 1995-01-03T20:41:56+00:00	[thread overview]
Message-ID: <EACHUS.95Jan3154156@spectre.mitre.org> (raw)
In-Reply-To: benari@zeus.datasrv.co.il's message of 25 Dec 1994 18:56:34 GMT

In article <3dkf92$i0s@israel-info.datasrv.co.il> benari@zeus.datasrv.co.il (Moti Ben-Ari) writes:

 > Are there any similar problems in Ada 9X or does everything
 > work out OK because each call is dispatched on a tag?

   Most of the problems are avoided in Ada 9X, but mostly due to
strong typing.  In fact, in many cases in Ada 9X, calls which appear
to be dispatching in the source code can be analyzed at compile time
and the dispatch table bypassed.  In the cases where this does not
happen, if there is a possibility of a type violation, the langauge
does specify run-time checking.  (The freezing rules also help.  Since
a primitive subprogram declaration cannot occur after the type is
frozen, dispatching operations, which must be primitive, must be
declared relatively soon after the declaration of the type.)

   Having said all that it is still possible to create cases in Ada 9X
where the dispatch is not to the "expected" routine.  But in general
you have to know a lot to create the problem cases, they don't happen
by accident.  (In fact I suspect that most of the cases are so
obviously pathological that good compilers will generate warning
messages--not for the call, but for the overloading.  AFAIK, the
problem only occurs when the scope of a dispatching subprogram does
not match the scope of the type being dispatched on, and, yes, I
realize that IS very hard to do.)

--

					Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...



      reply	other threads:[~1995-01-03 20:41 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-12-25 18:56 Overloading and polymorphism Moti Ben-Ari
1995-01-03 20:41 ` Robert I. Eachus [this message]
replies disabled

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