Variable binding: (re-) assignment, argument passing, `let`, scope

I said nothing about value vs object. Either is fine. What I was saying though, is that there’s only x the name and 1 the object/value. Your,

Implies that there’s x → name location → value location → 1 which is not right. While you can say the name x is a property of the name location, there’s abosolutely no “value location” in between the “name location” and the object itself. There’s also no

No they do not exist in the semantics and may not exist at the runtime so it doesn’t make sense to talk about it at any level based on your code. According to your definition, it’s purely a low level compiler concept and there’s absolutely nothing you can say about them just based on your code. The location that stores any object you write may or may not exist and may or may not be unique. They also may or may not be allocated any time unrelated to any specific line of code you write.

I don’t see what’s wrong with that. (Edit: and I don’t have much issue interpreting your “name location” simply as variables apart from that it’s not the standard name for variables)

I still don’t understand what you are trying to figure out/illustrate though. It still seems to me that you are trying to find the execution that give rise to the scope rules (i.e. you go from code to how bindings are handled and then to what variables are visible as what values) and that line of throught is just wrong. I’m not sure what background you have but just in case I would add that your description sounds very similar to dynamic scope, which does not exist in julia.

If this line of thought is not what you are following, you should probably explain more explicitly what you want to learn at a higher level.

2 Likes