Naming and binding of objects
KeywordsFile System Address Space Shared Object Segment Number Virtual Processor
to choose a specific lower-level implementation for a particular higher-level semantic construct. In the case of names, binding is choosing a mapping from a name to a particular object, usually identified by a lower-level name.
an object consisting of a table of bindings between symbolic names and objects. A catalog is an example of a context (q.v.).
abstractly, the mechanism that connects an object that refers to other objects by name with the context in which those names are bound.
an object that is contained by another object.
a particular set of bindings of names to objects: a name is always interpreted relative to some context.
- indirect entry
in a naming network, an entry in a catalog that binds a name, instead of to an object, to the path name of some catalog entry elsewhere in the naming network.
a shared catalog (or set of catalogs) that contains objects such as programs and data to which several users refer. A computer system usually has a system library, which contains commonly used programs.
- limited context
a context in which only a few names can be expressed, and therefore names must be reused.
- modular sharing
sharing of an object without the need to know of the implementation of the shared object. From the point of view of naming, modular sharing is sharing without need to know of the names used by the shared object.
in practice, a character- or bit-string identifier that is used to refer to an object on which computation is performed. Abstractly, an element of a context.
- naming hierarchy
a naming network (q.v.) that is constrained to a tree-structured form.
- naming network
a catalog system in which a catalog may contain the name of any object, including another catalog. An object is located by a multi-component path name (q.v.) relative to some working catalog (q.v.).
a software (or hardware) structure that is considered to be worthy of a distinct name.
- path name
a multiple component name of an object in a naming network. Successive components of the path name are used to select entries in successive catalogs. The entry selected is taken as the catalog for use with the next component of the path name. For a given starting catalog, a given path name selects at most one object from the hierarchy.
- reference name
the name used by one object (e.g., a program) to refer to another object.
to locate an object in a particular context, given its name.
the starting catalog of a naming hierarchy.
abstractly, to examine several contexts looking for one that can successfully resolve a name. In practice, the systematic examination of several catalogs of a naming network, looking for an entry that matches a reference name presented by some program. The catalogs examined might typically include a working catalog, a few other explicitly named catalogs, and a system library catalog.
- shared object
1) a single object that is a component of more than one other object. 2) an object that may be used by two or more different, parallel activities at the same time.
one of the multiple names for a single object permitted by some catalog implementations.
- tree name
a multiple component name of an object in a naming hierarchy. The first component name is used to select an entry from a root catalog, which selected entry is used as the next catalog. Successive components of the tree name are used for selection in successively selected catalogs. A given tree name selects at most one object from the hierarchy.
- unique identifier
a name, associated with an object at its creation, that differs from the corresponding name of every other object that has ever been created by this system.
- unlimited context
a context in which names never have to be reused.
- user-dependent binding
binding of names in a shared object to different components depending on the identity of the user of the shared object.
- working catalog
in a naming network, a catalog relative to which a particular path name is expressed.
Unable to display preview. Download preview PDF.
- Bell, C.G., and Newell, A., Computer Structures, McGraw-Hill, New York (1971).Google Scholar
- Bensoussan, A., Clingen, C.T., and Daley, R.C., "The Multics virtual memory: concepts and design," CACM 15, 4 (May, 1972), pp. 308–318.Google Scholar
- Bratt, R.G., "Minimizing the Naming Facilities Requiring Protection in a Computing Utility," S.M. Thesis, M.I.T. Dep't of Elec. Eng. and Comp. Sci. (Sept., 1976). (Also available as M.I.T. Lab. for Comp. Sci. Technical Report TR-156.)Google Scholar
- Carlson, W.E., and Crocker, S.D., "The impact of networks on the (E) software marketplace," Proc. IEEE Electronics and Aerospace Convention (EASCON 1974), pp. 304–308.Google Scholar
- Clingen, C.T., "Program naming problems in a shared tree-structured hierarchy," NATO Science Committee Conference on Techniques in Software Engineering 1, Rome (October 27, 1969).Google Scholar
- CODASYL (Anonymous), Data Base Task Group Report, Association for Computing Machinery, New York (1971).Google Scholar
- Crisman, P., Ed., The Compatible Time-Sharing System: A Programmer's Guide, 2nd ed., M.I.T. Press, Cambridge (1965).Google Scholar
- Daley, R.C., and Dennis, J.B., "Virtual memory, processes, and sharing in Multics," CACM 11, 5 (May, 1968), pp. 306–312.Google Scholar
- Dennis, J.B., "Segmentation and the design of multiprogrammed computer systems," JACM 12, 4 (October, 1965), pp. 589–602.Google Scholar
- Fabry, R.S., "Capability-based addressing," CACM 17, 7 (July, 1974), pp. 403–412.Google Scholar
- Falkoff, A.D., and Iverson, K.E., APL\360: User's Manual. IBM Corporation, White Plains, New York (1968).Google Scholar
- Farber, D.J., et al., "The distributed computing system," Proc. 7th IEEE Computer Society Conf. (COMPCON 73), pp. 31–34.Google Scholar
- Fraser, A.G., "On the meaning of names in programming systems," CACM 14, 6 (June, 1971), pp. 409–416.Google Scholar
- Henderson, D.A., Jr., "The binding model: A semantic base for modular programming systems," Ph.D. thesis, M.I.T. Dep't of Elec. Eng. and Comp. Sci. (February, 1975). (Also available as M.I.T. Project MAC Technical Report TR-145.)Google Scholar
- Henderson, P., and Morris, J.H., "A Lazy Evaluator," Proc. 3rd ACM Symposium on Principles of Programming Languages, (January, 1976), pp. 95–103.Google Scholar
- Holt, A., "Program organization and record keeping for dynamic storage allocation," CACM 4, 10 (Oct., 1961), pp. 422–431.Google Scholar
- IBM (Anonymous) Reference Manual: 709/7090 FORTRAN Operations. IBM Corporation, White Plains, New York (1961). C28-6066Google Scholar
- Iliffe, J., and Jodeit, "A dynamic storage allocation scheme," Computer Journal 5, (Oct., 1962), pp. 200–209.Google Scholar
- Janson, P.A., "Removing the Dynamic Linker from the Security Kernel of a Computing Utility," S.M. Thesis, M.I.T. Dep't of Elec. Eng. and Comp. Sci. (June, 1974). (Also available as M.I.T. Project MAC Technical Report TR-132.)Google Scholar
- Janson, P.A., "Using type extension to organize virtual memory mechanisms," Ph.D. Thesis, M.I.T. Dep't of Elec. Eng. and Comp. Sci. (Sept., 1976). (Also available as M.I.T. Lab. for Comp. Sci. Technical Report TR-167.)Google Scholar
- Kilburn, et al.. "One-Level Storage System," IRE Trans. on Elec. Computers EC-11, 2 (April, 1962), pp. 223–235.Google Scholar
- Knuth, D., The Art of Computer Programming, Volume 1/Fundamental Algorithms, Addison Wesley, Reading, Mass. (1968), Chapter 2.Google Scholar
- Lampson, B.W., and Sturgis, H.E., "Reflections on an operating system design," CACM 19, 5 (May, 1976), pp. 251–265.Google Scholar
- Moses, J., "The function of FUNCTION in LISP," SIGSAM Bulletin (July, 1970), pp. 13–27.Google Scholar
- Murphy, D.L., "Storage organization and management in TENEX," AFIPS Conf. Proc. 41 I (FJCC, 1972), pp. 23–32.Google Scholar
- Needham, R., "Protection systems and protection implementation," AFIPS Conf. Proc. 41 I (FJCC, 1972), pp. 571–578.Google Scholar
- Needham, R.M., and Birrell, A.D., "The CAP filing system," Proc. 6th ACM Symposium on Operating Systems Principles (November, 1977), pp. 11–16.Google Scholar
- Organick, E.I., The Multics System: an Examination of its Structure, M.I.T. Press, Cambridge (1972).Google Scholar
- Organick, E.I., Computer System Organization, The B5700/B6700 Series, Academic Press, New York (1973).Google Scholar
- Radin, G., and Schneider, P.R., "An architecture for an extended machine with protected addressing," IBM Poughkeepsie Lab Technical Report TR 00.2757 (May, 1976).Google Scholar
- Redell, D.D., "Naming and protection in extendible operating systems," Ph.D. Thesis, Univ. of Cal. at Berkeley, (Sept., 1974). (Also available as M.I.T. Project MAC Technical Report TR-140.)Google Scholar
- Ritchie, D.M., and Thompson, K., "The UNIX time-sharing system," CACM 17, 7 (July, 1974), pp. 365–375.Google Scholar
- Schroeder, M.D., and Saltzer, J.H., "A hardware architecture for implementing protection rings," CACM 15, 3 (Mar., 1972), pp. 157–170.Google Scholar
- Thomas, R.H., "A resource sharing executive for the ARPANET," AFIPS Conf. Proc. 42 (1973 NCC), pp. 159–163.Google Scholar
- Watson, R.W., Timesharing System Design Concepts, McGraw-Hill New York (1974).Google Scholar
- Wulf, W., et al., "HYDRA: The kernel of a multiprocessor operating system," CACM 17, 6 (June, 1974), pp. 337–345.Google Scholar