Name resolution definition
Name resolution is the process of linking identifiers with actual program components they represent. This process is used in programming languages to determine the meaning of a name or identifier within a program or system. Name resolution involves finding the definition of a name and linking it with the correct value.
See also: DNS resolution, SQL injection
How name resolution works
Name resolution is a complex process with many modules. The names for resolution are typically stored in lookup tables. The naming aims to provide a shorthand reference for coded material. Name resolution may be used to call a variable, function, or other components from the location where these names are stored.
The process of name resolution typically involves these steps:
- Scoping. The programming language determines the scope of the name.
- Binding. The language binds the name to the definition within the scope. This part of the process may involve looking up the name in a symbol table or other structure designed to associate names with their definitions.
- Type checking. The language checks that the name is used correctly based on its type. For example, an integer variable can’t be used in an operation that expects a string.
- Optimization. The programming language performs optimizations based on the resolved names. For example, it may replace a function call with its definition if the function is small enough.