comp.lang.ada
 help / color / mirror / Atom feed
* Re: Where have all the Architects gone?
       [not found]                                       ` <a82fmf$cdn$1@slb6.atl.mindspring.net>
@ 2002-03-29 22:02                                         ` Richard Riehle
  0 siblings, 0 replies; only message in thread
From: Richard Riehle @ 2002-03-29 22:02 UTC (permalink / raw)


Michael Feathers wrote:

> "Richard Riehle" <richard@adaworks.com> wrote
> > If compile-time checking were restricted to ensurring the
> > conformance static types, it would be of minimal value.
> > When adding to that static type checking other kinds of
> > compile-time checks,  it becomes more useful and more
> > robust.
>
> Richard, what are the other checks that you are talking about?

I will give just one out of many other examples.

Ada allows something we call access to subprogram as well
as access to declared object.     In other languages this is also
permitted using something called pointers.    With Ada, such
accesses are under strict rules that prevent dangling references,
references that might be out of scope, etc.    Although this is
closely-coupled with the type system, it is slightly beyond
the type system.

Let me give another, one of my favorites because it is the source
of more frustration for programmers new to to Ada than any
other thing:   strict separation of scope and visibility.   In Ada,
no entity is directly visible even when it is in scope.   I realize
some other languages support a modest level of checking on
this, but Ada takes it to what some regard as an absurd extreme.

That extreme has helped me avoid some really stupid errors over
the years.

Another example is something called named association.   When
making subprogram (function and procedure) calls,   creating
instances of generic templates, or declaring constrained objects
from unconstrained types,  one may name the formal parameter
and explicitly associate it with the actual parameter.   This makes
for really good documentation of delivered source code.   It is
especially useful when on has a routine in which some of the
parameters have default values.

I could give dozens of examples.   They almost all have something
to do with the type system, but extend well beyond what one would
think of as simple type checking.

Richard Riehle




^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-03-29 22:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <aHRl8.72963$702.20111@sccrnsc02>
     [not found] ` <y5Sl8.19005$IN3.5617999@kent.svc.tds.net>
     [not found]   ` <GzUl8.79686$q2.9316@sccrnsc01>
     [not found]     ` <a79jhg$1pj5$1@purple.gradwell.net>
     [not found]       ` <B8BDEB47.6C99%erniev@javachief.com>
     [not found]         ` <zI3m8.78801$702.20037@sccrnsc02>
     [not found]           ` <B8BE3E9D.6E01%erniev@javachief.com>
     [not found]             ` <3C99C7CF.8E019311@gperkins.co.uk>
     [not found]               ` <B8BF361A.7223%erniev@javachief.com>
     [not found]                 ` <3C99E364.D166CB69@acm.org>
     [not found]                   ` <B8BF5F9C.72D6%erniev@javachief.com>
     [not found]                     ` <rocq9u0fi1edmiqdu2uf712moffrpuoqr1@4ax.com>
     [not found]                       ` <DAcn8.101978$af7.56038@rwcrnsc53>
     [not found]                         ` <tqhu9uslpn1sadistj3s25m9sspo333jsh@4ax.com>
     [not found]                           ` <CIWn8.122412$702.24505@sccrnsc02>
     [not found]                             ` <3CA0A830.B2B55FDF@adaworks.com>
     [not found]                               ` <a81u8n$soj$1@slb6.atl.mindspring.net>
     [not found]                                 ` <alwyn-08DE4F.15024529032002@news-text.blueyonder.co.uk>
     [not found]                                   ` <a8228k$tvv$1@nntp9.atl.mindspring.net>
     [not found]                                     ` <3CA4C0D5.D3696B3C@adaworks.com>
     [not found]                                       ` <a82fmf$cdn$1@slb6.atl.mindspring.net>
2002-03-29 22:02                                         ` Where have all the Architects gone? Richard Riehle

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