From: caen!uvaarpa!software.org!smithd@uunet.uu.net (Doug Smith)
Subject: Re: Using Global Variables
Date: 21 Sep 92 16:51:08 GMT [thread overview]
Message-ID: <1992Sep21.165108.11129@software.org> (raw)
In article <16864C1E7.M19481@mwvm.mitre.org> M19481@mwvm.mitre.org writes:
> In article <1992Sep16.152620.9286@nosc.mil>
> sampson@nosc.mil (Charles H. Sampson) writes:
>
> >
> >In article <15390@suns5.crosfield.co.uk> pdg@crosfield.co.uk (paul goffin)
> >writes (in an article on Ada compiler pricing):
> >
> >>So what did I mean by cost? Well, apart from the training costs
> >>and the cost of setting up development systems that act>>Ada, (New compiler
driving scripts, new way of addressing hardware,
> >>new way of managing "global variables" - Yes, nasty as they are,
> >>you do sometimes have to use global variables in the real world!)
> >>there was a nasty shock in the price of the compilers.
> >
> > I'd like to hear more about this need to use global variables in
> >the real world, from Mr. Goffin and anyone else. I can't remember the
> >last time I used one in an Ada project, and I think what I do is pretty
> >real world stuff. (Well, I do contract to the U. S. Navy, but that's
> >close.)
> >
> > Charlie
>
> The main reason I've heard used to justify the use of global variables is
> performance of a real-time system. The argument goes that the overhead of
> parameter passing is just too high to meet the performance requirements on
> the target machine (which cannot be changed), hence global variables. Now
> you may argue that the target machine should have been chosen more wisely,
> or the choice delayed until after the software was totally developed so as
> to be able to pick the right size machine -- but I imagine that that's what
> Mr. Goffin had in mind when he used the term "real world."
>
> David - dhite@mitre.org
OK. Let's get specific. Assuming that having to `with' a package does
not violate the definition of global, the following is definitely the
declaration of a global variable:
package Contains_Global is
Global_Variable : Integer;
end Contains_Global;
Now I can effectively convert this to declare the variable inside the
package body, but instead of assignment (a predefined procedure with
special semantics), I must provide my own procedures to access it:
package Convert_Global is
procedure Put (Value : in Integer);
procedure Get (Value : out Integer);
pragma Inline (Put, Get);
end Convert_Global;
package body Convert_Global is
Is_This_A_Global_Variable : Integer; ----------- What do you say?
procedure Put (Value : in Integer) is
begin
Is_This_A_Global_Variable := Value;
end Put;
procedure Get (Value : out Integer) is
begin
Value := Is_This_A_Global_Variable;
end Get;
end Convert_Global;
In an attempt to limit the potential explosion of discussion about
why one is better than the other--let's try to define the term `Global'
first! What is the Integer declared inside the package body?
Doug
smithd@software.org
next reply other threads:[~1992-09-21 16:51 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
1992-09-21 16:51 Doug Smith [this message]
-- strict thread matches above, loose matches on Subject: below --
1992-09-29 15:05 Using Global Variables Charles H. Sampson
1992-09-28 20:56 crispen
1992-09-28 15:53 Victor Giddings
1992-09-28 14:51 Jeffrey Stewart
1992-09-28 12:52 crispen
1992-09-25 22:58 netcomsv!iscnvx!news
1992-09-25 21:16 Charles H. Sampson
1992-09-25 17:50 Charles H. Sampson
1992-09-25 17:36 Charles H. Sampson
1992-09-25 16:30 David A. Hasan
1992-09-25 14:01 crispen
1992-09-24 20:02 netcomsv!iscnvx!news
1992-09-24 18:10 crispen
1992-09-24 6:51 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!rpi!utcsri!geac!torsqnt!uuno
1992-09-24 3:52 Michael Feldman
1992-09-23 21:13 haven.umd.edu!darwin.sura.net!zaphod.mps.ohio-state.edu!cis.ohio-state.ed
1992-09-23 19:11 Charles H. Sampson
1992-09-23 15:01 crispen
1992-09-23 14:26 munnari.oz.au!ariel!ucsvc.ucs.unimelb.edu.au!phillip.edu.au!x01233
1992-09-23 14:19 crispen
1992-09-23 13:24 wupost!spool.mu.edu!olivea!bu.edu!inmet!inmet!shafer
1992-09-23 2:44 Holmes S. Liao
1992-09-22 20:14 LEE MARDEN
1992-09-22 17:08 dog.ee.lbl.gov!hellgate.utah.edu!cs.utexas.edu!csc.ti.com!tilde.csc.ti.co
1992-09-22 14:54 van-bc!ubc-cs!destroyer!caen!spool.mu.edu!umn.edu!The-Star.honeywell.com!
1992-09-22 12:19 Robert Firth
1992-09-21 21:30 fred j mccall 575-3539
1992-09-21 20:58 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!darwin.sura.net!spool.mu.edu
1992-09-21 20:37 Michael Feldman
1992-09-21 20:36 Michael Feldman
1992-09-21 20:31 Michael Feldman
1992-09-21 19:23 Robert Firth
1992-09-21 18:32 agate!linus!linus.mitre.org!mwvm.mitre.org!M19481
1992-09-21 14:43 haven.umd.edu!darwin.sura.net!spool.mu.edu!umn.edu!The-Star.honeywell.com
1992-09-21 11:49 cis.ohio-state.edu!news.sei.cmu.edu!ajpo.sei.cmu.edu!wellerd
1992-09-21 8:10 paul goffin
1992-09-21 4:08 cis.ohio-state.edu!news.sei.cmu.edu!lph
1992-09-19 2:28 Michael Feldman
1992-09-18 23:52 Charles H. Sampson
1992-09-18 22:50 Robert I. Eachus
1992-09-18 13:12 crispen
1992-09-17 18:34 Charles H. Sampson
1992-09-17 14:24 kronos.arc.nasa.gov!iscnvx!news
1992-09-16 17:47 agate!linus!linus.mitre.org!mwvm.mitre.org!M19481
1992-09-16 15:26 Charles H. Sampson
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox