Topic: binding of names to objects
Topic: context
Topic: data as a named set of data objects
Topic: database record
Topic: dictionary for natural language
Topic: early vs. late binding
Topic: environment variables
Topic: evaluation in an environment
Topic: file directory
Topic: global declarations and variables
Topic: hierarchical naming
Topic: local declaration of data
Topic: name server or name directory
Topic: names defined by context
Topic: names independent of objects
Topic: naming authority
Topic: object-defined names
Topic: parameter passing by keyword or position
Topic: running programs in a workspace or environment
Topic: safe use of pointers
Topic: symbol table
Topic: type hierarchy
Topic: user profile
| |
Summary
A namespace is defines a naming universe for unique names. Even though two names are identical, if they belong to different namespaces, they are different names. Namespaces may be static or dynamic. Environment variables are an example of a dynamic namespace.
Namespaces replace the global context with many named contexts, thus avoiding some of the problems associated with global variables.
Typically, a program will declare its namespaces. Within the program, a name may be explicit qualified, qualified with an abbreviated name, or implicitly qualified. In XML with namespaces, every element name belongs to a namespace, either by default or by abbreviated name. (cbb 4/06)
Subtopic: URI-based names
Quote: XML elements and attributes have two-part names consisting of a URI and local part
| Subtopic: namespace vs. global declaration
Quote: replace global declarations with a namespace; define a local synonym for the namespace and allow use of common namespaces without explicit name qualification [»stroB_1994]
| Subtopic: module as namespace
Quote: a Ruby module is a namespace [»thomD1_2001]
| Quote: a Ruby mix-in is an interface that includes code; e.g., 'find' for 'Enumerable'; implemented as a module
| Subtopic: object context
Quote: object context (interior/exterior) -- each object owns a context, and is owned by the context that it resides within; this partitions the object store [»clarDG10_1998]
| Subtopic: namespace as owner
Quote: an unshared Guava object is permanently owned by a shared monitor or unshared value; no other references [»bacoDF10_2000]
| Quote: use single-bit reference count for owned objects; e.g., most list cells in Lisp [»abduSE9_1998]
| Quote: without garbage collection, objects must be owned; who releases a string that is queued for printing? [»swinDC7_1985]
| Subtopic: qualified name
Note: a qualified name, X:Y, allows embedding anywhere; one word name in a context [»cbb_2000, OK]
| Subtopic: dynamic namespace
Quote: the 'dynamic' namespace contains the calling agent and whatever is explicitly added [»acheF9_2000]
| Subtopic: namespace as environment
Quote: Napier88 uses a persistent store for program fragments packaged as environments; allows control of namespace and compilation [»dearA4_1993]
| Subtopic: namespace limits
Quote: the jail model substitutes namespace limits for security labels; semi-permeable partitioning of files, processes, and network; no super-user privileges; simple and efficient [»kampPH7_2004]
| Quote: namespace limits prevent access to objects that cannot be named; simple implementation and user-comprehensible behavior [»kampPH7_2004]
| Quote: hierarchical and protected namespaces permit trust to be assigned with low cost separation between namespace subsets [»kampPH7_2004]
| Subtopic: namespaces as forms
Quote: Piccola unifies all notions of namespaces as first-class forms, e.g., records, dictionaries, objects, environments, packages; avoids meta-programming [»acheF9_2000]
| Subtopic: namespace for control
Quote: deal with porn-oriented and other unsavory sites by placing them in a different name space; easily managed with voluntary compliance and fines [»dvorJC9_1997]
| Subtopic: hierarchical identifier
Quote: hierarchically arranged numbers, allows owner of a number to create related numbers [»nelsTH_1987]
| Subtopic: namespaces at runtime for object wrappers, etc.
Quote: runtime manipulation of namespaces needed for adding wrappers to object methods, automatically creating RMI proxies, and other uses of boilerplate code [»acheF9_2000]
| Subtopic: problems with namespaces
Quote: inflexible namespaces lead to conflicts; avoid flat namespaces requiring conventions, package conflicts, restricted scoping, static services [»acheF9_2000]
|
Related Topics
Topic: binding of names to objects (19 items)
Topic: context (8 items)
Topic: data as a named set of data objects (22 items)
Topic: database record (22 items)
Topic: dictionary for natural language (41 items)
Topic: early vs. late binding (15 items)
Topic: environment variables (5 items)
Topic: evaluation in an environment (35 items)
Topic: file directory (55 items)
Topic: global declarations and variables (33 items)
Topic: hierarchical naming (28 items)
Topic: local declaration of data (11 items)
Topic: name server or name directory (40 items)
Topic: names defined by context (36 items)
Topic: names independent of objects (34 items)
Topic: naming authority (7 items)
Topic: object-defined names (15 items)
Topic: parameter passing by keyword or position (13 items)
Topic: running programs in a workspace or environment (14 items)
Topic: safe use of pointers (102 items)
Topic: symbol table (4 items)
Topic: type hierarchy (18 items)
Topic: user profile (16 items)
|