🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: bit.listserv.simula
Article #295

In reply to your message: value change

#295
From: Frans Panken
Date: Tue, 25 Jun 1996 00:00
62 lines
2814 bytes
--------


> Frans Panken writes:
> >
> > Can anyone give me any comments on the following:
> >
> > Suppose a procedure activates a PROCESS CLASS with a local ARRAY "A"
> > as parameter. When after activation of this process class the array
> > "A" is changed within the procedure, the local array in the class
> > that was just activated changes as well !
> > This does not occur in the case of reals, integers, booleans etc.
> >
> > So, if a procedure activates a number (say N) of classes and passes
> > arrays to these classes, the values in the local arrays of classes 1
> > .. N-1 change into the values given to the class which was activated
> > last (i.e.  class number N).
> >
> > This observation worries me a bit; are there any other declarations
> > that will change in this manner ??

Ron Kerr writes:
>
>  If I understand your question correctly, the changes to the arrays
>  occur only if they are transmitted to the classes "by reference", the
>  default transmission mode for arrays. (Transmission by reference
>  merely passes a pointer and so does not give a copy local to the class
>  object.) If you specify the array parameters in the class headings as
>  "value", the class objects will have local copies in the same manner
>  as reals, integers, etc.
>
>  The "value" transmission mode is not available for reference arrays.
>
>  Hope that helps.
>
>  Cheers....Ron
>

It makes sense that the transmission mode for arrays is "by
reference": it saves a lot of memory.

However, since simula does not explicitely asks you to specify the
mode, because integers, reals etc are called "by value", it
surprised me that it didn't work that way for arrays.
Thanks for your comments, Ron.

Kind regards,
Frans



                   __o       __o
                 _,\<,_    _,\<,_
                (_)/ (_)  (_)/ (_)
---------------------------------------------------------------------
Frans Panken                              UUCP: uunet!cs.kun.nl!fransp
University of Nijmegen,           ,==.    tel: +31 24 3652450
Computing Science Institute,     / @ |    e-mail: fransp@cs.kun.nl
Room A-4016,Toernooiveld 1,     /_  <     fax: +31 24 3553450
NL, 6525 ED Nijmegen           =" `g'     talk: fransp@eos.cs.kun.nl
---------------------------------------------------------------------
Technical Details
Message-ID: <199606250958.LAA17310@sisyphus.cs.kun.nl>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 113dd9,47ad1258a5ebb96c,start
X-Google-Attributes: gid113dd9,public
From: Frans Panken <fransp@CS.KUN.NL>
Subject: In reply to your message: value change
Date: 1996/06/25
Message-ID: <199606250958.LAA17310@sisyphus.cs.kun.nl>
X-Deja-AN: 162030743
sender: The SIMULA Language List <SIMULA@uga.cc.uga.edu>
comments: Gated by NETNEWS@AUVM.AMERICAN.EDU
newsgroups: bit.listserv.simula