In other langauges, this is handled either by completely implict reference taking (so the programmers know when something is used as a reference; ie, in Java primitive types are always pass-by-value and object are always pass-by-reference) or (in C) by completely explicit reference taking (f(int *a) called as f(&a)).