What other languages use the same data model as Python?

Mel mwilson at the-wire.com
Thu May 5 08:09:21 EDT 2011


Tim Roberts wrote:
> That is not an instance of passing an "int" by reference.  That is an
> instance of passing an "int *" by value.  The fact that the parameter "a"
> in BumpMe happens to be an address is completely irrelevent to the
> definition of the parameter passing mechanism.
> 
> C has pass-by-value, exclusively.  End of story.

Trouble with Turing-complete languages.  If it can be done, you can convince 
a Turing-complete language to do it -- somehow.

PL/I was the converse.  All parameters were passed by reference, so with

some_proc (rocks);

the code in some_proc would be working with the address of rocks.  If you 
wanted pass-by-value you wrote

some_proc ((rocks));

whereupon the compiler would pass in by reference an unnamed temporary 
variable whose value was the expression `(rocks)`.  I suspect the compiler I 
used avoided FORTRAN's troubles the same way.  Your function could corrupt 
*a* 4, but it wouldn't corrupt the *only* 4.

	Mel.



More information about the Python-list mailing list