There is a history of references in Simula-67 and Algol-68.
Algol-68 make a difference between a binding a name to a certain memory location and to a variable. A reference is converted to the value of the same type, this is called dereferenciate of the variable. This is the way to distinguish between the left and right side of an assignment.
int i = 5; // const int ref int j := i; // int variable