आईडीएल (प्रोग्रामिंग लैंग्वेज)
Paradigm | ऐरे प्रोग्रामिंग वेक्टर उन्मुख प्रोग्रामिंग |
---|---|
द्वारा डिज़ाइन किया गया | डेविड स्टर्न |
Developer | डेविड स्टर्न और आईटीटी विजुअल इंफॉर्मेशन सॉल्यूशंस (आईटीटी विस) |
पहली प्रस्तुति | 1977 |
Stable release | IDL 8.9
/ मई 3, 2023 |
टाइपिंग अनुशासन | गतिशील टाइपिंग |
Major implementations | |
आईडीएल, जीएनयू डेटा लैंग्वेज, फॉल्टी लैंग्वेज |
आईडीएल, इंटरएक्टिव डेटा लैंग्वेज के लिए संक्षिप्त, एक प्रोग्रामिंग भाषा है। जिसका उपयोग डेटा विश्लेषण के लिए किया जाता है। यह विज्ञान के विशेष क्षेत्रों में अत्यधिक प्रचलित है, जैसे कि खगोल विज्ञान, वायुमंडलीय भौतिकी और चिकित्सा इमेजिंग।[citation needed] आईडीएल पीवी-वेव के साथ एक सामान्य सिंटेक्स (प्रोग्रामिंग भाषाएं) करता है और उसी कोडबेस से उत्पन्न होता है। चूंकि इसके बाद में भाषाओं में विस्तार से परिवर्तन आया है। जीएनयू डेटा भाषा (जीडीएल) और दोषपूर्ण भाषा (एफएल) जैसे फ्री सॉफ्टवेयर या फ्रीवेयर कार्यान्वयन भी इसके साथ सम्मिलित किया गया हैं।
अवलोकन
आईडीएल ऐरे प्रोग्रामिंग, संख्यात्मक विश्लेषण और इंटरएक्टिव है और सामान्यतः बड़ी मात्रा में डेटा ( इमेज प्रोसेसिंग सहित) के इंटरेक्टिव प्रोसेसिंग के लिए उपयोग किया जाता है। सिंटैक्स में फोरट्रान से कई निर्माण और सी (प्रोग्रामिंग भाषा) से कुछ सम्मिलित किये गये हैं।
आईडीएल का प्रारम्भ, प्रारम्भिक ओपेन वीएमएस फोरट्रान से हुई थी और इसका सिंटैक्स इस समय भी इसके पूर्व समय को प्रदर्शित करता है:
x = findgen(100)/10
y = sin(x)/x
plot,x,y
findgen}en उपरोक्त उदाहरण में फ़ंक्शन फ़्लोटिंग पॉइंट नंबरों की एक-आयामी सरणी देता है, जिसमें 0 से शुरू होने वाली पूर्णांक की श्रृंखला के बराबर मान होते हैं।
ध्यान देने योग्य विषय यह है कि दूसरी पंक्ति में ऑपरेशन पहली पंक्ति में बनाए गए पूरे 100-तत्व सरणी के लिए सदिश प्रकार से संचालित किया जाता है, सामान्य उद्देश्य सरणी प्रोग्रामिंग भाषाओं (जैसे एपीएल प्रोग्रामिंग भाषा, J प्रोग्रामिंग भाषा या K प्रोग्रामिंग भाषा) के । इस उदाहरण में शून्य से विभाजन है। आईडीएल एक अंकगणितीय अतिप्रवाह की रिपोर्ट करेगा और y सरणी (पहले वाले) के संबंधित तत्व में एक NaN मान संग्रहीत करेगा, किन्तु अन्य सरणी तत्व परिमित होंगे। NaN को इसके plot कमांड के द्वारा उत्पन्न विज़ुअलाइज़ेशन से बाहर रखा गया है।
अधिकांश अन्य सरणी प्रोग्रामिंग भाषाओं के साथ, आईडीएल वेक्टर संचालन करने में बहुत तेज़ है (कभी-कभी फोरट्रान या सी में एक अच्छी प्रकार से कोडित कस्टम लूप के रूप में तेज़) किन्तु यदि तत्वों को प्रसंस्करण की आवश्यकता होती है, जिससे अधिक धीमी होती है। इसलिए संख्यात्मक रूप से भारी संगणनाओं के लिए आईडीएल (या उस स्थिति के लिए किसी अन्य सरणी प्रोग्रामिंग भाषा) का उपयोग करने की कला का एक भाग अंतर्निहित वेक्टर संचालन का उपयोग करना है।
इतिहास
आईडीएल के पूर्ववर्ती संस्करणों को 1970 के दशक में बोल्डर में कोलोराडो विश्वविद्यालय में वायुमंडलीय और अंतरिक्ष भौतिकी (एलएएसपी) की प्रयोगशाला में आविष्कार किया गया था। एलएएसपी में, डेविड स्टर्न वैज्ञानिकों को व्यक्तिगत अनुप्रयोगों को लिखने या संशोधित करने के लिए प्रोग्रामर को नियोजित किए बिना परिकल्पनाओं का परीक्षण करने की स्वीकृति देने के प्रयासों में सम्मिलित किये गये थे। आईडीएल की विकासवादी श्रृंखला में प्रथम प्रोग्राम जिसे स्टर्न ने विकसित किया था, उसका नाम रूफस रखा गया था। यह एक साधारण वेक्टर-ओरिएन्टेड कैलकुलेटर था, जो पीडीपी-12 पर प्रयोग किया जाता था। यह दो-अक्षर के कोड को स्वीकार करता है, जो कि एक अंकगणितीय ऑपरेशन निर्दिष्ट करता है। ऑपरेंड के रूप में सर्विस करने के लिए इनपुट रजिस्टर और गंतव्य रजिस्टर। पीडीपी-8 पर विकसित रूफस का एक संस्करण मार्स मेरिनर स्पेक्ट्रम एडिटर (एमएमईडी) था। एलएएसपी वैज्ञानिकों द्वारा मेरिनर 7 और मेरिनर 9 से डेटा की व्याख्या करने के लिए एमएमईडी का उपयोग किया गया था। बाद में स्टर्न ने एसओएल नामक एक कार्यक्रम लिखा, जो पीडीपी-8 पर भी प्रयोग किया गया। अपने पूर्ववर्तियों के विपरीत, यह फोरट्रान-जैसे सिंटैक्स के साथ एक ट्रू प्रोग्रामिंग भाषा थी। एसओएल कुछ पुराने ग्राफिक्स क्षमताओं के साथ एक ऐरे-ओरिएन्टेड भाषा थी।[1]
स्टर्न ने 1977 में एलएएसपी को त्यागकर रिसर्च सिस्टम्स इंक. (आरएसआई) की स्थापना की। प्रथम आरएसआई उत्पाद पीपीडी-11 के लिए आईडीएल था।[1] इस रिलीज में, आईडीएल द्वारा समर्थित ग्राफिक्स मुख्य रूप से टेक्ट्रोनिक्स टर्मिनल और रास्टर ग्राफिक्स डिस्प्ले किये गये थे। आरएसआई ने अपना प्रथम आईडीएल लाइसेंस नासा के गोडार्ड अंतरिक्ष उड़ान केंद्र और बॉल एयरोस्पेस एंड टेक्नोलॉजीज कार्पोरेशन को 1979 में बेचा। दो साल बाद आरएसआई ने आईडीएल का एक प्रारंभिक वीएएक्स/वीएमएस संस्करण को नियमित करते हुए संचालित किया। जिसे वैक्स मैक्रो और फोर्टरॉन में लिखा गया था। इसने वैक्स वर्चुअल मेमोरी और 32-बिट एड्रेस स्पेस का लाभ प्राप्त किया।[1] वायुमंडलीय अनुसंधान के लिए राष्ट्रीय केंद्र (एनसीएआर), मिशिगन विश्वविद्यालय, बोल्डर में कोलोराडो विश्वविद्यालय और नौसेना अनुसंधान प्रयोगशाला ने इस संस्करण के साथ आईडीएल का उपयोग करना प्रारम्भ कर दिया था।
1987 में आरएसआई ने आईडीएल के विकास कार्य को यूनिक्स इनवायरमेन्ट में स्थानांतरित कर दिया। जिसके लिए वैक्स आईडीएल के उपस्थित संस्करण के पोर्ट के स्थान पर C में कोड को पुनः लिखने की आवश्यकता थी।[1] स्टर्न और अली बहरामी ने सन 3 पर यूनिक्स के लिए आईडीएल को पुनः लिखा, भाषा को बढ़ाने और सुधारने के लिए पुनः लिखने का लाभ प्राप्त किया। इसके पश्चात आईडीएल को विस्तारित किया गया और यूनिक्स, वीएमएस, लिनक्स, माइक्रोसॉफ्ट विंडोज (1992) और मैक ओएस (1994) के कई रूपों में परिवर्तित किया गया।
1992 में आईडीएल में विजेट्स जोड़े गए, जो ग्राफिकल यूज़र इंटरफ़ेस के साथ घटना-संचालित प्रोग्रामिंग प्रदान करते हैं। 1997 में आईओएन (आईडीएल ऑन द नेट), एक वेब सर्वर-आधारित प्रणाली, व्यावसायिक रूप से संचालित की गई थी। ईएनवीआई (सॉफ्टवेयर) का प्रथम संस्करण, रिमोट सेंसिंग मल्टीस्पेक्ट्रल और हाइपरस्पेक्ट्रल इमेज विश्लेषण के लिए आईडीएल में लिखा गया एक एप्लिकेशन 1994 में संचालित किया गया था। ईएनवीआई (सॉफ्टवेयर) बेटर सॉल्यूशंस कंसल्टिंग, एलएलसी द्वारा बनाया, विकसित और स्वामित्व में था, जब तक कि इसे आयात नहीं गया था। ईस्टमैन कोडक द्वारा अक्टूबर 2000 में बीएससी अकस्मात उनकी आरएसआई की आयात के साथ हुई। आरएसआई ने 1994 से अक्टूबर 2000 तक बीएससी, एलएलसी के साथ लाइसेंस समझौते ईएनवीआई (सॉफ्टवेयर) को बेचा, विपणन और समर्थन किया। 1997 में आईडीएल में नई वस्तु और सूचक प्रकार और सीमित वस्तु-उन्मुख प्रोग्रामिंग क्षमताएं जोड़ी गईं।
आईडीएल को व्यापक रूप से अंतरिक्ष विज्ञान में लागू किया गया है, उदाहरण के लिए solarsoft में। यूरोपीय अंतरिक्ष एजेंसी ने Giotto (अंतरिक्ष यान) अंतरिक्ष यान द्वारा लिए गए हैली के धूमकेतु के लगभग सभी चित्रों को संसाधित करने के लिए आईडीएल का उपयोग किया। हबल अंतरिक्ष सूक्ष्मदर्शी की मरम्मत करने वाली टीम ने मुख्य दर्पण में विसंगतियों का निदान करने में सहायता के लिए आईडीएल का उपयोग किया। 1995 में, एक अंतरिक्ष यान पर सवार अंतरिक्ष यात्रियों ने पराबैंगनी विकिरण का अध्ययन करने के लिए लैपटॉप पर लोड किए गए आईडीएल का उपयोग किया। वर्तमान में, अन्य अनुप्रयोगों के बीच, आईडीएल का उपयोग संयुक्त राज्य नौसेना अनुसंधान प्रयोगशाला, यूएसए और रदरफोर्ड एपलटन लेबोरेटरी, यूके में STEREO मिशन के SECCHI भाग के अधिकांश विश्लेषण के लिए किया जा रहा है।
आरएसआई मार्च 2004 में आईटीटी उद्योग की पूर्ण स्वामित्व वाली सहायक कंपनी बन गई। 15 मई 2006 तक, आरएसआई ने ITT Visual Information Solutions के रूप में व्यवसाय करना शुरू कर दिया। प्रभावी 31 अक्टूबर 2011, पुनर्गठन के परिणामस्वरूप, वह कंपनी एक्सेलिस दृश्य सूचना समाधान बन गई। As of 2015[update], आईडीएल का स्वामित्व और रख-रखाव हैरिस भू-स्थानिक के पास है।
विशेषताएं
कंप्यूटर भाषा के रूप में, आईडीएल:
- गतिशील रूप से टाइप किया गया है।
- चर, कार्यों और प्रक्रियाओं के लिए अलग-अलग नामस्थान हैं, किन्तु कोई नामस्थान पदानुक्रम नहीं है।
- मूल रूप से सिंगल थ्रेडेड था किन्तु अब इसमें कई मल्टी-थ्रेडेड फ़ंक्शन और प्रक्रियाएं हैं।
- सभी कार्य तर्क हैं मूल्यांकन रणनीति # संदर्भ द्वारा कॉल करें; किन्तु समस्याओं को नीचे देखें।
- में नामित पैरामीटर हैं जिन्हें कीवर्ड कहा जाता है जो संदर्भ द्वारा पारित किए जाते हैं।
- संदर्भ या मान द्वारा नेस्टेड रूटीन कॉल में नामित पैरामीटर इनहेरिटेंस प्रदान करता है।
- चर को पूर्व घोषित करने की आवश्यकता नहीं है।
- दिनचर्या के बीच वैश्विक मूल्यों को साझा करने के लिए सामान्य ब्लॉक घोषणाएं और सिस्टम चर प्रदान करता है।
- ऑपरेटर ओवरलोडिंग के साथ-साथ ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का एक मूल रूप प्रदान करता है, जो कुछ हद तक स्मॉलटाक के समान है।
- कचरा संग्रह के लिए संदर्भ गणना का उपयोग करते हुए, सूचक और वस्तु चर के एक सतत, वैश्विक ढेर को लागू करता है।
- एक व्याख्या किए गए, स्टैक-आधारित इंटरमीडिएट पी-कोड (ए ला जावा वर्चुअल मशीन) के लिए संकलित करता है।
- बड़े सरणियों से डेटा निकालने के लिए एक सरल और कुशल इंडेक्स स्लाइस सिंटैक्स प्रदान करता है।
- विभिन्न पूर्णांक आकार, साथ ही सिंगल और डबल सटीक फ़्लोटिंग पॉइंट वास्तविक और जटिल संख्याएँ प्रदान करता है।
- संयुक्त डेटा प्रकार प्रदान करता है जैसे कि वर्ण तार, सजातीय प्रकार की सरणियाँ, सूचियाँ, हैश तालिकाएँ, और मिश्रित डेटा प्रकारों की सरल (गैर-श्रेणीबद्ध) रिकॉर्ड संरचनाएँ।
समस्याएं
This section possibly contains original research. (August 2014) (Learn how and when to remove this template message) |
इन सुविधाओं में से कुछ, जो आईडीएल को अंतःक्रियात्मक रूप से उपयोग करने के लिए बहुत आसान बनाती हैं, बड़े कार्यक्रमों के निर्माण के दौरान भी कठिनाइयों का कारण बनती हैं। एकल नामस्थान विशेष रूप से समस्याग्रस्त है; उदाहरण के लिए, नए अंतर्निर्मित कार्यों को सम्मिलित करने वाले भाषा अद्यतनों ने कभी-कभी बड़े वैज्ञानिक पुस्तकालयों को अमान्य कर दिया है।[2] सरणियों को संदर्भ द्वारा पारित किया जाता है, और यह तंत्र एक उपनेमका से डेटा वापस पास करने के लिए भाषा की एक विज्ञापित विशेषता है - इसके विपरीत, सरणी स्लाइस को पारित होने से पहले कॉपी किया जाता है, ताकि डेटा संशोधन वापस सरणी श्रेणियों में प्रवाहित न हों (बाद में) सबरूटीन बाहर निकलता है), कम से कम आश्चर्य के सिद्धांत का उल्लंघन करता है।
कई ऐतिहासिक अनियमितताएं भाषा की प्रारंभिक विरासत से बची हुई हैं, जिसके लिए प्रोग्रामर द्वारा अलग-अलग वर्कअराउंड की आवश्यकता होती है। उदहारण के लिए:
- ऐरे इंडेक्सिंग और सबरूटीन एंट्री दोनों को बिल्कुल एक ही सिंटैक्स (कोष्ठक) के साथ किया जा सकता है; यह अस्पष्टता, सभी वेरिएबल्स और सबरूटीन्स के लिए एकल नामस्थान के साथ मिलकर, कोड को काम करना बंद कर सकती है जब नए परिभाषित सबरूटीन्स या भाषा एक्सटेंशन स्थानीय चर नामों के साथ संघर्ष करते हैं। आईडीएल प्रोग्रामर एरे इंडेक्सिंग के लिए स्क्वायर ब्रैकेट्स का उपयोग करके इनमें से कई समस्याओं से बच सकते हैं, जिससे फंक्शन नामों के साथ टकराव से बचा जा सकता है जो कोष्ठक का उपयोग करते हैं।
इस संकलक विकल्प का उपयोग करके पूर्ववर्ती समस्या को कम किया जा सकता है:
COMPILE_OPT STRICTARR
- ITT विज़ुअल इंफॉर्मेशन सॉल्यूशंस | ITT विज़ुअल इंफॉर्मेशन सॉल्यूशंस (ITT VIS), आईडीएल के डेवलपर्स, ने अन्य वातावरणों के साथ बाईटकोड संगतता को रोकने के लिए स्पष्ट कदम उठाए हैं। संकलित रूटीन वाली फ़ाइलें एक बाइनरी टैग-डेटा-संरचना प्रारूप का उपयोग करती हैं जिसे आधिकारिक तौर पर प्रकाशित नहीं किया गया है किन्तु उपयोगकर्ताओं द्वारा इसकी जांच और दस्तावेज किया गया है[3] किन्तु प्रत्येक सहेजी गई फ़ाइल के भीतर एम्बेडेड ASCII पाठ के रूप में निम्नलिखित सूचना भी सम्मिलित है: आईडीएल सहेजें/पुनर्स्थापना फ़ाइलें आईडीएल प्रोग्राम के बारे में अप्रकाशित स्वामित्व वाली जानकारी का प्रतीक हैं। इसलिए इस फाइल की रिवर्स इंजीनियरिंग आईडीएल एंड यूजर लाइसेंस एग्रीमेंट (आईडीएल ईयूएलए) की शर्तों के तहत प्रतिबंधित है। सभी आईडीएल उपयोगकर्ताओं को आईडीएल स्थापित करते समय आईडीएल EULA की शर्तों को पढ़ना और उनसे सहमत होना आवश्यक है। आईडीएल सहेजें/पुनर्स्थापना प्रारूप में फ़ाइलों को पढ़ने या लिखने वाले सॉफ़्टवेयर के पास ITT Visual Information Solutions का लाइसेंस होना चाहिए जो स्पष्ट रूप से ऐसा करने का अधिकार प्रदान करता हो। इस मामले में, आपके निरीक्षण के लिए लाइसेंस को सॉफ्टवेयर के साथ सम्मिलित किया जाएगा। कृपया आईटीटी विज़ुअल इंफॉर्मेशन सॉल्यूशंस को ऐसे सॉफ़्टवेयर की रिपोर्ट करें जिसके पास ऐसा लाइसेंस नहीं है... As of February 2010[update], कथन का न्यायालय में परीक्षण नहीं किया गया है।
साथ ही, धारा 47D और [http] के परिणामस्वरूप ऑस्ट्रेलिया में आईडीएल EULA के उस प्रावधान का कोई प्रभाव नहीं है उस देश के कॉपीराइट अधिनियम का ://www.austlii.edu.au/au/legis/cth/consol_act/ca1968133/s47h.html 47H]।
उदाहरण
निम्नलिखित ग्राफिक्स आईडीएल (स्रोत कोड सम्मिलित ) के साथ बनाए गए थे:
- [[:Image:Random-data-plus-trend-r2.png|रैंडम डेटा प्लस ट्रेंड की इमेज, बेस्ट-फिट लाइन और अलग-अलग स्मूथिंग के साथ
- [[:Image:Epica-vostok-40kyr.png|उम्र और गहराई के खिलाफ डेल्टा-ओ-18 के भूखंड (ईपिका और वोस्तोक से)
- कोयोट आईडीएल गैलरी आईडीएल इमेजिंग के उदाहरण
यह भी देखें
* संख्यात्मक-विश्लेषण सॉफ्टवेयर की सूची * ईएनवीआई (सॉफ्टवेयर) - आईडीएल में निर्मित एक इमेज प्रोसेसिंग सॉफ्टवेयर पैकेज * IRAF - NOAO द्वारा निर्मित एक मुक्त, चित्रमय डेटा कटौती वातावरण
- MATLAB - आईडीएल के समान क्षमता प्रदान करने वाला एक तकनीकी कंप्यूटिंग वातावरण
* NumPy - Python (प्रोग्रामिंग भाषा) के लिए एक एक्सटेंशन जो इसे आईडीएल के समान सरणी गणित क्षमताएं देता है * [[पर्ल डेटा लैंग्वेज]] (पीडीएल) - पर्ल का एक विस्तार जो इसे आईडीएल के समान सरणी गणित क्षमताएं देता है
- साइलैब - एक उच्च-स्तरीय, संख्यात्मक रूप से उन्मुख प्रोग्रामिंग भाषा जिसे वैज्ञानिक कंप्यूटिंग और इंटरफेस के लिए डिज़ाइन किया गया है
- Solarsoft - आईडीएल में मुख्य रूप से लिखे गए सौर डेटा विश्लेषण और अंतरिक्ष यान संचालन गतिविधियों के लिए पुस्तकालय
- GNU डेटा लैंग्वेज - GNU डेटा लैंग्वेज, आईडीएल के समान एक निःशुल्क कार्यान्वयन।
- फॉल्टी लैंग्वेज - फॉल्टी लैंग्वेज एक आईडीएल8 (इंटरएक्टिव डेटा लैंग्वेज) संगत कंपाइलर है।
संदर्भ
- ↑ 1.0 1.1 1.2 1.3 Schienle, Mike (1991-01-19). "आईडीएल अक्सर पूछे जाने वाले प्रश्न". Retrieved 8 February 2019.
- ↑ Fanning, David. "Program Naming Conflicts in IDL 8". Archived from the original on 6 March 2014. Retrieved 30 September 2014.
- ↑ Markwardt, Craig (2011-12-21). "Unofficial Format Specification of the IDL "SAVE" File". Retrieved 2013-02-13.