comp.lang.ada
 help / color / mirror / Atom feed
From: stt@henning.camb.inmet.com (Tucker Taft)
Subject: Re: HELP-Information hiding/Abstraction (explain difference please)
Date: Wed, 8 Mar 1995 11:38:29 GMT
Date: 1995-03-08T11:38:29+00:00	[thread overview]
Message-ID: <D54Do6.JFr@inmet.camb.inmet.com> (raw)
In-Reply-To: j_green-070395115500@merlin.clh.icnet.uk

Jacky (j_green@icrf.icnet.uk) wrote:

: Could someone please explain the difference between
: information hiding and data abstraction - Is there one?

Information hiding is a more general and somewhat lower level
concept than data abstraction.
Most abstraction (data abstraction, procedural abstraction) uses
information hiding to force the client to use the abstraction.
Similarly, "modularity" uses information hiding to ensure that
interdependences between modules are minimized.

Abstraction is designed to raise the "level" of discourse, so
that client routines can deal with data and operations at a more
appropriate application-oriented, representation-independent level.

Modularity is designed to break an application upon into manageable,
relatively independent pieces.

Information hiding is a mechanism to prevent client routines from
using certain data or operations.  However, there is no direct
implicatation that this has the effect of raising the level of
discourse.  It may simply be hiding certain "dangerous," "privileged," 
or simply "irrelevant" data or operations from the client.

: I would be grateful for any simple small pieces of code that
: help show the difference.  I have been through books etc
: and as far as I can see they are one and the same....

Information hiding serves both abstraction and modularity.
All three concepts are closely related, and in any given system,
it may be difficult to say where abstraction begins and modularity
leaves off.  

In general, "data abstraction" is associated with the definition
of user-defined data types, which are designed to represent
some higher-level application-oriented entity.

"Procedural abstraction" is associated with the definition of
functions and procedures that encapsulate some useful application-oriented
functionality.

"Modularity" is associated with breaking a large application up into
appropriately-sized modules, with limited dependence between the modules.

"Information hiding" is usually accomplished by some language feature
that allows some information to be visible only to certain modules.
What you do with this feature is up to the programmer.

: Please help!!!

Sorry I don't have time to produce a real example.

: E-mail me direct too, if poss.

Will do.

: Thanks in advance.

: J. Green



  reply	other threads:[~1995-03-08 11:38 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1995-03-07 11:53 HELP-Information hiding/Abstraction (explain difference please) Jacky
1995-03-08 11:38 ` Tucker Taft [this message]
1995-03-12  6:50 ` Samuel Mize
replies disabled

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