From: davidg@oracorp.com (David Guaspari)
Subject: Language lawyer needed
Date: Thu, 1 Apr 1993 21:57:53 GMT
Date: 1993-04-01T21:57:53+00:00 [thread overview]
Message-ID: <1993Apr1.215753.3147@oracorp.com> (raw)
Here's a question for language lawyers.
Consider the following pathological program:
procedure Q(x : integer) is
begin
declare
x : integer; -- (1)
begin
Q(x => 0); -- (2)
end;
end Q;
My question concerns the legality of Q (forgetting about the fact that
its execution won't terminate). One way to apply chapter 8 in the
reference manual goes as follows:
The declaration of x in (1) hides the declaration of x as a formal
parameter of Q.
Therefore, by the visibility rules, the occurrence of x in (2) has
exactly one possible meaning, namely that given by the declaration
in (1).
However, the declaration in (1) is not visible by selection at the
point at which x occurs in (2).
Therefore the call in (2) is illegal.
One the other hand, at least one compiler (Telesoft) thinks that Q is
legal, an outcome that seems a reasonable enough outcome to common
sense untutored by the reference manual. So, what *is* the right
answer, and how do we get it from the RM?
- David Guaspari
davidg@oracorp.com
next reply other threads:[~1993-04-01 21:57 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
1993-04-01 21:57 David Guaspari [this message]
1993-04-02 13:57 ` Language lawyer needed Dave Collard x7468
1993-04-02 16:40 ` Robert I. Eachus
1993-04-02 19:37 ` Tucker Taft
1993-04-02 23:07 ` Rich Messenger
-- strict thread matches above, loose matches on Subject: below --
1993-04-02 15:39 Mike Berman
1993-04-02 16:39 Wes Groleau X7574
1993-04-07 22:34 agate!howland.reston.ans.net!zaphod.mps.ohio-state.edu!pacific.mps.ohio-s
1993-04-08 18:10 Robert I. Eachus
1993-04-09 22:33 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!howland.reston.ans.net!noc.n
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox