comp.lang.ada
 help / color / mirror / Atom feed
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



             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