आईडीएल (प्रोग्रामिंग लैंग्वेज)

आईडीएल, इंटरएक्टिव डेटा लैंग्वेज के लिए संक्षिप्त, एक प्रोग्रामिंग भाषा है। जिसका उपयोग डेटा विश्लेषण के लिए किया जाता है। यह विज्ञान के विशेष क्षेत्रों में अत्यधिक प्रचलित है, जैसे कि खगोल विज्ञान, वायुमंडलीय भौतिकी और चिकित्सा इमेजिंग। आईडीएल पीवी-वेव के साथ एक सामान्य सिंटेक्स (प्रोग्रामिंग भाषाएं) करता है और उसी कोडबेस से उत्पन्न होता है। चूंकि इसके बाद में भाषाओं में विस्तार से परिवर्तन आया है। जीएनयू डेटा भाषा (जीडीएल) और त्रुटिपूर्ण भाषा (एफएल) जैसे फ्री सॉफ्टवेयर या फ्रीवेयर कार्यान्वयन भी इसके साथ सम्मिलित किया गया हैं।

अवलोकन
आईडीएल ऐरे प्रोग्रामिंग, संख्यात्मक विश्लेषण और इंटरएक्टिव है और सामान्यतः बड़ी मात्रा में डेटा ( इमेज प्रोसेसिंग सहित) के इंटरेक्टिव प्रोसेसिंग के लिए उपयोग किया जाता है। सिंटैक्स में फोरट्रान से कई निर्माण और सी (प्रोग्रामिंग भाषा) से कुछ सम्मिलित किये गये हैं।

आईडीएल का प्रारम्भ, प्रारम्भिक ओपेन वीएमएस फोरट्रान से हुई थी और इसका सिंटैक्स इस समय भी इसके पूर्व समय को प्रदर्शित करता है: {{mono|findgen}en}} उपरोक्त उदाहरण में फ़ंक्शन फ़्लोटिंग पॉइंट नंबरों की एक-आयामी सरणी देता है, जिसमें 0 से शुरू होने वाली पूर्णांक की श्रृंखला के बराबर मान होते हैं।

ध्यान देने योग्य विषय यह है कि दूसरी पंक्ति में ऑपरेशन पहली पंक्ति में बनाए गए पूरे 100-तत्व सरणी के लिए सदिश प्रकार से संचालित किया जाता है, सामान्य उद्देश्य सरणी प्रोग्रामिंग भाषाओं (जैसे एपीएल प्रोग्रामिंग भाषा, J प्रोग्रामिंग भाषा या K प्रोग्रामिंग भाषा) के । इस उदाहरण में शून्य से विभाजन है। आईडीएल एक अंकगणितीय अतिप्रवाह की रिपोर्ट करेगा और y सरणी (पहले वाले) के संबंधित तत्व में एक NaN मान संग्रहीत करेगा, किन्तु अन्य सरणी तत्व परिमित होंगे। NaN को इसके plot कमांड के द्वारा उत्पन्न विज़ुअलाइज़ेशन से बाहर रखा गया है।

अधिकांश अन्य सरणी प्रोग्रामिंग भाषाओं के साथ, आईडीएल वेक्टर संचालन करने में बहुत तेज़ है (कभी-कभी फोरट्रान या सी में एक अच्छी प्रकार से कोडित कस्टम लूप के रूप में तेज़) किन्तु यदि तत्वों को प्रसंस्करण की आवश्यकता होती है, जिससे अधिक धीमी होती है। इसलिए संख्यात्मक रूप से भारी संगणनाओं के लिए आईडीएल (या उस स्थिति के लिए किसी अन्य सरणी प्रोग्रामिंग भाषा) का उपयोग करने की कला का एक भाग अंतर्निहित वेक्टर संचालन का उपयोग करना है।

