While recently editing a question, Raphael introduced the tag , using it to replace that had been chosen by the OP. That is apparently the only use of .

I must say, I did not understand the motivation for that, as scoping is a subtopic of binding (though the word binding is often not used alone). Still, I believe the two concepts are not separable, and thus do not justify two tags in my opinion. Binding is a bit more general as it may includes for example discussion of the uses of binding for different purposes: quantification, abstraction, .... But binding always implies some scoping policy.

I would suggest keeping both as synonyms, as binding may be more naturally used by theoreticians, while scoping may be used more by programmers. Actually, my preferred choice would be .


I don't get the tag either, is fine for that question. I'm not convinced we need at all and I'd prefer if we introduce a synonym.

The proper tag name is and not , because variables aren't always named.

I speak a domain expert as a (former) programming language theoretist and also as a programmer.

  • $\begingroup$ Actually, though historical, the use of the word variable is misguided in a programming context, since the issue concerns the meaning of names, which may or may not denote variables. It would be more acceptable in a purely mathematical context where variable often means name. See for example: What is the difference between assignment, valuation and name binding?. I know of de Bruijn notation, but ... it is not the most frequent use. And most discussions are about binding: what name means what, where. De Bruijn is only doing away with it. $\endgroup$ – babou Mar 3 '15 at 8:40
  • $\begingroup$ @babou Your answer there is oversimplified. Posting a more complete one is on my to-do list. Variables are not always names (as scoping issues show, you can have multiple variables with the same name; and you can have variables without names, e.g. in De Bruijn notation) and are not exactly objects (e.g. in purely functional languages, variables are not objects at all). $\endgroup$ – Gilles 'SO- stop being evil' Mar 3 '15 at 8:49
  • $\begingroup$ I was expecting you to answer that. I was answering a question, and I was attempting to be very simple and intuitive. My teaching experience, and my contact with the OO crowd, taught me to be modest in attempting to convey ideas. I try to refer to the concepts they use, though often ill defined. I have been doing my part of research in programming languages and formal semantics. But I was only trying to give a reasonably short answer to a (good) question that was mixing issues. In a pure functional language, there are no variables in the programming sense, only bindings denotations to values. $\endgroup$ – babou Mar 3 '15 at 9:23
  • $\begingroup$ What I meant is that we usually try to answer questions in a digestible way. We are not supposed to write textbooks, not even a chapter. And I do tend to write long and precise answers. $\endgroup$ – babou Mar 3 '15 at 9:27
  • $\begingroup$ Completely fine with me, that tag was a shot from the hip. $\endgroup$ – Raphael Mar 3 '15 at 12:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .