In computing, a data descriptor is a structure containing information that describes data.
Data descriptors may be used in compilers, as a software structure at run time in languages like Ada or PL/I, or as a hardware structure in some computers such as Burroughs large systems.
Data descriptors are typically used at run-time to pass argument information to called subroutines. HP OpenVMS and Multics have system-wide language-independent standards for argument descriptors. Descriptors are also used to hold information about data that is only fully known at run-time, such as a dynamically allocated array.
Unlike a dope vector, a data descriptor does not contain address information.
The following descriptor is used by IBM Enterprise PL/I to describe a character string:
Here is the source of an array descriptor from Multics. The definitions include a structure for the base array information and a structure for each dimension. (Multics ran on systems with 36-bit words).