comp.lang.ada
 help / color / mirror / Atom feed
From: dmitry@elros.cbb-automation.de (Dmitry A. Kazakov)
Subject: Re: How to avoid unreferenced objects (mutexes etc)
Date: Thu, 17 Jan 2002 15:30:50 GMT
Date: 2002-01-17T15:30:50+00:00	[thread overview]
Message-ID: <3c46e8aa.93415500@News.CIS.DFN.DE> (raw)
In-Reply-To: slrna4dbdr.kn.lutz@taranis.iks-jena.de

On Thu, 17 Jan 2002 10:55:57 +0000 (UTC), lutz@iks-jena.de (Lutz
Donnerhacke) wrote:

>* Dmitry A. Kazakov wrote:
>>* lutz@iks-jena.de (Lutz Donnerhacke) wrote:
>>>* Dmitry A. Kazakov wrote:
>>>>I believe it is worth to allow that for all types, i.e. to allow
>>>>overriding a non-abstract subroutine with an abstract one. A
>>>>dispatching call to a disallowed subprogram will then raise an
>>>>exception [like when tags of arguments are different].
>>>
>>>I strongly discourage from such a change. Class wide programming using
>>>abstract tagged types are used for the guarantee of a working interface.
>>
>>There is no way to enforce LSP, if you aim at that. Just consider an
>>overriding like:
>>
>>procedure Do_Something (...) is
>>begin
>>   raise Program_Error;
>>end Do_Something;
>
>Then the reason is on client site. Which is easy to detect.

How it differentiates from:

procedure Do_Something (..) is abstract;

The later has an additional advantage that some calls to it can be
detected at compile time.

Consider disallowing methods as an additional constraint. Any
constraint imposed by a derived type is incompatible with LSP. Should
we then dismiss the idiom of constrained subtypes?

>>And who said that derived types shall be LSP subtypes?
>
>The generic preamble requiring the correct instantiation.

You must define the word correct. If correct = absolutely
substitutable then of course LSP is required.

Regards,
Dmitry Kazakov



  reply	other threads:[~2002-01-17 15:30 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-11 13:48 How to avoid unreferenced objects (mutexes etc) Dmitry A. Kazakov
2002-01-11 13:52 ` Lutz Donnerhacke
2002-01-11 14:47 ` Robert A Duff
2002-01-11 18:02 ` Jeffrey Carter
2002-01-11 19:40 ` Robert Dewar
2002-01-12 10:18   ` Martin Dowie
2002-01-14  8:54   ` Dmitry A. Kazakov
2002-01-12  1:11 ` Nick Roberts
2002-01-12 22:04   ` Matthew Heaney
2002-01-13  5:45     ` Nick Roberts
2002-01-13  8:21       ` tmoran
2002-01-13 16:12         ` Nick Roberts
2002-01-13 15:08       ` Simon Wright
2002-01-15 17:53         ` Nick Roberts
2002-01-13 16:51       ` Jeffrey Carter
2002-01-14 23:32       ` Matthew Heaney
2002-01-15  8:53         ` Dmitry A. Kazakov
2002-01-14  8:31     ` Jean-Pierre Rosen
2002-01-14  9:42   ` Dmitry A. Kazakov
2002-01-15 15:41     ` Matthew Heaney
2002-01-15 16:18       ` Hyman Rosen
2002-01-15 16:57       ` Darren New
2002-01-15 18:57         ` Matthew Heaney
2002-01-16  0:57           ` Darren New
2002-01-16 16:35             ` Stephen Leake
2002-01-16 18:07               ` Darren New
2002-01-16 23:18                 ` Matthew Heaney
2002-01-16 23:04             ` Matthew Heaney
2002-01-17  0:21               ` Darren New
2002-01-16 15:18       ` Dmitry A. Kazakov
2002-01-15 18:59     ` Nick Roberts
2002-01-16 15:05       ` Dmitry A. Kazakov
2002-01-16 18:30         ` Matthew Heaney
2002-01-17  8:58           ` Dmitry A. Kazakov
2002-01-17  9:19             ` Lutz Donnerhacke
2002-01-17 10:42               ` Dmitry A. Kazakov
2002-01-17 10:55                 ` Lutz Donnerhacke
2002-01-17 15:30                   ` Dmitry A. Kazakov [this message]
2002-01-17 16:29                     ` Lutz Donnerhacke
2002-01-16 20:28         ` Robert A Duff
2002-01-17 19:05         ` Nick Roberts
replies disabled

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