comp.lang.ada
 help / color / mirror / Atom feed
From: val@cs.weber.edu (Val Kartchner)
Subject: Re: Is Ada the future? [was: Is C++ the future?]
Date: 13 Oct 1994 22:01:25 GMT
Date: 1994-10-13T22:01:25+00:00	[thread overview]
Message-ID: <37kanl$jfd@u.cc.utah.edu> (raw)
In-Reply-To: 1994Oct4.090807@di.epfl.ch

In article <1994Oct4.090807@di.epfl.ch>,
Robb Nebbe <Robb.Nebbe@di.epfl.ch> wrote:
|In my opinion there are two important factors that make software
|maintainable. The ability to define an abstraction and have the
|compiler enforce this abstraction and the ability for the person
|doing the maintenance to understand the abstraction.
|
|For defining and particularly enforcing an abstraction you could
|make a fairly strong case that Ada is better than C++. The case
|wouldn't be that you can't define and enforce an abstraction in
|C++, which would be a bit naive, but that in some cases the effort
|required goes far beyond what is required in Ada.

Ada 83 is *very* strict about enforcing the abstraction.  (i.e.:
private data types are *only* accesible through the defined interface.)
As a programmer who uses Ada 83 at work daily, this is both a blessing
and a curse.  But since I wrote the package, I can just add a necessary
function to the interface.  ;-)

I have also been reading about Ada 9X.  In the booklet "Introducing Ada
9X", Section 2.7, "Hierarchical Libraries", pp 20-23 and Section 2.8,
"Private Child Units", pp. 24-26 have text and code examples which
demonstrate these secion summaries (in the report's own words):

   The important special visibility rule is that the private part (if any)
   and the body of the child have visibility of the private part of their
   parent.

   The private part and body of any child can access the private part of
   its parent (and grandparent...).

Unless there is some subtlty that I've missed in the pages of *both* text
and code, all that one has to do to get access to the private datatypes
is to declare a child package.  (Note: this doesn't include renaming of
private interfaces, but does allow the foreign child to call private
interfaces and thereby effectively rename a private interface.)

Would an Ada programmer /ever/ knowingly defeat the intent of the package
interface and do this?  No, I don't think so.  Do you?  :-S

-- 
|================= #include <stddisclaimer.h> ================/// KB7VBF/P11 =|
| "AMIGA: The computer for the creative mind" (tm) Commodore /// Weber State  |
| "Macintosh: The computer for the rest of us"(tm) Apple \\\///   University  |
|=== "I think, therefore I AMiga" -- val@cs.weber.edu ====\///= Ogden UT USA =|



  parent reply	other threads:[~1994-10-13 22:01 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-09-29 20:08 Is Ada the future? [was: Is C++ the future?] John DiCamillo
1994-09-30 13:45 ` David Weller
1994-10-01 21:40   ` John DiCamillo
1994-10-03  9:53     ` Robert I. Eachus
1994-10-03 20:41       ` John DiCamillo
1994-10-04  8:41         ` Robb Nebbe
     [not found]           ` <85C825A689A@annwfn.com>
1994-10-13 14:40             ` John Volan
1994-10-13 21:14               ` Matt Kennel
1994-10-14  0:37                 ` Robert Dewar
1994-10-14 10:16                 ` Robb Nebbe
1994-10-14 20:43                   ` Bob Duff
1994-10-13 22:01           ` Val Kartchner [this message]
1994-10-14  1:38             ` Robert Dewar
1994-10-14  9:31             ` Robb Nebbe
1994-10-14 16:16               ` Child packages [nn,pedo,incest,cons] Robert Firth
1994-10-14 17:13                 ` Robert I. Eachus
1994-10-17  8:18                   ` Robb Nebbe
1994-10-17 11:52                     ` Robert I. Eachus
1994-10-17 21:54                       ` Bob Duff
1994-10-18 10:30                       ` Child packages Robb Nebbe
1994-10-18  9:37                         ` Robert I. Eachus
1994-10-18 19:09                           ` Robert Dewar
1994-10-19 11:03                             ` Robert I. Eachus
1994-10-19 16:24                               ` Norman H. Cohen
1994-10-19 23:13                                 ` Robert Dewar
1994-10-20 14:06                                   ` Norman H. Cohen
1994-10-20 11:09                                     ` Robert I. Eachus
1994-10-20 19:02                                       ` Benjamin Ketcham
1994-10-20 17:08                                         ` Robert I. Eachus
1994-10-20 16:37                                     ` Bob Duff
1994-10-20 16:40                                       ` Bob Duff
1994-10-21 14:02                                       ` Mark Biggar, 5172
1994-10-21  8:48                                     ` Robb Nebbe
1994-10-19 18:54                               ` Robert Dewar
1994-10-20  0:27                               ` Matt Kennel
1994-10-20  8:21                                 ` Magnus Kempe
1994-10-20 13:52                                 ` John Volan
1994-10-19 16:19                             ` Norman H. Cohen
1994-10-04 14:44         ` Is Ada the future? [was: Is C++ the future?] Robert Dewar
1994-10-04 15:53           ` Richard Kenner
     [not found] ` <36h4pc$9dd@starbase.neosoft.com>
1994-09-30 20:15   ` Benjamin Ketcham
1994-10-02 16:30   ` Robin Rowe
1994-10-02 18:00     ` David Weller
1994-10-03 15:55       ` Netspeak: What is "trolling"? Norman H. Cohen
1994-10-03 17:04         ` Kenneth Aubey 913-4481
1994-10-03 21:06       ` Is Ada the future? [was: Is C++ the future?] John DiCamillo
1994-10-04  0:29         ` David Weller
1994-10-04 17:42           ` John DiCamillo
1994-10-05  8:18             ` Magnus Kempe
1994-10-05 13:49             ` Tucker Taft
     [not found]         ` <36q7m5$4ef@starbase.neosoft.com>
1994-10-04 17:55           ` Robin Rowe
1994-10-04 22:42         ` Tucker Taft
1994-10-03  9:22     ` Andrew Lees
1994-10-03 21:31       ` John DiCamillo
1994-10-04 23:29         ` John DiCamillo
1994-10-05  3:52           ` Robin Rowe
1994-10-05 13:15             ` Robert Dewar
1994-10-05 13:54           ` David Weller
     [not found]             ` <36uhnl$4c1@gnat.cs.nyu.edu>
     [not found]               ` <37dp17$gp6@goanna.cs.rmit.oz.au>
1994-10-11 13:37                 ` Robert Dewar
1994-10-19 11:24               ` Stephen J Bevan
1994-10-19 15:51                 ` Robert Dewar
1994-10-25 12:21                   ` Stephen J Bevan
1994-10-05 17:08           ` Ted Dennison
     [not found]     ` <36msgr$qq2@starbase.neosoft.com>
1994-10-04  7:21       ` Ada compared to C++ Robin Rowe
1994-10-05  6:44         ` Bob Kitzberger
1994-10-05 12:02           ` Robert Dewar
1994-10-05 18:20           ` Bob Kitzberger
1994-10-05  8:44         ` Magnus Kempe
1994-10-05 19:55           ` David Weller
     [not found]   ` <1994Oct6.133002.1@rapnet.sanders.lockheed.com>
1994-10-16  3:30     ` Mark S. Hathaway
replies disabled

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