comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <rm.dash-bauhaus@futureapps.de>
Subject: Re: Derived private interface
Date: Thu, 07 Jul 2011 15:18:27 +0200
Date: 2011-07-07T15:18:27+02:00	[thread overview]
Message-ID: <4e15b223$0$6541$9b4e6d93@newsspool4.arcor-online.net> (raw)
In-Reply-To: <82vcve4bqx.fsf@stephe-leake.org>

On 07.07.11 12:37, Stephen Leake wrote:

> If you don't put 'overriding' on all child operations, they silently
> become non-overriding when the parent changes. Very Bad Things Happen.

An indicator "not overriding" will also "help" when one adds a name
to a parent that had already been used in a child type and has
been duly marked "not overriding" there.
It is only an early hint, though. For example, taking care of LSP
substitutability is not an immediate consequence of the presence
of overriding indicators, but the diagnosis is a start, if not
the best IMHO.

An indicator "overriding" will also help with c&p errors.
For example, when forgetting to adapt parameter profiles to the
child type.

So this is about typos.

What instances of Very Bad Things can be removed with the
help of indicators?

Some of the Very Bad Things happen mostly when the types
do not inherit directly from abstract types or interfaces (as
changing ops will then result in compilation errors).  This,
I think, can be termed The First Bad Thing.

Bad things also happen, more generally, whenever some programming
error would be prevented simply by adding indicators of suitable
sorts that would explain the programmer's intention.  But shouldn't
this kind of information be covered by "normal" language instead?

Or, for an alternative, one might imagine adding a "smart indicator
pragma"

  pragma Fuzzy_Homographs (Threshold => 0.9);

This, then, will prevent frequently quoted errors such as

  Initialse(...) vs Initialize(...).

*Without* restricting the compiler's assistance to just tagged
types!

This, from my point of view, might equip the language with
better means of addressing the real issue, which seems to
be one of naming.






  reply	other threads:[~2011-07-07 13:18 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-05  3:14 Derived private interface Rego, P.
2011-07-05  5:10 ` AdaMagica
2011-07-06  2:24   ` Rego, P.
2011-07-06  4:34   ` AdaMagica
2011-07-06  7:55     ` Georg Bauhaus
2011-07-06  8:30       ` AdaMagica
2011-07-06 12:59         ` Georg Bauhaus
2011-07-06 13:23           ` AdaMagica
2011-07-06 19:06             ` Randy Brukardt
2011-07-06 13:28           ` Simon Wright
2011-07-06 19:45           ` Randy Brukardt
2011-07-06 22:05             ` Georg Bauhaus
2011-07-06 23:56               ` Adam Beneschan
2011-07-07 14:09                 ` Georg Bauhaus
2011-07-07 15:10                   ` Adam Beneschan
2011-07-08  4:29                     ` AdaMagica
2011-07-08 19:08                       ` Randy Brukardt
2011-07-08 19:12                     ` Randy Brukardt
2011-07-07 15:19                   ` Georg Bauhaus
2011-07-07 10:37         ` Stephen Leake
2011-07-07 13:18           ` Georg Bauhaus [this message]
2011-07-08 19:23             ` Randy Brukardt
2011-07-08 21:41               ` Jeffrey Carter
2011-07-09  6:14                 ` Dmitry A. Kazakov
2011-07-22 22:59                 ` Randy Brukardt
2011-07-23  7:30                   ` Jeffrey Carter
2011-07-23  9:29                     ` Maciej Sobczak
2011-07-23 10:07                     ` Dmitry A. Kazakov
2011-07-26 21:04                     ` Randy Brukardt
2011-07-26 23:43                       ` Jeffrey Carter
2011-07-27 23:56                         ` Randy Brukardt
2011-07-28  0:18                           ` Jeffrey Carter
2011-07-28 10:06                         ` Maciej Sobczak
2011-07-28 23:24                           ` Randy Brukardt
2011-07-29  6:45                             ` Simon Wright
2011-07-30  0:04                               ` Randy Brukardt
2011-07-30  6:32                                 ` Simon Wright
2011-08-01  9:30                                   ` Alex R. Mosteo
2011-08-01 10:12                                     ` Dmitry A. Kazakov
2011-08-01 21:56                                       ` Randy Brukardt
2011-08-02 10:03                                         ` Dmitry A. Kazakov
2011-08-02 21:16                                           ` Randy Brukardt
2011-08-03  9:01                                             ` Dmitry A. Kazakov
2011-08-03 20:16                                               ` Randy Brukardt
2011-08-04  8:15                                                 ` Dmitry A. Kazakov
2011-08-09 21:10                             ` Maciej Sobczak
2011-08-09 21:35                               ` Randy Brukardt
2011-08-10  9:11                                 ` Dmitry A. Kazakov
2011-08-10 21:56                                   ` Randy Brukardt
2011-08-11  8:07                                     ` Dmitry A. Kazakov
2011-08-12  4:52                                       ` Randy Brukardt
2011-08-12  8:54                                         ` Dmitry A. Kazakov
2011-08-10 10:07                                 ` Maciej Sobczak
2011-08-10 11:26                                   ` Georg Bauhaus
2011-08-10 22:27                                     ` Randy Brukardt
2011-08-10 22:21                                   ` Randy Brukardt
2011-08-11 13:50                                     ` Maciej Sobczak
2011-08-12  4:43                                       ` Randy Brukardt
2011-08-12  7:00                                         ` Maciej Sobczak
2011-08-12 21:59                                           ` Randy Brukardt
2011-07-06 15:06       ` Adam Beneschan
2011-07-06 16:36       ` Dmitry A. Kazakov
2011-07-06 19:20       ` Randy Brukardt
replies disabled

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