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