इतिहास
आईडीएल के पूर्ववर्ती संस्करणों को 1970 के दशक में बोल्डर में कोलोराडो विश्वविद्यालय में वायुमंडलीय और अंतरिक्ष भौतिकी (एलएएसपी) की प्रयोगशाला में आविष्कार किया गया था। एलएएसपी में, डेविड स्टर्न वैज्ञानिकों को व्यक्तिगत अनुप्रयोगों को लिखने या संशोधित करने के लिए प्रोग्रामर को नियोजित किए बिना परिकल्पनाओं का परीक्षण करने की स्वीकृति देने के प्रयासों में सम्मिलित किये गये थे। आईडीएल की विकासवादी श्रृंखला में प्रथम प्रोग्राम जिसे स्टर्न ने विकसित किया था, उसका नाम रूफस रखा गया था। यह एक साधारण वेक्टर-ओरिएन्टेड कैलकुलेटर था, जो पीडीपी-12 पर प्रयोग किया जाता था। यह दो-अक्षर के कोड को स्वीकार करता है, जो कि एक अंकगणितीय ऑपरेशन निर्दिष्ट करता है। ऑपरेंड के रूप में सर्विस करने के लिए इनपुट रजिस्टर और गंतव्य रजिस्टर। पीडीपी-8 पर विकसित रूफस का एक संस्करण मार्स मेरिनर स्पेक्ट्रम एडिटर (एमएमईडी) था। एलएएसपी वैज्ञानिकों द्वारा मेरिनर 7 और मेरिनर 9 से डेटा की व्याख्या करने के लिए एमएमईडी का उपयोग किया गया था। बाद में स्टर्न ने एसओएल नामक एक कार्यक्रम लिखा, जो पीडीपी-8 पर भी प्रयोग किया गया। अपने पूर्ववर्तियों के विपरीत, यह फोरट्रान-जैसे सिंटैक्स के साथ एक ट्रू प्रोग्रामिंग भाषा थी। एसओएल कुछ पुराने ग्राफिक्स क्षमताओं के साथ एक ऐरे-ओरिएन्टेड भाषा थी।

स्टर्न ने 1977 में एलएएसपी को त्यागकर रिसर्च सिस्टम्स इंक. (आरएसआई) की स्थापना की। प्रथम आरएसआई उत्पाद पीपीडी-11 के लिए आईडीएल था। इस रिलीज में, आईडीएल द्वारा समर्थित ग्राफिक्स मुख्य रूप से टेक्ट्रोनिक्स टर्मिनल और रास्टर ग्राफिक्स डिस्प्ले किये गये थे। आरएसआई ने अपना प्रथम आईडीएल लाइसेंस नासा के गोडार्ड अंतरिक्ष उड़ान केंद्र और बॉल एयरोस्पेस एंड टेक्नोलॉजीज कार्पोरेशन को 1979 में बेचा। दो साल बाद आरएसआई ने आईडीएल का एक प्रारंभिक वीएएक्स/वीएमएस संस्करण को नियमित करते हुए संचालित किया। जिसे वैक्स मैक्रो और फोर्टरॉन में लिखा गया था। इसने वैक्स वर्चुअल मेमोरी और 32-बिट एड्रेस स्पेस का लाभ प्राप्त किया। वायुमंडलीय अनुसंधान के लिए राष्ट्रीय केंद्र (एनसीएआर), मिशिगन विश्वविद्यालय, बोल्डर में कोलोराडो विश्वविद्यालय और नौसेना अनुसंधान प्रयोगशाला ने इस संस्करण के साथ आईडीएल का उपयोग करना प्रारम्भ कर दिया था।

1987 में आरएसआई ने आईडीएल के विकास कार्य को यूनिक्स इनवायरमेन्ट में स्थानांतरित कर दिया। जिसके लिए वैक्स आईडीएल के उपस्थित संस्करण के पोर्ट के स्थान पर C में कोड को पुनः लिखने की आवश्यकता थी। स्टर्न और अली बहरामी ने सन 3 पर यूनिक्स के लिए आईडीएल को पुनः लिखा, भाषा को बढ़ाने और सुधारने के लिए पुनः लिखने का लाभ प्राप्त किया। इसके पश्चात आईडीएल को विस्तारित किया गया और यूनिक्स, वीएमएस, लिनक्स, माइक्रोसॉफ्ट विंडोज (1992) और मैक ओएस (1994) के कई रूपों में परिवर्तित किया गया।

1992 में आईडीएल में विजेट्स जोड़े गए, जो ग्राफिकल यूज़र इंटरफ़ेस के साथ घटना-संचालित प्रोग्रामिंग प्रदान करते हैं। 1997 में आईओएन (आईडीएल ऑन द नेट), एक वेब सर्वर-आधारित प्रणाली, व्यावसायिक रूप से संचालित की गई थी। ईएनवीआई (सॉफ्टवेयर) का प्रथम संस्करण, रिमोट सेंसिंग मल्टीस्पेक्ट्रल और हाइपरस्पेक्ट्रल इमेज विश्लेषण के लिए आईडीएल में लिखा गया एक एप्लिकेशन 1994 में संचालित किया गया था। ईएनवीआई (सॉफ्टवेयर) बेटर सॉल्यूशंस कंसल्टिंग, एलएलसी द्वारा बनाया, विकसित और स्वामित्व में था, जब तक कि इसे आयात नहीं गया था। ईस्टमैन कोडक द्वारा अक्टूबर 2000 में बीएससी अकस्मात उनकी आरएसआई की आयात के साथ हुई। आरएसआई ने 1994 से अक्टूबर 2000 तक बीएससी, एलएलसी के साथ लाइसेंस समझौते को नियत के अनुसार ईएनवीआई (सॉफ्टवेयर) को बेचा, विपणन किया और समर्थन किया। 1997 में आईडीएल में नई वस्तु और सूचक प्रकार और सीमित ऑब्जेक्ट-ओरिएन्टेड प्रोग्रामिंग क्षमताएं जोड़ी गईं।

आईडीएल को व्यापक रूप से अंतरिक्ष विज्ञान में संचालित किया गया है, उदाहरण के लिए सोलरसॉफ्ट में। यूरोपीय अंतरिक्ष एजेंसी ने गिओटो अंतरिक्ष यान द्वारा लिए गए हैली के धूमकेतु के लगभग सभी चित्रों को संसाधित करने के लिए आईडीएल का उपयोग किया गया। हबल अंतरिक्ष सूक्ष्मदर्शी की त्रुटिनिवारण करने वाली टीम ने मुख्य दर्पण में विसंगतियों का निदान करने में सहायता के लिए आईडीएल का उपयोग किया। 1995 में एक अंतरिक्ष यान पर सवार अंतरिक्ष यात्रियों ने पराबैंगनी विकिरण का अध्ययन करने के लिए लैपटॉप पर लोड किए गए आईडीएल का उपयोग किया। वर्तमान में, अन्य अनुप्रयोगों के बीच, आईडीएल का उपयोग संयुक्त राज्य नौसेना अनुसंधान प्रयोगशाला, यूएसए और रदरफोर्ड एपलटन लेबोरेटरी, यूके में स्टेरियो मिशन के सेकची भाग के अधिकांश विश्लेषण के लिए किया जा रहा है।

आरएसआई मार्च 2004 में आईटीटी उद्योग की पूर्ण अधिकार वाली सहायक कंपनी का निर्माण किया। 15 मई 2006 तक, आरएसआई ने आईटीटी दृश्य सूचना समाधान के रूप में व्यवसाय करना प्रारम्भ कर दिया। प्रभावी 31 अक्टूबर 2011, पुनर्गठन के परिणामस्वरूप वह कंपनी एक्सेलिस दृश्य सूचना समाधान बन गई। 2015 तक, आईडीएल का अधिकार और देखरेख हैरिस भू-स्थानिक के पास है।

विशेषताएं
कंप्यूटर भाषा के रूप में, आईडीएल:
 * गतिशील रूप से टाइप किया गया है।
 * वैरिएबल, फलनों और प्रक्रियाओं के लिए नेमस्पेस हैं, किन्तु कोई नेमस्पेस पदानुक्रम नहीं है।
 * मूल रूप से सिंगल थ्रेडेड था, किन्तु अब इसमें कई मल्टी-थ्रेडेड फलन और प्रक्रियाएं हैं।
 * संदर्भ द्वारा पारित सभी फलन तर्क हैं, किन्तु नीचे "समस्याएं" देखें।
 * इसमें नेम्ड पैरामीटर हैं। जिन्हें कीवर्ड कहा जाता है, जो संदर्भ द्वारा पारित किए जाते हैं।
 * संदर्भ या मान द्वारा नेस्टेड रूटीन कॉल में नेम्ड पैरामीटर इनहेरिटेंस प्रदान करता है।
 * वैरिएबल को पूर्व घोषित करने की आवश्यकता नहीं है।
 * दिनचर्या के बीच वैश्विक मूल्यों को साझा करने के लिए सामान्य ब्लॉक घोषणाएं और प्रणाली वैरिएबल प्रदान करता है।
 * ऑपरेटर ओवरलोडिंग के साथ-साथ ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का एक मूल रूप प्रदान करता है, जो कुछ सीमा तक स्मॉलटाक के समान होते हैं।
 * गारबेज संग्रहण के लिए संदर्भ गणना का उपयोग करते हुए सूचक और वस्तु वैरिएबल के एक सतत, वैश्विक समूह को संचालित करता है।
 * एक व्याख्या किए गए स्टैक-आधारित इंटरमीडिएट पी-कोड (ए ला जावा वर्चुअल मशीन) के लिए संकलित करता है।
 * बड़े सारणियों से डेटा को प्राप्त करने के लिए एक सरल और कुशल इंडेक्स स्लाइस सिंटैक्स प्रदान करता है।
 * विभिन्न पूर्णांक आकार, साथ ही सिंगल और डबल स्पष्ट फ़्लोटिंग पॉइंट वास्तविक और जटिल संख्याएँ प्रदान करता है।
 * संयुक्त डेटा प्रकार प्रदान करता है, जैसे कि कैरेक्टर स्ट्रिंग्स, एक समान प्रकार की सारणियाँ, सूचियाँ, हैश सारणियाँ और मिश्रित डेटा प्रकारों की सरल (गैर-श्रेणीबद्ध) रिकॉर्ड संरचनाएँ।

समस्याएं
इन सुविधाओं में से कुछ, जो आईडीएल को अंतःक्रियात्मक रूप से उपयोग करने के लिए बहुत सरल बनाती हैं, बड़े कार्यक्रमों के निर्माण के समय भी कठिनाइयों का कारण बनती हैं। एकल नामस्थान विशेष रूप से कठिनता से परिपूर्ण है। उदाहरण के लिए, नए अंतर्निर्मित फलनों को सम्मिलित करने वाले भाषा अद्यतनों ने संभवतः बड़े वैज्ञानिक पुस्तकालयों को अमान्य कर दिया है।

सारणियों को संदर्भ द्वारा पारित किया जाता है और यह तंत्र एक उपनेमका से डेटा वापस पास करने के लिए भाषा की एक विज्ञापित विशेषता है। इसके विपरीत, सारणी स्लाइस को पारित होने से पहले कॉपी किया जाता है। जिससे डेटा संशोधन वापस सारणी श्रेणियों में प्रवाहित न हों (बाद में सबरूटीन बाहर निकलता है) और न्यूनतम आश्चर्य के सिद्धांत का उल्लंघन करता है।

कई ऐतिहासिक अनियमितताएं भाषा की प्रारंभिक उत्तराधिकार से बची हुई हैं, जिसके लिए प्रोग्रामर द्वारा विभिन्न वर्कअराउंड की आवश्यकता होती है। उदहारण के लिए:


 * ऐरे इंडेक्सिंग और सबरूटीन एंट्री दोनों को बिल्कुल एक ही सिंटैक्स (कोष्ठक) के साथ किया जा सकता है। यह अस्पष्टता, सभी वेरिएबल्स और सबरूटीन्स के लिए एकल नामस्थान के साथ मिलकर, कोड को काम करना बंद कर सकती है। जब नए परिभाषित सबरूटीन्स या भाषा एक्सटेंशन स्थानीय चर नामों के साथ संघर्ष करते हैं। आईडीएल प्रोग्रामर एरे इंडेक्सिंग के लिए स्क्वायर ब्रैकेट्स का उपयोग करके इनमें से कई समस्याओं से बच सकते हैं। जिससे फलन नामों के साथ टकराव की स्थिति से बचा जा सकता है। जो कोष्ठक का उपयोग करते हैं।

इस संकलक विकल्प का उपयोग करके पूर्ववर्ती समस्या को कम किया जा सकता है:

COMPILE_OPT STRICTARR

साथ ही, आईडीएल ईयूएलए के प्रावधान का उस देश के कॉपीराइट अधिनियम की धारा 47D और 47H के परिणामस्वरूप ऑस्ट्रेलिया में कोई प्रभाव नहीं है।
 * आईटीटी विज़ुअल इंफॉर्मेशन सॉल्यूशंस (आईटीटी वीआईएस), आईडीएल के डेवलपर्स ने अन्य वातावरणों के साथ बाईटकोड संगतता को रोकने के लिए स्पष्ट प्रयास किये हैं। संकलित रूटीन वाली फ़ाइलें एक बाइनरी टैग-डेटा-संरचना प्रारूप का उपयोग करती हैं। जिसे आधिकारिक रूप से प्रकाशित नहीं किया गया है। किन्तु उपयोगकर्ताओं द्वारा इसकी जांच और लेखों को संकलित किया गया है। किन्तु प्रत्येक संकलित की गई फ़ाइल के अन्दर एम्बेडेड आस्काई लेसन के रूप में निम्नलिखित सूचना भी सम्मिलित है: आईडीएल सहेजें/पुनर्स्थापना फ़ाइलें आईडीएल प्रोग्राम के विषय में अप्रकाशित अधिकार वाली जानकारी का प्रतीक हैं। इसलिए इस फाइल की रिवर्स इंजीनियरिंग आईडीएल एंड यूजर लाइसेंस एग्रीमेंट (आईडीएल ईयूएलए) की नियमों के अनुसार प्रतिबंधित है। सभी आईडीएल उपयोगकर्ताओं को आईडीएल स्थापित करते समय आईडीएल ईयूएलए के नियमों को पढ़ना और उनसे सहमत होना आवश्यक है। आईडीएल सहेजें/पुनर्स्थापना प्रारूप में फ़ाइलों को पढ़ने या लिखने वाले सॉफ़्टवेयर के पास आईटीटी दृश्य सूचना समाधान का लाइसेंस होना चाहिए। जो स्पष्ट रूप से ऐसा करने का अधिकार प्रदान करता हो। इस स्थिति में आपके निरीक्षण के लिए लाइसेंस को सॉफ्टवेयर के साथ सम्मिलित किया जाएगा। कृपया आईटीटी विज़ुअल इंफॉर्मेशन समाधान को ऐसे सॉफ़्टवेयर की रिपोर्ट करें, जिसके पास ऐसा लाइसेंस नहीं है। फरवरी 2010 तक कथन का न्यायालय में परीक्षण नहीं किया गया है।

 उदाहरण- 

निम्नलिखित ग्राफिक्स आईडीएल (स्रोत कोड सम्मिलित ) के साथ बनाए गए थे:


 * रैंडम डेटा प्लस ट्रेंड की इमेज, बेस्ट-फिट लाइन और विभिन्न स्मूथिंग के साथ
 * आयु और गहराई के विरुद्ध डेल्टा-ओ-18 के भूखंड (ईपिका और वोस्तोक से)
 * कोयोट आईडीएल गैलरी आईडीएल इमेजिंग के उदाहरण

यह भी देखें
* संख्यात्मक-विश्लेषण सॉफ्टवेयर की सूची।

* ईएनवीआई (सॉफ्टवेयर) - आईडीएल में निर्मित एक इमेज प्रोसेसिंग सॉफ्टवेयर पैकेज।

* आईआरएएफ - नोओ द्वारा निर्मित एक मुक्त, चित्रमय डेटा कमी का वातावरण। * NumPy - पायथन (प्रोग्रामिंग भाषा) के लिए एक एक्सटेंशन, जो इसे आईडीएल के समान सरणी गणित क्षमताएं प्रदान करता है।
 * मैटलैब - आईडीएल के समान क्षमता प्रदान करने वाला एक विधि कंप्यूटिंग वातावरण।

* पर्ल डेटा लैंग्वेज (पीडीएल) - पर्ल का एक विस्तार, जो इसे आईडीएल के समान सारणी गणित क्षमताएं प्रदान करता है।
 * स्काईलैब - एक उच्च-स्तरीय, संख्यात्मक रूप से ओरिएन्टेड प्रोग्रामिंग भाषा, जिसे वैज्ञानिक कंप्यूटिंग और इंटरफेस के लिए प्रारूपित किया गया है।
 * सोलरसॉफ्ट - आईडीएल में मुख्य रूप से लिखे गए सौर डेटा विश्लेषण और अंतरिक्ष यान संचालन गतिविधियों के लिए पुस्तकालय।
 * जीएनयू डेटा लैंग्वेज - जीएनयू डेटा लैंग्वेज, आईडीएल के समान एक निःशुल्क कार्यान्वयन।
 * फॉल्टी लैंग्वेज - फॉल्टी लैंग्वेज एक आईडीएल8 (इंटरएक्टिव डेटा लैंग्वेज) संगत कंपाइलर है।

बाहरी संबंध

 * आईडीएल home page
 * Coyote's Guide to आईडीएल Programming
 * The आईडीएल Astronomy User's Library at NASA Goddard
 * Fawlty Language home page