Topic: binding of names to objects
Topic: data types are not needed
Topic: dynamic type checking
Topic: dynamic vs. static data type
Topic: environment variables
Topic: generic operations and polymorphism
Topic: interpreter
Topic: just-in-time compilation
Topic: namespace
Topic: type reflection and introspection
| |
Summary
In early binding, a logical name is assigned a physical address. In late binding, the association between logical and physical address is made on demand. Early binding is typically more efficient. Late binding allows greater flexibility.
Late binding is helpful for upgrading software in place. A new use receives the new definition, while old uses continue to use the old definition.
Progress in software often concerns late-binding. Interpreters typically use late binding. (cbb 12/00)
Subtopic: early vs. late
Quote: use early binding for performance and late binding when early binding becomes invalid [»oppeDC7_1983]
| Quote: classify parameters by likelihood of change and cost of variability; use run-time variables if low cost, system configuration variables if unlikely to change [»britKH3_1981]
| Quote: instead of compile-time or run-time binding, Subtext binds immediately; changes are globally replicated with recomputation as needed [»edwaJ10_2005]
| Quote: Subtext achieves functional abstraction without hiding meaning behind the delayed binding of indirect reference
| Subtopic: advantages of late binding
Quote: progress in software often concerns late-binding; e.g., index registers, behaviors instead of state/processes, portability, distributed systems [»kayAC_1996]
| Quote: a user profile contains names of mail and file servers instead of addresses; allows relocation of servers [»oppeDC7_1983]
| Quote: use abbreviations to indicate dialing information, allows the same phone number to be stored at every site; e.g., nyc or boston [»nowiDA8_1978]
| Quote: usually implement run-time binding of data descriptor to internal representation by interpretation; used in IMS, INGRES, etc. [»baroAJ3_1982]
| Subtopic: late binding for flexibility, change
Quote: dynamic binding of names to addresses allows graceful adaptation to changes [»oppeDC7_1983]
| Quote: because of Java's late binding it is easy to change methods and private variables; just need to retain old methods or their type signatures [»goslJ6_1997]
| Quote: without late binding, newly defined components may not work with inherited operations; needed for incremental development [»taivA9_1996]
| Quote: command languages use late binding for flexibility; typically at execution [»frasCW6_1983]
| Subtopic: exception handling
Quote: CLR exception handlers may be typed (catch on type match), filtered (catch on true evaluation), termination (always called on exception cleanup); late binding
| Subtopic: advantages of early binding
Quote: parametric polymorphism is better than dynamic approaches; errors caught at compile time; invariants expressed in types; fewer conversions, avoids run-time type checks [»kennA6_2001]
| Subtopic: use constants to avoid lookups
Quote: instead of using run-time look up of property names, SUIT uses C constants [»pausR10_1992, OK]
|
Related Topics
Topic: binding of names to objects (19 items)
Topic: data types are not needed (8 items)
Topic: dynamic type checking (43 items)
Topic: dynamic vs. static data type (24 items)
Topic: environment variables (5 items)
Topic: generic operations and polymorphism (67 items)
Topic: interpreter (59 items)
Topic: just-in-time compilation (20 items)
Topic: namespace (19 items)
Topic: type reflection and introspection (28 items)
|