Writing Real Programs in DCL, Second Edition

A LOGICAL NAME IS A NAMED ENTITY that you can create and assign a value. The name then stands for the value when the logical name is used in certain contexts, such as file specifications. In these contexts, OpenVMS automatically replaces the logical name with its value. A logical name may appear to be the same as a symbol, but there are important differences:
Logical names are created, maintained, and deleted using a different set of OpenVMS commands from those used for symbols.
Logical names reside in logical name tables. A given logical name table can be made available to a single process, a family of processes, or every process on the system. In this way, unlike symbols, logical names can be shared by multiple processes.
When a logical name appears in an appropriate context, such as a file spec, OpenVMS uses its value automatically. This differs from apostrophe substitution, which must be requested explicitly, although it is similar to personal command substitution.
Symbols are implemented within the DCL command interpreter and can be substituted only when the command is processed by DCL, and not within the prompts of a utility. Logical names can be used within utility prompts, and within processes that do not have a command interpreter (such as DCL) loaded.
The most common use for a logical name is to stand for part or all of a file spec. For example, the logical name SYS$HELP stands for the system device and directory...