next up previous index
Next: Evaluation Model Up: Introduction Previous: Data Types   Index

Naming

Q uses a system-wide, machine-independent namespace. Each dataflow graph element in an algorithm specification -- streams, tasks, functions, and graphs -- is contained in a named object in this space. The tag, or name, is a unique 64-bit identifier.

Regardless of the mechanism used to implement the basic tag to named object pointer mapping, there are advantages to using a multilevel mapping scheme. In Q a two level mapping is provided by an environment mechanism. An environment is a named object which contains information about the location of other named objects. A tag cannot be resolved unless the tag identifying its environment is also specified. Thus the cost of a Q name is typically 128-bits.

The lower level of algorithm specification uses the local processing node's namespace, which is implementation specific. All references to function parameter stream data are done through pointers in the local namespace, resolved from tags (and context) by the runtime system before calling the function.



magiceight-web@media.mit.edu