comp.lang.ada
 help / color / mirror / Atom feed
From: "James A. Squire" <m193884@CSEHP3.MDC.COM>
Subject: Re: Subprogram Renaming
Date: 1996/04/10
Date: 1996-04-10T00:00:00+00:00	[thread overview]
Message-ID: <316C1474.4B03@csehp3.mdc.com> (raw)
In-Reply-To: md5:88A5E8822105A2023A0A951BB5EC646E

On Tue, 9 Apr 1996 10:22:47, Gary McKee <gmckee@CLOUDNINE.COM> wrote:

> The rationale given when this change was submitted to the requirements team
> was as follows:
>
> The avowed purpose of a package specification is to offer a 'contract' for
> delivery of software services as implemented by the package body. When a
> subprogram is implemented via a renaming of another subprogram (procedure j
> renames k;), the 'contract' is compromised because the implementation must
> be placed in the specification. This is contrary to the paradigms of
> 'modularity, abstraction, and information hiding'.

OK.  I can see in some cases where this 'contract' is actually useful.
Of course, the only implementation that is being put into the spec is
the actual name and location of the implementation.  Every thing else is
interface details which are supposed to be public.  Frankly, I've seen
worse cases than subprogram specs as far as breaking modularity,
abstraction, and information hiding, which are allowed by both Ada83 and
Ada95, such as defining a variable (already a no-no in my book) by
renaming a function call.

What I see is that if you rename a subprogram from another package in
your package spec, then you have to with in the other package in the
spec, which means that potentially the other package spec can have an
affect on the user of your package, which you may not want.

Of course, if you really don't want the user to pay any attention to the
other package, you should make the other package a private child of your
package, at which point Ada95 requires you to rename your public
subprogram as the body of a subprogram in that private child.
--
James Squire
MDA Avionics Tools & Processes
ja_squire@csehp3.mdc.com
"one of these days I'm going to better myself by going to Knight school"
"You'll be a web knight instead of a web page!"




       reply	other threads:[~1996-04-10  0:00 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <md5:88A5E8822105A2023A0A951BB5EC646E>
1996-04-10  0:00 ` James A. Squire [this message]
     [not found] <md5:3CC2294B6049DDBD8790280EABCEDE81>
1996-04-12  0:00 ` Subprogram Renaming James A. Squire
     [not found] <md5:87494FB95037B9578F62831DE10B6BB3>
1996-04-10  0:00 ` James A. Squire
     [not found] <md5:95D854EBD1A47E0E86027A3CC7DBD9A4>
1996-04-10  0:00 ` johndoe
1996-04-10  0:00 ` James A. Squire
1996-04-10  0:00   ` Robert Dewar
1996-04-11  0:00     ` Jonas Nygren
1996-04-11  0:00       ` Robert Dewar
1996-04-12  0:00         ` Jonas Nygren
1996-04-10  0:00   ` Robert A Duff
1996-04-11  0:00     ` Adam Beneschan
1996-04-11  0:00       ` Robert A Duff
1996-04-11  0:00       ` Robert Dewar
     [not found] <md5:FE4AB546A8392541EDC1E3FE12E3D8AF>
1996-04-09  0:00 ` James A. Squire
1996-04-09  0:00   ` Robert Dewar
1996-04-10  0:00   ` Robert A Duff
1996-04-11  0:00   ` Mark A Biggar
1996-04-10  0:00 ` johndoe
1996-04-10  0:00   ` Norman H. Cohen
1996-04-11  0:00     ` Norman H. Cohen
1996-04-12  0:00       ` Jonas Nygren
1996-04-12  0:00         ` Norman H. Cohen
1996-04-13  0:00           ` Robert A Duff
1996-04-15  0:00             ` Norman H. Cohen
     [not found] <md5:046A59600C3FEFC327385C3E914D6997>
1996-04-08  0:00 ` James A. Squire
1996-04-08  0:00   ` Robert Dewar
1996-04-09  0:00     ` Gary McKee
1996-04-09  0:00   ` Robert A Duff
     [not found] <md5:C24D8C2EE138D9627FB8B93E2E35D9F3>
1996-04-05  0:00 ` James A. Squire
1996-04-06  0:00   ` Robert Dewar
replies disabled

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