词条 | Data descriptor |
释义 |
In computing, a data descriptor is a structure containing information that describes data. Data descriptors may be used in compilers,[1] as a software structure at run time in languages like Ada[2] 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[3] and Multics[4] 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. ExamplesThe following descriptor is used by IBM Enterprise PL/I to describe a character string:[5] +--------+--------+--------+--------+ | desc | string | | flags | | type | type | (res) | | +--------+--------+--------+--------+ | maximum string length | | | +--------+--------+--------+--------+ byte 0 1 2 3
Here is the source of an array descriptor from Multics.[6] The definitions include a structure for the base array information and a structure for each dimension. (Multics ran on systems with 36-bit words). dcl 1 array based aligned, 2 node_type bit(9) unaligned, 2 reserved bit(34) unaligned, 2 number_of_dimensions fixed(7) unaligned, 2 own_number_of_dimensions fixed(7) unaligned, 2 element_boundary fixed(3) unaligned, 2 size_units fixed(3) unaligned, 2 offset_units fixed(3) unaligned, 2 interleaved bit(1) unaligned, 2 c_element_size fixed(24), 2 c_element_size_bits fixed(24), 2 c_virtual_origin fixed(24), 2 element_size ptr unaligned, 2 element_size_bits ptr unaligned, 2 virtual_origin ptr unaligned, 2 symtab_virtual_origin ptr unaligned, 2 symtab_element_size ptr unaligned, 2 bounds ptr unaligned, 2 element_descriptor ptr unaligned;dcl 1 bound based aligned, 2 node_type bit(9), 2 c_lower fixed(24), 2 c_upper fixed(24), 2 c_multiplier fixed(24), 2 c_desc_multiplier fixed(24), 2 lower ptr unaligned, 2 upper ptr unaligned, 2 multiplier ptr unaligned, 2 desc_multiplier ptr unaligned, 2 symtab_lower ptr unaligned, 2 symtab_upper ptr unaligned, 2 symtab_multiplier ptr unaligned, 2 next ptr unaligned; See also
References1. ^{{cite journal |last=Holt |first=Richard C. |date=July 1987 |title=Data descriptors: a compile-time model of data and addressing |journal=ACM Transactions on Programming Languages and Systems |doi=10.1145/24039.24051 |volume=9 |issue=3 |pages=367–389}} {{compu-prog-stub}}2. ^{{cite web |last=Schonberg |first=Ed |title=Ada Compared with C++ |work=The Advantages of Ada 95 |url=http://archive.adaic.com/intro/ada-vs-c/ada-vs-c.html |accessdate=January 15, 2013 |deadurl=yes |archiveurl=https://web.archive.org/web/20120916010747/http://archive.adaic.com/intro/ada-vs-c/ada-vs-c.html |archivedate=September 16, 2012 |df= }} 3. ^{{cite web |author=Hewlett-Packard |title=Chapter 7 OpenVMS Argument Descriptors |work=HP OpenVMS Systems Documentation |url=http://h71000.www7.hp.com/doc/82final/5973/5973pro_019.html#arg_desc_formats_chap |accessdate=January 15, 2013}} 4. ^{{cite book |author=Honeywell, Inc. |date=1979 |title=Multics Programmers' Manual – Subsystem Writers' Guide |pages=2–13-2–18 |url=http://bitsavers.informatik.uni-stuttgart.de/pdf/honeywell/multics/AK92-2_MPM_SubsysWrtGud_Mar79.pdf |format=PDF}} 5. ^{{cite book |author=IBM Corporation |date=2006|title=Enterprise PL/I for z/OSProgramming Guide |pages=385 |url=http://pic.dhe.ibm.com/infocenter/pdthelp/v1r1/topic/com.ibm.entpli.doc_3.6/ibm3pg50.pdf |format=PDF}} 6. ^{{cite web |author=MIT/Honeywell |title=array.incl.pl1 |work=Multics/ldd/include |url=http://web.mit.edu/multics-history/source/Multics/ldd/include/array.incl.pl1 |accessdate=January 20, 2012}} 2 : Data structures by computing platform|Programming language implementation |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。