Skip to main content


Home Name resolution

Name resolution

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.