From: Jeffrey Carter <jrcarter@acm.org>
Subject: Re: Local vs global variables in ADA
Date: Mon, 04 Nov 2002 01:47:02 GMT
Date: 2002-11-04T01:47:02+00:00 [thread overview]
Message-ID: <3DC5D1B7.1060707@acm.org> (raw)
In-Reply-To: 5Ldx9.3695$151.38236@weber.videotron.net
Roger wrote:
> Yes I'm an Ada newbie and have a questions about local and global variables.
> When exactly is a variable said to be global?
This is a good question. Unlike some languages, in which a variable is
either global or local, Ada has various degrees of locality. This
sometimes causes heated discussions between those who follow a strict,
blind-obedience rule of no global variables and those with a better
understanding of the matter.
For example, a variable declared in a package body may be global to the
subprograms in the package, but they are not visible outside the
package. Knee-jerk rule following says these are not allowed because
they're global variables. Actually, these are state variables for the
package and perfectly acceptable.
The only real global variables in Ada are those declared in the visible
part of package specifications. These are a no-no.
>
> for example I have this code
> --main procedure
> Procedure Main Is
> --If I declare a variable here will it be considered as
> --global to the sub procedures?
Yes.
> --sub procedure
> Procedure Sub
>
> Begin
>
> End Sub;
>
>
>
> Begin
> --If I declare a variable here will it be considered as
> --global to the sub procedure?
> End Main;
You can't declare a variable there without a block statement. Perhaps
you meant
begin -- Main
declare
-- variable declaration
begin
...
end;
end Main;
in which case you can have declarations there. Such declarations are not
visible outside the block statement in which they are declared, so they
are not visible to Sub.
Not that Ada is not C, so your main procedure can have a more
informative name than "Main" if you like.
--
Jeff Carter
"Monsieur Arthur King, who has the brain of a duck, you know."
Monty Python & the Holy Grail
next prev parent reply other threads:[~2002-11-04 1:47 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-03 18:17 Local vs global variables in ADA Roger
2002-11-03 19:03 ` Per Sandbergs
2002-11-03 19:31 ` Eric Jacoboni
2002-11-04 1:47 ` Jeffrey Carter [this message]
2002-11-04 13:27 ` Wes Groleau
2002-11-04 20:48 ` Jeffrey Carter
2002-11-05 8:43 ` Fraser Wilson
2002-11-05 13:53 ` Charles H. Sampson
2002-11-06 4:59 ` R. Tim Coslet
2002-11-05 17:28 ` Stephen Leake
2002-11-05 17:38 ` Jean-Pierre Rosen
2002-11-05 19:57 ` Jeffrey Carter
2002-11-06 9:11 ` Jean-Pierre Rosen
2002-11-05 20:26 ` Vinzent Hoefler
2002-11-05 23:14 ` Wes Groleau
2002-11-06 9:16 ` Jean-Pierre Rosen
2002-11-06 13:49 ` Wes Groleau
2002-11-05 22:37 ` Robert A Duff
2002-11-05 23:46 ` Larry Hazel
2002-11-06 2:19 ` Dennis Lee Bieber
2002-11-06 13:45 ` Dan Nagle
2002-11-07 0:30 ` Dennis Lee Bieber
2002-11-06 2:15 ` Dennis Lee Bieber
2002-11-06 7:04 ` Martin Dowie
2002-11-06 14:40 ` john mann
2002-11-07 0:25 ` Dennis Lee Bieber
2002-11-07 14:58 ` Robert A Duff
2002-11-07 15:38 ` Jean-Pierre Rosen
2002-11-08 1:43 ` Jeffrey Carter
2002-11-06 7:18 ` Dale Stanbrough
2002-11-06 15:40 ` Rod Chapman
2002-11-06 17:34 ` Stephen Leake
2002-11-10 1:36 ` loop statements, was " David Thompson
2002-11-05 19:54 ` Jeffrey Carter
2002-11-04 13:47 ` Martin Dowie
-- strict thread matches above, loose matches on Subject: below --
2002-11-05 6:42 Grein, Christoph
2002-11-05 15:59 ` Martin Dowie
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox