comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <rm.tsoh.plus-bug.bauhaus@maps.futureapps.de>
Subject: Re: The A-Z of Programming Languages: Ada, interview with S. Tucker Taft
Date: Fri, 06 Jun 2008 19:57:26 +0200
Date: 2008-06-06T19:57:27+02:00	[thread overview]
Message-ID: <48497a87$0$6609$9b4e6d93@newsspool2.arcor-online.net> (raw)
In-Reply-To: <o4650puv7tb0$.1rlwmqcw9yoc.dlg@40tude.net>

Dmitry A. Kazakov wrote:
> On Thu, 05 Jun 2008 21:40:55 +0200, Georg Bauhaus wrote:
> 
>> "A massive increase in complexity will result from 9X adding one or more
>> additional possibilities where Ada now offers two. For example, 9X adds:
>> [...] access parameters, to IN, OUT, and IN OUT; tagged types, to normal
>> types; dispatched subprogram calls, to normal subprogram calls; use type
>> clause, to use package clauses; ... With 9X, the number of interactions
>> to consider is close to 60,000 since we have 3 or more possibilities in
>> each case (that is, 3^10)."    (OOSC2, �33.7, p.1095)
> 
> I cannot decode this, so let it be...

That I don't believe.


>> The comment "adds: tagged types, to normal types" is particularly
>> interesting, I think, because it touches on a consequence of
>> this distinction:  sloppy versus exact base type systems:
> 
> In which sense "sloppy/exact"?

Sloppy/exact in the sense of mapping the set of problem or solution
values to a set of type values 1:1, bijectively.

When all you have is int, INTEGER, Int, etc. but your set of
whole numbers has bounds strictly inside (min machine-int,
max machine-int), say, then one type system allows you to exactly
give the lowest and highest whole number that your (sub)type is to
have.  Another type system, namely that of Qi, even permits
computing a set of values using a Turing complete type declaration
language. So "only odd natural numbers" will be a perfectly normal
Qi type. A type definition that basically must use "int", but
the set of values is between 0 and 1_000_000, is sloppy in that
it does not express the set, neither to the reader nor to the
compiler.
  You might recall the report that an embedded systems teacher
from a US university has summarized here. A base type system
that is a more exact representation of the solution sets does
help in programming.

>>   Ada, as mentioned by Ichbiah, has "normal" types for defining
>> integers, reals, etc., and tagged types for defining polymorphic types.
> 
> Tagged types aren't polymorphic. Only their classes (closures of) are.

Yes, and you define tagged types in order to get classwide
polymorphic types.  There are no class-wide types rooted at
some non-tagged type. There is a universal type. This, I think,
reflects the tagged vs normal distinction Ichbiah is listing.


>> You want integers between 0 and 10_000 only? Define a corresponding
>> normal type, or do "normal" derivation from another integer type
>> adding the needed constraint.
>> (Part of the language since Ada 83 as pointed out by J.-P. Rosen above.)
> 
> Well, I understand this complain. Actually, there is no semantic difference
> between:
> 
>    subtype S is T ...;  -- "Normal" derivation

No, that is not meant by "normal" derivation; rather

     type S is new T;  -- Semicolon, no "with"


> Clearly, all of them should have same syntax.

Yes, I speculate that this is what Ichbiah might have liked,
and why he list "9X adds: tagged types, to normal types; "

> Clearly interfaces are
> superfluous when abstract types could do anything they do and more.
> Further, interfaces are damaging to software design. One is forced
> permanently factor out interfaces out of types instead of trivial interface
> inheritance from concrete types.

Trivial?


>> So maybe there is good reason to have both normal types, and tagged
>> types, even if this complicates the language?
> 
> No, there is no substantial difference between two mechanisms, once one has
> separated polymorphic (class) and specific (type) as Ada 95 did, all types
> become "normal." Abnormal are classes, which you aren't forced to use as
> they are completely orthogonal to "normal" types.

Whatever the mechanisms are, two mechanisms are never even close to
"the same"  if the programmer has to learn a great deal in order to
see how they are substantially the same.




  reply	other threads:[~2008-06-06 17:57 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-04 10:52 The A-Z of Programming Languages: Ada, interview with S. Tucker Taft Ludovic Brenta
2008-06-04 14:14 ` Georg Bauhaus
2008-06-04 14:59   ` Ludovic Brenta
2008-06-05  2:01     ` Marc A. Criley
2008-06-05 13:58       ` Georg Bauhaus
2008-06-05 14:13         ` Jean-Pierre Rosen
2008-06-05 19:40           ` Georg Bauhaus
2008-06-05 20:46             ` Dmitry A. Kazakov
2008-06-06 17:57               ` Georg Bauhaus [this message]
2008-06-06 19:34                 ` Dmitry A. Kazakov
2008-06-05 15:00         ` Ed Falis
2008-06-12  1:57           ` Randy Brukardt
2008-06-12  7:25             ` christoph.grein
2008-06-06 14:09 ` Ludovic Brenta
replies disabled

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