Veri açıklayıcısı - Data descriptor

Olarak bilgisayar , bir veri tanımlayıcı verileri tanımlayan bir yapı ihtiva eden bir bilgidir.

Veri tanımlayıcıları kullanılabilecek derleyici gibi dillerde çalışma zamanında bir yazılım yapısı olarak, Ada veya PL / I veya bazı bilgisayarlarda bir donanım yapısı gibi olarak Burroughs büyük sistemler .

Veri tanımlayıcıları tipik olarak adlandırılan argüman bilgi geçirmek için çalışma zamanında kullanılır subroutinler . HP OpenVMS ve Multics argüman tanımlayıcı için sistem genelinde dilden bağımsız standartlara sahip. Tanımlayıcılar, aynı zamanda, bir şekilde sadece tam çalışma zamanında bilinen veriler, ilgili bilgileri saklamak için kullanılan dinamik olarak tahsis edilmiş bir dizi .

Bir aksine uyuşturucu vektörü , bir veri tanımlayıcı adres bilgilerini içermiyor.

Örnekler

IBM tarafından kullanılan aşağıdaki açıklayıcı Şirket PL / I bir tanımlamak için karakter dizesini :

      +--------+--------+--------+--------+
      |  desc  | string |        | flags  |
      |  type  |  type  | (res)  |        |
      +--------+--------+--------+--------+
      |       maximum string length       |
      |                                   |
      +--------+--------+--------+--------+
 byte         0        1        2        3
  • 'Azalan türü', bu bir eleman tanımlayıcı yerine bir dizi veya yapı tanımlayıcısı olduğunu gösterir 2'dir.
  • 'Dize türü' Bu uzunluğu değişen veya olmayan değişen bir karakter veya biraz dize olduğunu gösterir. 2, bir sigara olarak değiştirilmesi, (sabit uzunluklu) karakter dizisini gösterir.
  • '(Res)' karakteri dizeleri için kullanılmaz ayrılmış bir bayt olduğunu.
  • 'bayraklar' dizesi, kodlamasını belirtmek EBCDIC veya ASCII ve değişen dizeleri uzunluğunun kodlama.
  • 'Maksimum dizi uzunluğu' sigara değişen dizeleri dize gerçek uzunluğu veya değişen dizeleri için maksimum uzunluğudur.

İşte bir kaynağı olan dizi Multics gelen tanımlayıcısı. Tanımlar baz dizi bilgileri için bir yapı ve her boyut için bir yapı içerir. (Multics 36 bitlik kelimelerle sistemlerde ran).

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;

Ayrıca bakınız

Referanslar