Talk:Name binding
This article is rated Start-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||||||||||||||||||
|
Old comments
editI changed some things:
- The opening statement was vague about the scope of the article: it first mentioned "in computer science", and then later reduced that to "in programming language". I changed it to open with "in programming languages".
- Added a "Binding is conceptual and imprecise" section including a Java example.
- Merged the Ruby code and the C code examples.
- Modified some of the "binding time" paragraphs.
-- Eelis 00:46, 2005 May 23 (UTC)
re: Shallow and Deep binding - strikes me that shallow binding implements dynamic binding while deep binding implements lexical. Is this notion correct? How correct?
- I agree that that section is just a (bad) description of lexical and dynamic scope. I suggest removal and/or linking. Wouter Lievens 13:14, 1 May 2005 (UTC)
"Run time"
editI disagree that binding only binds identifiers to runtime values. Many languages allow the binding of names to (for instance) types, which are purely static. This is especially true in modern typed functional languages (SML programming language), but also even in totally mainstream languages like C (typedef
). Brighterorange 19:06, 22 Jun 2005 (UTC)
Not appropriate part
edit17.202.33.55 has added something which definitely doesn't conform to encyclopedia format:
THE ABOVE IS WRONG. Deep and shallow binding are implementations that can be applied to either dynamic scoping or lexical scoping. Various Lisps have used both deep and shallow binding to implement dynamic scoping ("Shallow Binding in Lisp 1.5", H.G.Baker, Communications of the ACM 21, 7 (July 1978), 565-569.) and likewise both deep and shallow binding can be used to implement lexical scoping. -- James McCartney
I removed it. Integrate it in a more appropriate manner. --logixoul 15:43, 5 September 2005 (UTC)
Dynamic Binding is not name binding
editThere seems to be reference from dynamic binding to name binding, but the second is not a superset of the first. There are binding problems that have nothing to do with names (in form of identifiers). For example, in Eiffel dynamic binding depends on a the static and dynamic type of the run-time object and the feature (method). As Eiffel allows renaming in Inheritance, features can have different names through different classes.
Confusing
editHello, I am sorry this is my first steps in Wikipedia, there could be some mistake i am looking forward for your comments. In fact i have never heard about Name-binding, i come to this page as i was looking for a concise explanation about early-binding/late binding etc... while reading the article it's still confusing. In my opinion there is three type of binding : static , dynamic and latebinding, i quite agree with the definition proposed in the article, but i found the example quite confusing. I think i could wrote 3 examples (in Java but without the generic because i think they could me mislead in this context). So do we proceed from now ? kind regards,
- And conversely, when I think of binding, name binding is foremost in my mind, where name binding means resolving a name to an address. The article refers to types of bindings where names are no longer involved. To either kind of reader coming at this article, it is confusing. Hackwrench 21:03, 10 September 2006 (UTC)
Deep Binding and Shallow Binding
editAs both deep binding and shallow binding link to this article, it would seem useful to define the two and explain the difference.
Late Binding can be later than that
editThe article describes any virtual method call as "late binding". A different definition is used for OLE Automation, where a compiled virtual method call is Early Binding, and a Late Binding is the calling a method by its name (which involves Reflection) instead of a numeric offset. Medinoc 12:44, 20 September 2007 (UTC)
Merge Name binding with Name resolution
edit“Name binding” and “Name resolution” are extremely similar concepts; the current definitions (association of names with entities) are essentially identical. AFAICT, the main difference is that “name binding” is used in object-oriented programming (as in “dynamic binding”), while “name resolution” is used for non-OOP entities, as in scope, and outside of programming.
There may be a fine distinction between “resolving a name at some point in the text with a standard name in some context” (i.e., just associating names, as in higher-order abstract syntax) and “binding the name to the entity to which it refers” (i.e., connecting this common name to an entity), but this is really splitting hairs.
At the very least the distinction between these terms – or their equivalence! – should be mentioned, but these seem close enough to merge.
What do you think, oh fellow editors?
- —Nils von Barth (nbarth) (talk) 13:11, 3 April 2014 (UTC)
- I moved the section on named resolution in programming languages to a separate article, so fixed the link here. Aasasd (talk) 12:44, 9 September 2015 (UTC)