comp.lang.ada
 help / color / mirror / Atom feed
From: nospam@thanks.com.au (Don Harrison)
Subject: Re: Design By Contract
Date: 1997/09/03
Date: 1997-09-03T00:00:00+00:00	[thread overview]
Message-ID: <EFx7tn.7v9@syd.csa.com.au> (raw)
In-Reply-To: JSA.97Sep2182406@alexandria.organon.com



Jon S Anthony wrote:

:In article <EFuuJK.GKu@syd.csa.com.au> nospam@thanks.com.au (Don Harrison) writes:

[..]

:> However, the good thing about Eiffel is that it gives designers the
:> flexibility of exposing as much or as little of an object's
:> structure, in contrast with with Ada's you-see-it-all or
:> you-see-nothing export policy.

I realised after writing this that you can export as much or as little as you
like in Ada. In terms of individual attributes, you can do this by supplying 
a function if you want to export an attribute and by not supplying one if you 
want to hide one.

:Second, you can play the same game in Ada anyway:

Agree.

:package P is
:
:    type T is limited private;
:
:    type S1 is tagged record
:        ...
:    end record;
:
:    type S2 is ... end record;
:
:    type Whatever is private;
:
:    function Op1 (X : T) return S1; -- Expose S1 substructure
:
:    function Op2 (X : T) return S2; -- Expose S2 substructure
:
:    function Op3 (X : T) return Whatever; -- Don't expose this bit
:
:....
:private
:....
:end P;

Presumably, T here is composed of S1 and S2 among other things.
I agree it gives similar functionality to Eiffel.

:Also, even here, you it is possible to get at the remaining hidden
:structure if it is in the private portion with child packages.  

Agree.

BTW, I've just re-read the stuff on child packages (public and private) 
in the Ada95 Rationale. It's making more sense and I can see a couple of
places in our recently completed simulation where private child packages 
would have been useful. They would have been handy for decomposing a couple 
of large abstractions into components while not exposing the internal 
interfaces to outsiders.

I still prefer the Eiffel mechanisms for a couple reasons:

  a) Simpler
  b) Views may be directed to specific clients

but it does seem to hold together pretty well. Also, it appears you can 
acheive comparable export granualarity in Ada and Eiffel.


Don.                     (Reverse to reply)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Don Harrison             au.com.csa.syd@donh






  reply	other threads:[~1997-09-03  0:00 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-08-21  0:00 Critique of Ariane 5 paper (finally!) aek
     [not found] ` <33FC66AD.9A0799D4@calfp.co.uk>
1997-08-22  0:00   ` Robert S. White
1997-08-22  0:00     ` Samuel Mize
1997-08-22  0:00       ` Samuel Mize
1997-08-23  0:00     ` Ken Garlington
     [not found]   ` <33FFA4B1.3543@flash.net>
1997-08-26  0:00     ` Nick Leaton
     [not found]       ` <3403940F.4154@pseserv3.fw.hac.com>
1997-08-27  0:00         ` Design By Contract Ted Velkoff
     [not found]           ` <5u3c6v$gtf$2@miranda.gmrc.gecm.com>
     [not found]             ` <34058808.3BF@pseserv3.fw.hac.com>
1997-08-28  0:00               ` Darren New
1997-08-28  0:00             ` Patrick Doyle
1997-09-06  0:00               ` Joachim Durchholz
1997-09-06  0:00                 ` Patrick Doyle
     [not found]           ` <JSA.97Aug27180328@alexandria.organon.com>
1997-08-28  0:00             ` W. Wesley Groleau x4923
1997-09-03  0:00             ` Don Harrison
1997-09-03  0:00               ` Jon S Anthony
1997-09-04  0:00                 ` Don Harrison
     [not found]         ` <EFM140.Fy9@syd.csa.com.au>
1997-08-28  0:00           ` Jon S Anthony
1997-08-29  0:00             ` Don Harrison
1997-08-29  0:00               ` Jon S Anthony
     [not found]                 ` <EFqE8L.4Eq@ecf.toronto.edu>
     [not found]                   ` <JSA.97Aug30145058@alexandria.organon.com>
1997-09-01  0:00                     ` Patrick Doyle
1997-09-02  0:00                 ` Don Harrison
1997-09-02  0:00                   ` Joerg Rodemann
1997-09-02  0:00                     ` Jon S Anthony
1997-09-02  0:00                   ` Jon S Anthony
1997-09-03  0:00                     ` Don Harrison [this message]
     [not found]                     ` <JSA.97Sep3201329@alexandria.organon.com>
     [not found]                       ` <EFzLn7.481@ecf.toronto.edu>
1997-09-04  0:00                         ` Jon S Anthony
1997-09-04  0:00                       ` Paul Johnson
1997-09-05  0:00                         ` Jon S Anthony
     [not found]                         ` <5un58u$9ih$1@gonzo.sun3.iaf.nl>
1997-09-06  0:00                           ` Building blocks (Was: Design By Contract) Joachim Durchholz
1997-09-08  0:00                           ` Paul Johnson
1997-09-08  0:00                             ` Brian Rogoff
1997-09-09  0:00                               ` Veli-Pekka Nousiainen
1997-09-09  0:00                                 ` Jon S Anthony
1997-09-09  0:00                               ` Veli-Pekka Nousiainen
1997-09-09  0:00                               ` Matthew Heaney
1997-09-09  0:00                                 ` W. Wesley Groleau x4923
1997-09-10  0:00                                   ` Robert A Duff
1997-09-12  0:00                                     ` Jon S Anthony
1997-09-09  0:00                                 ` Brian Rogoff
1997-09-10  0:00                                 ` Robert Dewar
1997-09-12  0:00                                   ` Paul Johnson
1997-09-14  0:00                                     ` Robert Dewar
1997-09-15  0:00                                       ` John G. Volan
1997-09-14  0:00                                     ` Robert Dewar
1997-09-14  0:00                                     ` Robert Dewar
1997-09-12  0:00                                   ` Jon S Anthony
1997-09-12  0:00                                     ` Robert Dewar
1997-09-16  0:00                                       ` Brian Rogoff
1997-09-10  0:00                                 ` Paul Johnson
1997-09-10  0:00                                   ` Darren New
1997-09-10  0:00                                   ` Matthew Heaney
1997-09-09  0:00                               ` W. Wesley Groleau x4923
1997-09-08  0:00                         ` Design By Contract Nick Leaton
1997-09-08  0:00                           ` Matthew Heaney
1997-09-09  0:00                           ` Paul Johnson
     [not found]                       ` <EFz0pD.E6n@syd.csa.com.au>
1997-09-05  0:00                         ` W. Wesley Groleau x4923
1997-09-05  0:00                         ` subjectivity W. Wesley Groleau x4923
1997-09-05  0:00                           ` subjectivity Matthew Heaney
1997-09-10  0:00                             ` subjectivity Don Harrison
1997-09-12  0:00                               ` subjectivity Jon S Anthony
1997-09-16  0:00                                 ` subjectivity Don Harrison
1997-09-16  0:00                                   ` subjectivity Jon S Anthony
1997-09-10  0:00                           ` subjectivity Don Harrison
1997-09-10  0:00                             ` subjectivity W. Wesley Groleau x4923
1997-09-11  0:00                               ` subjectivity Don Harrison
1997-09-10  0:00                             ` subjectivity W. Wesley Groleau x4923
     [not found]                         ` <JSA.97Sep4172912@alexandria.organon.com>
     [not found]                           ` <EG0oz8.F6M@syd.csa.com.au>
1997-09-05  0:00                             ` Design By Contract Jon S Anthony
1997-09-05  0:00                               ` Nick Leaton
1997-09-08  0:00                                 ` Jon S Anthony
1997-09-09  0:00                                   ` Nick Leaton
1997-09-10  0:00                                     ` Paul Johnson
1997-09-06  0:00                               ` Patrick Doyle
     [not found]                             ` <EG0rp7.GtL@syd.csa.com.au>
1997-09-05  0:00                               ` Matthew Heaney
1997-09-09  0:00                           ` Robert A Duff
1997-09-09  0:00                             ` Matthew Heaney
1997-08-29  0:00             ` Patrick Doyle
1997-08-29  0:00               ` Jon S Anthony
     [not found]                 ` <EFqDw0.3x7@ecf.toronto.edu>
     [not found]                   ` <JSA.97Aug30145354@alexandria.organon.com>
1997-09-01  0:00                     ` Patrick Doyle
1997-08-28  0:00           ` Robert Dewar
1997-08-29  0:00             ` Don Harrison
     [not found]         ` <349224633wnr@eiffel.demon.co.uk>
1997-08-27  0:00           ` Design by Contract Robert Dewar
1997-08-29  0:00           ` Don Harrison
     [not found]       ` <3406BEF7.2FC3@flash.net>
     [not found]         ` <3406E0F7.6FF7ED99@calfp.co.uk>
1997-09-02  0:00           ` Critique of Ariane 5 paper (finally!) Ken Garlington
     [not found] <5u1627$1fak@info4.rus.uni-stuttgart.de>
     [not found] ` <EFM1Lx.GD2@syd.csa.com.au>
1997-08-28  0:00   ` Design by Contract Robert Dewar
  -- strict thread matches above, loose matches on Subject: below --
1997-08-07  0:00 Safety-critical development in Ada and Eiffel Ken Garlington
1997-08-12  0:00 ` Don Harrison
1997-08-12  0:00   ` Jon S Anthony
1997-08-13  0:00     ` Ted Velkoff
1997-08-13  0:00       ` Ken Garlington
1997-08-14  0:00         ` Nick Leaton
1997-08-18  0:00           ` Joachim Durchholz
1997-08-19  0:00             ` Ken Garlington
1997-08-21  0:00               ` Joachim Durchholz
1997-08-23  0:00                 ` Ken Garlington
     [not found]                   ` <JSA.97Aug25181856@alexandria.organon.com>
     [not found]                     ` <34023A1F.41C67EA6@eiffel.com>
1997-08-25  0:00                       ` Design by Contract Bertrand Meyer
1997-08-25  0:00                       ` Bertrand Meyer
     [not found]                         ` <3402d123.0@news.uni-ulm.de>
1997-08-26  0:00                           ` Nick Leaton
     [not found]                             ` <3402e51d.0@news.uni-ulm.de>
     [not found]                               ` <3402E8C9.3384D976@calfp.co.uk>
     [not found]                                 ` <dewar.872631036@merv>
1997-08-27  0:00                                   ` Matt Kennel (Remove 'NOSPAM' to reply)
1997-08-27  0:00                                   ` Ted Velkoff
     [not found]                                   ` <34050F3C.5A3A@invest.amp.com.au>
1997-08-28  0:00                                     ` Robert Dewar
1997-08-29  0:00                                       ` Paul Johnson
1997-08-31  0:00                                         ` Matt Kennel (Remove 'NOSPAM' to reply)
1997-09-01  0:00                                           ` John F. Bell III
1997-09-02  0:00                                             ` Ken Garlington
1997-09-05  0:00                                               ` Robert Dewar
     [not found]                                         ` <dewar.872887402@merv>
1997-09-02  0:00                                           ` Ken Garlington
1997-09-03  0:00                                             ` Thomas Beale
     [not found]                                               ` <EFxx8q.2sw@ecf.toronto.edu>
1997-09-04  0:00                                                 ` Thomas Beale
1997-09-05  0:00                                             ` Robert Dewar
1997-09-05  0:00                                               ` Ken Garlington
     [not found]                             ` <340306E1.5FB64D70@XYZZYcalfp.com>
1997-08-28  0:00                               ` Mark Bennison
     [not found]                         ` <bengtk-2708972209500001@sl35.modempool.kth.se>
1997-08-28  0:00                           ` Nick Leaton
1997-08-25  0:00                       ` Bertrand Meyer
1997-08-25  0:00                         ` Steve Stringfellow
1997-08-26  0:00                         ` Don Harrison
1997-08-25  0:00                       ` Bertrand Meyer
     [not found]                         ` <JSA.97Aug26151833@alexandria.organon.com>
1997-08-27  0:00                           ` Patrick Doyle
replies disabled

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