comp.lang.ada
 help / color / mirror / Atom feed
From: M E Leypold <development-2006-8ecbb5cc8aREMOVETHIS@ANDTHATm-e-leypold.de>
Subject: Re: gcc/gnat 4.1.1 bug
Date: 28 Jun 2006 04:15:50 +0200
Date: 2006-06-28T04:15:50+02:00	[thread overview]
Message-ID: <ub4py6ja95.fsf@hod.lan.m-e-leypold.de> (raw)
In-Reply-To: 1151454134.115902.319310@y41g2000cwy.googlegroups.com


"Adam Beneschan" <adam@irvine.com> writes:
> 
> However, it's not feasible to expect the language designers to handle
> every little case and combination of cases and combination of
> combinations of cases so that things do what you expect, all the time.

Yep. As I see it, that is - finally - the price one just has to pay
for the rather complex subtyping Ada provides.

> Any change to the definition of "staticness" is going to have a
> potential impact on approximately 6.023*(10**23) other places in the
> RM, and all of them would need to studied before any change can be
> made.  And believe me, the amount of work the language designers
> already do is incredible, as it is.

I believe that very well. I've been learning Ada mostly from Barnes
"Programming in Ada 95" and there has been many a time when I read and
thought "Wow, there is a language that finally does it right" or "I'd
never have been able to design this language". Even if it is probably
an overestimation of one's own capabilities, Pascal, Modula, C and
others just look like languages that one could have designed oneself
with a bit of work and patience. Not the details of their modern
incarnations, but the general outline.  After all, they were designed
in principle by single persons. But with Ada: Never. Where those other
languages are just either nicely architected houses or grown villages,
Ada is a cathedral. Beautiful, mathematical and complete.

Did i alread mention that I find the ARM quite readable? Have you ever
tried to read one of the C standards?


> > > (In Ada 95, MDI is not allowed to be null; in Ada 2005, it is.  Perhaps
> >                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> > Why that?
> 
> Anonymous access types were added in Ada 95, and the only places they

Yes of course. Me stupid, I see now. :-).

> were allowed were in subprogram parameters and discriminants.  In both
> cases, they were added for a specific purpose for which named access
> types were unsuitable, and null values didn't need to be handled for
> those purposes.  For Ada 2005, anonymous access types were further
> generalized and allowed in more places,
> and it was decided it would be a good idea to allow null values; the
> best solution involved changing the definition of access parameters so
> that null values were allowed by default.  If you're interested in more

Yes, it's probably better like that. All that non allowing null here
and there but elsewhere didn't keep me from shooting myself into my
own foot in Ada 95, but only made me defining more named access types.

But probably I'm misusing the language in a number of areas anyway.

> details, check out
> http://www.ada-auth.org/cgi-bin/cvsweb.cgi/AIs/AI-00231.TXT .

I will. I already skimmed Barnes excellent introduction into the new
features of Ada 2005 some time ago and it was a delight.

Regards -- Markus




      reply	other threads:[~2006-06-28  2:15 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-26 18:50 gcc/gnat 4.1.1 bug M E Leypold
2006-06-26 18:51 ` Request: Could anybody knowing more about the Ada type system M E Leypold
2006-06-27 20:47   ` Jeffrey R. Carter
2006-06-27 23:25     ` M E Leypold
2006-06-28  2:33       ` Jeffrey R. Carter
2006-06-28  2:52         ` M E Leypold
2006-06-28  2:53           ` M E Leypold
2006-06-28 20:06             ` Ludovic Brenta
2006-06-28 22:38               ` M E Leypold
2006-06-27 20:21 ` gcc/gnat 4.1.1 bug Adam Beneschan
2006-06-27 22:30   ` Ludovic Brenta
2006-06-27 23:45   ` M E Leypold
2006-06-28  0:22     ` Adam Beneschan
2006-06-28  2:15       ` M E Leypold [this message]
replies disabled

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