comp.lang.ada
 help / color / mirror / Atom feed
From: "Robert I. Eachus" <eachus@mitre.org>
Subject: Re: Function Calls by Address
Date: 1999/09/14
Date: 1999-09-14T20:54:00+00:00	[thread overview]
Message-ID: <37DEB6F2.4DF91D2E@mitre.org> (raw)
In-Reply-To: 37D03AA4.D26CF868@pwfl.com

Marin David Condic wrote:
 
> I think that the use of child units contributes a lot to better overall
> code. If nothing else, it helps with configuration management and change
> control issues by better isolating where changes occur.
> 
> I never liked the "is separate" and I'm not sure I could tell you why. I
> wasn't fond of inheriting such a large context which was not immediately
> visible in the code I was editing. I didn't like the fact that recompiling
> the parent package would cause recompilation of all the separate units
> because you effectively hit their specs...
 
    But that is looking at things upside down.  One of the most powerful
uses of subunits that a subunit can have a context clause.  This allows
you to migrate some or all of the context clauses from the library unit
or body down to the subunits.  Now recompiling that package spec will
only result in needing to recompile some of the subunits, not the
library unit body and all the subunits.

    But it is the semantic view of this, ignoring recompilation times
that makes subunits so powerful.  Instead of one monolithic body with
dozens of with clauses, you have a body and subunits with only a few
withs on each.

    Finally you can use subunits to write programs that cannot be easily
written without them.  The easiest way to see this is to imagine trying
to write a tool to remove subunits from a program.  It cannot be done
textually, and even with ASIS it would be a very difficult problem.
-- 

                                        Robert I. Eachus

with Standard_Disclaimer;
use  Standard_Disclaimer;
function Message (Text: in Clever_Ideas) return Better_Ideas is...




  reply	other threads:[~1999-09-14  0:00 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-08-30  0:00 Function Calls by Address Craig Jameson
1999-08-30  0:00 ` Marin David Condic
1999-08-30  0:00   ` Robert Dewar
1999-08-30  0:00   ` Marin David Condic
1999-08-30  0:00     ` Larry Kilgallen
1999-08-30  0:00 ` Robert Dewar
1999-08-31  0:00   ` Martin Gangkofer
1999-08-30  0:00 ` Robert Dewar
1999-08-31  0:00 ` Matthew Heaney
1999-08-31  0:00 ` David Kristola
1999-09-01  0:00 ` Simon Wright
1999-09-02  0:00 ` Francois Godme
1999-09-03  0:00   ` Robert Dewar
1999-09-03  0:00     ` Francois Godme
1999-09-03  0:00       ` Robert Dewar
1999-09-03  0:00         ` Ted Dennison
1999-09-04  0:00           ` Jean-Pierre Rosen
1999-09-05  0:00             ` Ehud Lamm
1999-09-05  0:00             ` Matthew Heaney
1999-09-04  0:00         ` Brian Rogoff
1999-09-05  0:00           ` Robert Dewar
1999-09-05  0:00           ` Robert Dewar
1999-09-05  0:00           ` Robert Dewar
1999-09-03  0:00       ` Simon Wright
1999-09-03  0:00       ` David C. Hoos, Sr.
1999-09-04  0:00         ` Robert Dewar
1999-09-05  0:00           ` Francois Godme
1999-09-06  0:00             ` Robert Dewar
1999-09-06  0:00               ` Francois Godme
1999-09-06  0:00                 ` Robert Dewar
1999-09-06  0:00                 ` Robert Dewar
1999-09-06  0:00                   ` Bob Collins
1999-09-07  0:00                     ` Pascal Obry
1999-09-07  0:00                 ` Pascal Obry
1999-09-07  0:00                   ` Francois Godme
1999-09-08  0:00                   ` Francois Godme
1999-09-03  0:00       ` Marin David Condic
1999-09-14  0:00         ` Robert I. Eachus [this message]
     [not found]           ` <wcc3dwgb7ii.fsf@world.std.com>
     [not found]             ` <37E81079.CC2566D9@mitre.org>
1999-09-22  0:00               ` Robert A Duff
1999-09-22  0:00                 ` Robert I. Eachus
1999-09-23  0:00                 ` Robert Dewar
1999-09-23  0:00                   ` Robert A Duff
1999-09-04  0:00       ` Mario Klebsch
1999-09-05  0:00         ` Robert Dewar
1999-09-06  0:00           ` Francois Godme
1999-09-05  0:00             ` Brian Rogoff
1999-09-06  0:00             ` Robert Dewar
1999-09-08  0:00               ` Georg Bauhaus
1999-09-05  0:00       ` Geoff Bull
1999-09-07  0:00       ` Michael F. Yoder
replies disabled

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