डेटा डिस्क्रिप्टर

From Vigyanwiki

कम्प्यूटिंग में, डेटा डिस्क्रिप्टर एक संरचना होती है जो डेटा को वर्णित करने वाली जानकारी सम्मलित करती है।

डेटा डिस्क्रिप्टर का उपयोग संकलक में किया जा सकता है,[1] Ada (प्रोग्रामिंग भाषा) जैसी भाषाओं में रन टाइम पर एक सॉफ्टवेयर संरचना के रूप में[2] या PL/I, या कुछ कंप्यूटरों में हार्डवेयर संरचना के रूप में भी उपयोग किया जा सकता है जैसे बरोज़ लार्ज सिस्टम्स

डेटा डिस्क्रिप्टर सामान्यतः रनटाइम पर उपयोग किए जाते हैं, जिसे सबरूटीन्स को आर्गुमेंट जानकारी पास करनी होती है। HPओपन VMS [3] और मॉलटिक्स [4] तर्क वर्णनकर्ताओं के लिए प्रणाली-व्यापी भाषा-स्वतंत्र मानक होते हैं। डिस्क्रिप्टर उस डेटा के बारे में जानकारी को रखने के लिए भी उपयोग किए जाते हैं, जो कि रनटाइम पर पूर्ण प्रकार से जाना जाता है, जैसे डाइनामिक रूप से आवंटित एक ऐरे है।

उदाहरण

IBM एंटरप्राइज PL/I द्वारा एक चारित्र स्ट्रिंग (कंप्यूटर विज्ञान) को वर्णित करने के लिए निम्नलिखित डिस्क्रिप्टर का उपयोग किया जाता है:[5]

बाइट ऑफसेट +0 +1 +2 +3
0 वर्णनकर्ता प्रकार स्ट्रिंग प्रकार (रिज़र्व्ड) झंडे
4 अधिकतम स्ट्रिंग लंबाई
  • 'यह एक एलिमेंट डिस्क्रिप्टर है न कि एक ऐरे या स्ट्रक्चर डिस्क्रिप्टर होने के लिए 'डेस्क टाइप' 2 बताता है।
  • 'स्ट्रिंग टाइप' इसे एक चारित्र या बिट स्ट्रिंग को वर्णित करता है, जो वेयरिंग या नॉन वेयरिंग लंबाई के साथ हो सकता है। 2 एक नॉन वेयरिंग (फिक्स्ड-लेंथ) चारित्र स्ट्रिंग को दर्शाता है।
  • '(रिज़र्व्ड)' एक बाइट होता है जो चारित्र स्ट्रिंग्स के लिए उपयोग नहीं किया जाता है।
  • 'फ्लैग' स्ट्रिंग को, EBCDIC या एएससीआईआई, और अलग-अलग तारों की लंबाई के इंकोडिंग को दर्शाते हैं।
  • 'अधिकतम स्ट्रिंग लंबाई' अलग-अलग स्ट्रिंग्स के लिए स्ट्रिंग की वास्तविक लंबाई है, या अलग-अलग स्ट्रिंग्स के लिए अधिकतम लंबाई है।

यहाँ मल्टिक्स से एक ऐरे डेटा स्ट्रक्चर डिस्क्रिप्टर का स्रोत है।[6] रिभाषाएं आधार एरे जानकारी के लिए एक संरचना और प्रत्येक आयाम के लिए एक संरचना सम्मलित करती हैं। (मल्टिक्स 36-बिट वर्ड वाले सिस्टम पर चलता था)।

<पूर्व> dcl 1 सरणी आधारित संरेखित, 2 नोड_टाइप बिट (9) असंरेखित, 2 आरक्षित बिट(34) असंरेखित, 2 number_of_dimensions फिक्स्ड(7) असंरेखित, 2 अपने_संख्या_के_आयाम तय (7) असंरेखित, 2 तत्व_सीमा निश्चित (3) असंरेखित, 2 size_units फिक्स्ड(3) असंरेखित, 2 ऑफसेट_यूनिट तय (3) असंरेखित, 2 इंटरलीव्ड बिट (1) असंरेखित, 2 c_element_size फिक्स्ड (24), 2 c_element_size_bits निश्चित (24), 2 c_virtual_origin निश्चित (24), 2 एलिमेंट_साइज़ पीटीआर असंरेखित, 2 element_size_bits ptr असंरेखित, 2 virtual_origin ptr असंरेखित, 2 symtab_virtual_origin ptr असंरेखित, 2 symtab_element_size ptr असंरेखित, 2 सीमाएँ ptr असंरेखित, 2 एलिमेंट_डिस्क्रिप्टर पीटीआर असंरेखित;

dcl 1 बाउंड आधारित संरेखित, 2 नोड_टाइप बिट (9), 2 c_lower फिक्स्ड (24), 2 सी_अपर फिक्स्ड (24), 2 c_multiplier निश्चित (24), 2 c_desc_multiplier निश्चित (24), 2 निचला ptr असंरेखित, 2 ऊपरी ptr असंरेखित, 2 गुणक ptr असंरेखित, 2 desc_multiplier ptr असंरेखित, 2 symtab_lower ptr असंरेखित, 2 symtab_upper ptr असंरेखित, 2 symtab_multiplier ptr असंरेखित, 2 अगला ptr असंरेखित; </पूर्व>

यह भी देखें

संदर्भ

  1. Holt, Richard C. (July 1987). "Data descriptors: a compile-time model of data and addressing". ACM Transactions on Programming Languages and Systems. 9 (3): 367–389. doi:10.1145/24039.24051.
  2. Schonberg, Ed. "Ada की तुलना C++ से की गई है". The Advantages of Ada 95. Retrieved January 15, 2013.
  3. Hewlett-Packard. "Chapter 7 OpenVMS Argument Descriptors". HP OpenVMS Systems Documentation. Retrieved July 11, 2020.
  4. Honeywell, Inc. (1979). Multics Programmers' Manual – Subsystem Writers' Guide (PDF). pp. 2–13-2–18.
  5. IBM Corporation (2006). Enterprise PL/I for z/OSProgramming Guide (PDF). p. 385.
  6. MIT/Honeywell. "array.incl.pl1". Multics/ldd/include. Retrieved January 20, 2012.