<P> When a variable refers to a data structure created dynamically, some of its components may be only indirectly accessed through the variable . In such circumstances, garbage collectors (or analogous program features in languages that lack garbage collectors) must deal with a case where only a portion of the memory reachable from the variable needs to be reclaimed . </P> <P> Unlike their mathematical counterparts, programming variables and constants commonly take multiple - character names, e.g. COST or total . Single - character names are most commonly used only for auxiliary variables; for instance, i, j, k for array index variables . </P> <P> Some naming conventions are enforced at the language level as part of the language syntax which involves the format of valid identifiers . In almost all languages, variable names cannot start with a digit (0--9) and cannot contain whitespace characters . Whether or not punctuation marks are permitted in variable names varies from language to language; many languages only permit the underscore ("_") in variable names and forbid all other punctuation . In some programming languages, sigils (symbols or punctuation) are affixed to variable identifiers to indicate the variable's datatype or scope . </P> <P> Case - sensitivity of variable names also varies between languages and some languages require the use of a certain case in naming certain entities; Most modern languages are case - sensitive; some older languages are not . Some languages reserve certain forms of variable names for their own internal use; in many languages, names beginning with two underscores ("__") often fall under this category . </P>

In programming names for values are called variables