From: Georg Bauhaus <bauhaus.rm.tsoh@maps.futureapps.de>
Subject: Re: Bus error
Date: Sat, 30 Jun 2007 15:14:39 +0200
Date: 2007-06-30T15:11:15+02:00 [thread overview]
Message-ID: <46865672$0$23136$9b4e6d93@newsspool1.arcor-online.net> (raw)
In-Reply-To: <tk9ak6o26vr7.15x8n04sjd359.dlg@40tude.net>
Dmitry A. Kazakov wrote:
> On Fri, 29 Jun 2007 17:44:22 +0200, Georg Bauhaus wrote:
>
>> Dmitry A. Kazakov wrote:
>>> On Fri, 29 Jun 2007 11:35:28 +0200, Duncan Sands wrote:
>>>
>>>> in Ada 95 you could do
>>>>
>>>> X : T renames Factory;
>>> Yes, you're right. It should be illegal. Semantically it is same as
>>>
>>> X : Integer renames 1; -- Illegal
>> I don't think that renaming an object is the same as renaming
>> a number literal because the literal isn't declared anywhere.
>> Wheras I could say that a returned object is declared as part
>> of the function declaration.
>
> Oh, if that is a problem then take this instead:
>
> X : Integer renames -1; -- Still illegal, though not a literal
If I had anything to contribute, my programming language
would never have elementary school writing modes built in because
this triggers these kinds of discussions.
> But clearly your argument is nonsensical, literal is a syntactic element,
> of which semantics is as much object as any of any other expression.
If the semantics of object renaming is that an object is renamed,
and a number literal is somehow not an object, I see a difference.
If we can have renamings of expressions, OK, let us have let bindings;
However, what is their 'Access?
> It
> would be a very perverse idea to try to draw a line between literals and
> non-literals.
What is a possible alternative?
> Note also that Ada's renaming has conceptually little to do
> with objects. Consider:
>
> X : T;
> X : T renames X; -- Illegal
>
> though the "object" is obviously same. Same object, same name, what was
> wrong?
A programmer construing strange assumptions about the possibility of
duplicate names in a declarative part of an Ada program, I'd say.
>>> function Very_Positive return Integer is
>>> begin
>>> return -1;
>>> end Very_Positive;
>>>
>>> Oops : Positive renames Very_Positive; -- This is OK!
>> So is
>>
>> if 42 not in Boolean'pos(false) .. Boolean'pos(true) then
>> raise Constraint_Error;
>> end if;
>
> You missed the point. The renaming in my example shall *not* raise
> Constraint_Error. It is a clear language design fault.
Oops will at some point raise Constraint error; how can a compiler
be supposed to known that some Integer function will *always*
return non-Positives? What makes you think that the programmer
who has written the Oops doesn't know what he is
doing using a subtype, not a new type?
I think it is a program design fault, if a fault at all (or a flaw as
Bub Duff notes). Subtypes are not new types, a compiler is not a
program proof program, and less so when the programmer writes about
overlapping value ranges, not types.
For contrast,
Whatever: Boolean renames Halt(Main'access); -- legal
(Make Halt an ASIS function that can call the compiler if you like.)
next prev parent reply other threads:[~2007-06-30 13:14 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <0367891DA5DA7E408D42A860FA002F44B0CC48@sma2901.cr.eurocopter.corp>
2007-06-29 9:35 ` AW: Bus error Duncan Sands
2007-06-29 12:55 ` Dmitry A. Kazakov
2007-06-29 15:37 ` Markus E Leypold
2007-06-29 15:44 ` Georg Bauhaus
2007-06-29 20:07 ` Dmitry A. Kazakov
2007-06-30 1:37 ` Robert A Duff
2007-06-30 8:44 ` Dmitry A. Kazakov
2007-06-30 11:52 ` Georg Bauhaus
2007-06-30 13:16 ` Georg Bauhaus
2007-06-30 14:31 ` Dmitry A. Kazakov
2007-06-30 18:07 ` Georg Bauhaus
2007-06-30 19:31 ` Robert A Duff
2007-07-01 9:07 ` Dmitry A. Kazakov
2007-06-30 15:40 ` Robert A Duff
2007-06-30 17:54 ` Georg Bauhaus
2007-07-02 8:01 ` Jean-Pierre Rosen
2007-07-02 12:00 ` Dmitry A. Kazakov
2007-07-02 12:30 ` Jean-Pierre Rosen
2007-07-02 14:22 ` Robert A Duff
2007-06-30 13:14 ` Georg Bauhaus [this message]
2007-06-30 14:31 ` Dmitry A. Kazakov
2007-06-30 15:34 ` Robert A Duff
2007-07-01 8:34 ` Dmitry A. Kazakov
2007-07-01 15:39 ` Robert A Duff
2007-07-01 19:41 ` Dmitry A. Kazakov
2007-06-30 15:29 ` Robert A Duff
2007-06-30 17:41 ` Georg Bauhaus
2007-06-30 13:31 ` Markus E Leypold
2007-07-02 0:16 ` Robert A Duff
2007-06-29 9:23 AW: " Grein, Christoph (Fa. ESG)
2007-06-29 10:17 ` Dmitry A. Kazakov
-- strict thread matches above, loose matches on Subject: below --
2007-06-27 14:23 Maciej Sobczak
2007-06-27 15:45 ` Georg Bauhaus
2007-06-27 17:19 ` Maciej Sobczak
2007-06-28 1:58 ` Robert A Duff
2007-06-28 20:06 ` Maciej Sobczak
2007-06-28 21:19 ` Robert A Duff
2007-06-29 8:05 ` Maciej Sobczak
2007-06-29 9:42 ` Georg Bauhaus
2007-06-29 16:59 ` Adam Beneschan
2007-06-30 12:33 ` Georg Bauhaus
2007-06-30 2:02 ` Robert A Duff
2007-06-29 8:04 ` Dmitry A. Kazakov
2007-06-27 20:02 ` Anh Vo
2007-06-27 20:48 ` Maciej Sobczak
2007-06-28 2:01 ` Robert A Duff
1990-08-27 23:48 BUS ERROR J o s e D u a r t e ! ! !
1990-08-16 14:52 saharbaugh%roo.dnet
1990-08-13 21:11 J o s e D u a r t e !!!
1990-08-10 12:32 bus error saharbaugh%roo.dnet
1990-08-09 14:50 saharbaugh%roo.dnet
1990-08-10 21:38 ` Chuck Peterson
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox