comp.lang.ada
 help / color / mirror / Atom feed
From: blakemor@software.org (Alex Blakemore)
Subject: Re: if UNIX then USE_C ?? (was: Reasons for drop)
Date: 28 Feb 90 01:19:42 GMT	[thread overview]
Message-ID: <598@software.software.org> (raw)
In-Reply-To: 184@trwacs.UUCP

In article <184@trwacs.UUCP> epstein@trwacs.UUCP (Jeremy Epstein) writes:
> ... look at how Ada overloads symbols.  For
> example, parentheses are used for parameters as well as subscripts
> (that's something that totally confuses me as an old-time C programmer).

This is a strength of Ada not an inconsistency.  This way you can change
between using an array and a function to provide some info - for example
the text sin(x) refers to some real value.  sin could be a constant
array or a function (a time/space tradeoff) - only the providing package
need know.  You can change your mind in one place and need only recompile.
Provided you avoid named parameter association in this case.

This is consistent with some formal proof methods (like Tony Hoare's)
which treat array references as function calls. Logically they
have the same effect.  Mathematically a function is essentially a table
anyway.  Of course, there is a difference when you assign to an array
element.

The same syntactic overloading lets you reference a constant, variable
or parameterless function using the exact same syntax.  One safe way
to have read only global variables is to define a visible (spec level)
function that returns the current value, but hide the variable inside
the package body - so only trusted operations can update it. Again, 
why should the code making the reference need to know how it is resolved-
that is between the owning package and the compiler?

C has some elegance but why should the programmer have to remember
when to use [] or () ?  just to make the compiler easier to write ?

--
-------------------------------------------------------------------------
Alex Blakemore             blakemore@software.org          (703) 742-7125
Software Productivity Consortium   2214 Rock Hill Road Herndon, VA  22070
------------------------   Eschew Obfuscation !!! -----------------------

  reply	other threads:[~1990-02-28  1:19 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1990-02-20 16:13 Reasons for dropping Ada Ted Holden
1990-02-20 21:04 ` Richard S D'Ippolito
1990-02-20 23:03   ` Reasons for keeping Ada David Kassover
1990-02-21  0:40     ` Clement Pellerin
1990-02-21 19:02   ` Reasons for dropping Ada Loren Louis Hart
1990-02-22 16:07     ` Mike Coffin
1990-02-22 17:01       ` if UNIX then USE_C ?? (was: Reasons for drop) Dennis M. O'Connor
1990-02-22 21:51         ` Barry Margolin
1990-02-23 19:34           ` Loren Louis Hart
1990-02-25 19:58           ` David Kassover
1990-02-26 12:45             ` John F Nixon
1990-02-26 18:28               ` David Kassover
1990-02-26 20:55                 ` John F Nixon
1990-02-26 22:00                   ` David Kassover
1990-02-27 18:55                 ` Jeremy Epstein
1990-02-28  1:19                   ` Alex Blakemore [this message]
1990-02-28 18:56                     ` Ada functions versus arrays (i.e. () vs [] ) Richard A Hammond
1990-03-01  3:25                       ` Alex Blakemore
1990-03-01 13:11                         ` Robert Firth
1990-03-02 10:56                           ` Mike Harrison
1990-03-02 23:46                           ` Scott Simpson
1990-03-02 10:42                         ` Mike Harrison
1990-03-06 19:13                       ` Erland Sommarskog
1990-03-08 14:21                         ` John Goodenough
1990-03-14 18:19                     ` if UNIX then USE_C ?? (was: Reasons for drop) RCAPENER
1990-03-01  0:29                   ` David Kassover
1990-03-01 15:11                     ` Steve Tynor
1990-03-01 18:29                       ` David Kassover
1990-03-02  0:19                 ` Robert D. Houk
1990-02-28 19:51         ` Andy DeFaria
1990-02-20 22:21 ` Reasons for dropping Ada Jeffrey M. Schweiger
replies disabled

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