सूचना प्रसंस्करण भाषा: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 18: Line 18:
| file_ext =
| file_ext =
}}
}}
इंफॉर्मेशन प्रोसेसिंग लैंग्वेज (आईपीएल) [[एलन नेवेल]], [[क्लिफ शॉ]] और हर्बर्ट ए. साइमन द्वारा [[रैंड कॉर्पोरेशन]] और [[प्रौद्योगिकी के कार्नेगी संस्थान]] में लगभग 1956 में बनाई गई [[ प्रोग्रामिंग भाषा |प्रोग्रामिंग भाषा]] है। प्रोग्रामर, और साइमन के पास एप्लिकेशन प्रोग्रामर-यूजर का काम था।
'''सूचना प्रसंस्करण भाषा''' (आईपीएल) [[एलन नेवेल]], [[क्लिफ शॉ]] और हर्बर्ट ए. साइमन द्वारा [[रैंड कॉर्पोरेशन]] और [[प्रौद्योगिकी के कार्नेगी संस्थान]] में लगभग 1956 में बनाई गई प्रमुख [[ प्रोग्रामिंग भाषा |प्रोग्रामिंग भाषा]] है। इस भाषा के उपयोग से प्रोग्रामर और साइमन के पास एप्लिकेशन प्रोग्रामर यूजर का कार्य था।


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


== आईपीएल की मूल बातें ==
== आईपीएल की मूल बातें ==
एक आईपीएल कंप्यूटर में है:
एक आईपीएल कंप्यूटर में है:


# प्रतीकों का सेट। सभी प्रतीक पते और नाम कक्ष हैं। बाद की भाषाओं में प्रतीकों के विपरीत, प्रतीकों में संख्या के बाद वर्ण होता है, और H1, A29, 9-7, 9-100 लिखा जाता है।
# प्रतीकों का सेट या सभी प्रतीक पते और क्लास नेम हैं। इसके बाद की भाषाओं में प्रतीकों के विपरीत, प्रतीकों में संख्या के बाद वर्ण होता है, और H1, A29, 9-7, 9-100 लिखा जाता है।
## एक अक्षर से शुरू होने वाले सेल नाम क्षेत्रीय होते हैं, और पूर्ण पते होते हैं।
## एक अक्षर से प्रारंभ होने वाले सेल नाम क्षेत्रीय होते हैं, और पूर्ण पते होते हैं।
## 9 से शुरू होने वाले सेल नाम स्थानीय हैं, और एकल सूची के संदर्भ में अर्थपूर्ण हैं। सूची का 9-1 दूसरी सूची के 9-1 से स्वतंत्र है।
## 9 से प्रारंभ होने वाले सेल नाम स्थानीय हैं, और एकल सूची के संदर्भ में अर्थपूर्ण हैं। सूची का 9-1 दूसरी सूची के 9-1 से स्वतंत्र है।
## अन्य प्रतीक (जैसे, शुद्ध संख्याएं) आंतरिक हैं।
## अन्य प्रतीक (जैसे, शुद्ध संख्याएं) आंतरिक हैं।
# कोशिकाओं का सेट। सूचियाँ पारस्परिक संदर्भों सहित कई कक्षों से बनाई जाती हैं। कोशिकाओं के कई क्षेत्र हैं:
# सेल्स का सेट या सूचियाँ पारस्परिक संदर्भों सहित कई कक्षों से बनाई जाती हैं। सेल्स के कई क्षेत्र हैं:
## पी, 3-बिट फ़ील्ड ऑपरेशन कोड के लिए उपयोग किया जाता है जब सेल को निर्देश के रूप में उपयोग किया जाता है, और सेल डेटा होने पर अप्रयुक्त होता है।
## पी, 3-बिट फ़ील्ड ऑपरेशन कोड के लिए उपयोग किया जाता है जब सेल को निर्देश के रूप में उपयोग किया जाता है, और सेल डेटा होने पर अप्रयुक्त होता है।
## क्यू, 3-मूल्यवान फ़ील्ड अप्रत्यक्ष संदर्भ के लिए उपयोग किया जाता है जब सेल को निर्देश के रूप में उपयोग किया जाता है, और सेल डेटा होने पर अप्रयुक्त होता है।
## क्यू, 3-मूल्यवान फ़ील्ड अप्रत्यक्ष संदर्भ के लिए उपयोग किया जाता है जब सेल को निर्देश के रूप में उपयोग किया जाता है, और सेल डेटा होने पर अप्रयुक्त होता है।
## SYMB, प्रतीक जो सेल में मान के रूप में उपयोग किया जाता है।
## SYMB, प्रतीक जो सेल में मान के रूप में उपयोग किया जाता है।
# आदिम प्रक्रियाओं का सेट, जिसे आधुनिक भाषाओं में आदिम कार्य कहा जाएगा।
# इन विभिन्न प्रक्रियाओं का सेट, जिसे आधुनिक भाषाओं में फंक्श कहा जाएगा।


आईपीएल की डेटा संरचना सूची है, लेकिन सूची कई भाषाओं की तुलना में अधिक जटिल संरचनाएं हैं। सूची में प्रतीकों का एकल लिंक अनुक्रम होता है, जैसा कि अपेक्षित हो सकता है - साथ ही कुछ विवरण सूचियाँ, जो सहायक एकल लिंक्ड सूचियाँ हैं, जिन्हें वैकल्पिक विशेषता नाम और मान के रूप में व्याख्या किया गया है। आईपीएल नाम से विशेषता मान को एक्सेस और म्यूट करने के लिए प्रिमिटिव प्रदान करता है। विवरण सूचियों को स्थानीय नाम दिए गए हैं (प्रपत्र 9-1 के)। इसलिए, L1 नाम की सूची जिसमें प्रतीक S4 और S5 हैं, और V1 को विशेषता A1 और V2 को A2 से जोड़कर वर्णित किया गया है, निम्नानुसार संग्रहीत किया जाएगा। 0 सूची के अंत को इंगित करता है; सेल के नाम 100, 101, आदि स्वचालित रूप से आंतरिक प्रतीक उत्पन्न होते हैं जिनके मान अप्रासंगिक हैं। इन कोशिकाओं को स्मृति भर में बिखरा जा सकता है; केवल L1, जो क्षेत्रीय नाम का उपयोग करता है जिसे विश्व स्तर पर जाना जाना चाहिए, को विशिष्ट स्थान पर रहने की आवश्यकता है।
आईपीएल की डेटा संरचना सूची है, लेकिन सूची कई भाषाओं की तुलना में अधिक जटिल संरचनाएं हैं। सूची में प्रतीकों का एकल लिंक अनुक्रम होता है, जैसा कि अपेक्षित हो सकता है - साथ ही कुछ विवरण सूचियाँ, जो सहायक एकल लिंक्ड सूचियाँ हैं, जिन्हें वैकल्पिक विशेषता नाम और मान के रूप में व्याख्या किया गया है। इस प्रकार आईपीएल नाम से विशेषता मान को एक्सेस और म्यूट करने के लिए प्रिमिटिव प्रदान करता है। विवरण सूचियों को स्थानीय नाम दिए गए हैं (प्रपत्र 9-1 के)। इसलिए, L1 नाम की सूची जिसमें प्रतीक S4 और S5 हैं, और V1 को विशेषता A1 और V2 को A2 से जोड़कर वर्णित किया गया है, निम्नानुसार संग्रहीत किया जाएगा। इस प्रकार 0 सूची के अंत को इंगित करता है; सेल के नाम 100, 101, आदि स्वचालित रूप से आंतरिक प्रतीक उत्पन्न होते हैं जिनके मान अप्रासंगिक हैं। इन सेल्स को मेमोरी में प्रसारित किया जा सकता है; केवल L1, जो क्षेत्रीय नाम का उपयोग करता है जिसे विश्व स्तर पर जाना जाना चाहिए, को विशिष्ट स्थान पर रहने की आवश्यकता है।


{|style="font-family:monospace; margin: 1em auto"
{|style="font-family:monospace; margin: 1em auto"
|+ '''IPL-V List Structure Example'''
|+ '''आईपीएल-V सूची संरचना उदाहरण'''
|-
|-
!Name   !!      SYMB   !!    LINK
!नाम   !!      सिम्बल   !!    लिंक
  |-                       
  |-                       
|L1    ||      9-1    ||    100
|L1    ||      9-1    ||    100
Line 58: Line 58:
|203    ||      V2    ||    0
|203    ||      V2    ||    0
|}
|}
आईपीएल सूचियों में हेरफेर करने के लिए असेंबली भाषा है। इसकी कुछ कोशिकाएँ होती हैं जिनका उपयोग विशेष-उद्देश्य रजिस्टर के रूप में किया जाता है। उदाहरण के लिए, H1 प्रोग्राम काउंटर है। H1 का SYMB क्षेत्र वर्तमान निर्देश का नाम है। हालाँकि, H1 की व्याख्या सूची के रूप में की जाती है; H1 का LINK, आधुनिक शब्दों में, कॉल स्टैक की शुरुआत का सूचक है। उदाहरण के लिए, सबरूटीन कॉल H1 के SYMB को इस स्टैक पर धकेलती हैं।
आईपीएल सूचियों में परिवर्तन करने के लिए असेंबली भाषा का उपयोग किया जाता है। इसकी कुछ सेल होती हैं जिनका उपयोग विशेष-उद्देश्य रजिस्टर के रूप में किया जाता है। इस प्रकार उदाहरण के लिए, H1 प्रोग्राम काउंटर है। इस प्रकार H1 का SYMB क्षेत्र वर्तमान निर्देश का नाम है। हालाँकि, H1 की व्याख्या सूची के रूप में की जाती है; H1 का LINK, आधुनिक शब्दों में, कॉल स्टैक के प्रारंभ का सूचक है। उदाहरण के लिए, सबरूटीन कॉल H1 के SYMB को इस स्टैक पर धकेलती हैं।


H2 फ्री-लिस्ट है। प्रक्रियाएं जिन्हें H2 से मेमोरी ग्रैब सेल आवंटित करने की आवश्यकता होती है; स्मृति के साथ समाप्त होने वाली प्रक्रियाएं इसे H2 पर रखती हैं। किसी फ़ंक्शन में प्रवेश करने पर, मापदंडों की सूची H0 में दी गई है; बाहर निकलने पर, परिणाम H0 में लौटाए जाने चाहिए। कई प्रक्रियाएँ बूलियन परिणाम लौटाती हैं जो सफलता या विफलता का संकेत देता है, जिसे H5 में रखा जाता है। दस सेल, W0-W9, पब्लिक वर्किंग स्टोरेज के लिए आरक्षित हैं। इन कोशिकाओं के मूल्यों को बचाने और पुनर्स्थापित करने के लिए प्रक्रियाएं नैतिक रूप से बाध्य हैं (CACM लेख को उद्धृत करने के लिए)।
H2 फ्री-लिस्ट है। प्रक्रियाएं जिन्हें H2 से मेमोरी ग्रैब सेल आवंटित करने की आवश्यकता होती है; स्मृति के साथ समाप्त होने वाली प्रक्रियाएं इसे H2 पर रखती हैं। किसी फ़ंक्शन में प्रवेश करने पर, मापदंडों की सूची H0 में दी गई है; बाहर निकलने पर, परिणाम H0 में लौटाए जाने चाहिए। इस प्रकार कई प्रक्रियाएँ बूलियन परिणाम लौटाती हैं जो सफलता या विफलता का संकेत देता है, जिसे H5 में रखा जाता है। इन सेल्स को W0-W9, पब्लिक वर्किंग स्टोरेज के लिए आरक्षित हैं। इन सेल्स के मूल्यों को बचाने और पुनर्स्थापित करने के लिए प्रक्रियाएं नैतिक रूप से बाध्य हैं (CACM लेख को उद्धृत करने के लिए)।


P के मानों के आधार पर आठ निर्देश हैं: सबरूटीन कॉल, पुश/पॉप S से H0; एस से जुड़ी सूची में एस में प्रतीक को पुश/पॉप करें; कॉपी मूल्य एस; सशर्त शाखा। इन निर्देशों में, S लक्ष्य है। S या तो SYMB फ़ील्ड का मान है यदि Q = 0, SYMB द्वारा नामित सेल में प्रतीक यदि Q = 1 है, या सेल में प्रतीक SYMB द्वारा नामित सेल में प्रतीक है यदि Q = 2 है। सशर्त शाखा को छोड़कर सभी मामलों में, सेल का लिंक फ़ील्ड बताता है कि आगे किस निर्देश को निष्पादित करना है।
P के मानों के आधार पर आठ निर्देश हैं: सबरूटीन कॉल, पुश/पॉप S से H0; एस से जुड़ी सूची में एस में प्रतीक को पुश/पॉप करें; कॉपी मूल्य एस; सशर्त शाखा। इन निर्देशों में, S लक्ष्य है। S या तो SYMB फ़ील्ड का मान है यदि Q = 0, SYMB द्वारा नामित सेल में प्रतीक यदि Q = 1 है, या सेल में प्रतीक SYMB द्वारा नामित सेल में प्रतीक है यदि Q = 2 है। इस प्रकार सशर्त शाखा को छोड़कर सभी मामलों में, सेल का लिंक फ़ील्ड बताता है कि आगे किस निर्देश को निष्पादित करना है।


आईपीएल में लगभग 150 बुनियादी संचालनों का पुस्तकालय है। इनमें ऐसे ऑपरेशन शामिल हैं:
आईपीएल में लगभग 150 बुनियादी संचालनों की लाइब्रेरी है। इनमें ऐसे ऑपरेशन सम्मिलित हैं:


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


== इतिहास ==
== इतिहास ==
आईपीएल का उपयोग पहली बार यह प्रदर्शित करने के लिए किया गया था कि [[बर्ट्रेंड रसेल]] और [[अल्फ्रेड नॉर्थ व्हाइटहेड]] द्वारा [[ गणितीय सिद्धांत |गणितीय सिद्धांत]] में प्रमेय जो श्रमसाध्य रूप से हाथ से सिद्ध किए गए थे, वास्तव में स्वचालित प्रमेय साबित हो सकते हैं। साइमन की आत्मकथा मॉडल्स ऑफ माई लाइफ के अनुसार, इस एप्लिकेशन को मूल रूप से हाथ से सिमुलेशन द्वारा विकसित किया गया था, जिसमें उनके बच्चों को कंप्यूटिंग तत्वों के रूप में इस्तेमाल किया गया था, जबकि रजिस्टरों के रूप में लिखने और रखने के लिए जिसमें कार्यक्रम के राज्य चर शामिल थे।
आईपीएल का उपयोग पहली बार यह प्रदर्शित करने के लिए किया गया था कि [[बर्ट्रेंड रसेल]] और [[अल्फ्रेड नॉर्थ व्हाइटहेड]] द्वारा [[ गणितीय सिद्धांत |गणितीय सिद्धांत]] में प्रमेय जो श्रमसाध्य रूप से हाथ से सिद्ध किए गए थे, वास्तव में स्वचालित प्रमेय प्रमाणित हो सकती हैं। साइमन की आत्मकथा मॉडल्स ऑफ माई लाइफ के अनुसार, इस एप्लिकेशन को मूल रूप से हाथ से सिमुलेशन द्वारा विकसित किया गया था, जिसमें उनके बच्चों को कंप्यूटिंग तत्वों के रूप में उपयोग किया गया था, जबकि रजिस्टरों के रूप में लिखने और रखने के लिए जिसमें फंक्शन की स्थिति वैरियेबल के द्वारा सम्मिलित थी।


आईपीएल का उपयोग कई शुरुआती [[ कृत्रिम होशियारी |कृत्रिम होशियारी]] कार्यक्रमों को लागू करने के लिए किया गया था, उन्हीं लेखकों द्वारा भी: द [[तर्कशास्त्री]] (1956), द [[ सामान्य समस्या सॉल्वर |सामान्य समस्या सॉल्वर]] (1957), और उनके [[कंप्यूटर शतरंज]] प्रोग्राम [[एनएसएस (शतरंज कार्यक्रम)]] (1958)
आईपीएल का उपयोग कई शुरुआती [[ कृत्रिम होशियारी |कृत्रिम होशियारी]] फंक्शनों को लागू करने के लिए किया गया था, उन्हीं लेखकों द्वारा भी: द [[तर्कशास्त्री]] (1956), द [[ सामान्य समस्या सॉल्वर |सामान्य समस्या सॉल्वर]] (1957), और उनके [[कंप्यूटर शतरंज]] प्रोग्राम [[एनएसएस (शतरंज कार्यक्रम)|एनएसएस (शतरंज फंक्शन)]] (1958) हैं।


IPL के कई संस्करण बनाए गए: IPL-I (कभी लागू नहीं), IPL-II ([[JOHNNIAC]] के लिए 1957), IPL-III (संक्षिप्त रूप से अस्तित्व में), IPL-IV, IPL-V (1958, [[IBM 650]] के लिए, [[IBM 704]], IBM) 7090, [[फिल्को मॉडल 212]], कई अन्य। व्यापक रूप से उपयोग किया जाता है)। IPL-VI IPL हार्डवेयर का प्रस्ताव था।{{sfn|Shaw|Newell|Simon|1958}}{{sfn|Sammet|1969|p=389}}
IPL के कई संस्करण बनाए गए: IPL-I (कभी लागू नहीं), IPL-II ([[JOHNNIAC]] के लिए 1957), IPL-III (संक्षिप्त रूप से अस्तित्व में), IPL-IV, IPL-V (1958, [[IBM 650]] के लिए, [[IBM 704]], IBM) 7090, [[फिल्को मॉडल 212]], कई अन्य। व्यापक रूप से उपयोग किया जाता है)। IPL-VI IPL हार्डवेयर का प्रस्ताव था।{{sfn|Shaw|Newell|Simon|1958}}{{sfn|Sammet|1969|p=389}}


सीडीसी 3600 के लिए Argonne National पुस्तकालयों में सह-प्रोसेसर "आईपीएल-वीसी" विकसित किया गया था जो आईपीएल-वी कमांड चला सकता था।{{sfn|Hodges|1964}}{{sfn|Sammet|1969|p=393–394}} इसका उपयोग दूसरे चेकर-प्लेइंग प्रोग्राम को लागू करने के लिए किया गया था।{{sfn|Cowell|Reed|1965}} यह हार्डवेयर कार्यान्वयन "वर्तमान समय की मशीनों की संरचना के लिए अधिक प्रत्यक्ष रूप से उन्मुख भाषा के साथ अनुकूल प्रतिस्पर्धा" करने के लिए पर्याप्त रूप से चलने के समय में सुधार नहीं करता है।{{sfn|Carson|Robinson|1966|p=5}}
सीडीसी 3600 के लिए आर्गनने नेशनल लाइब्रेरी में असिस्टेंट प्रोसेसर "आईपीएल-वीसी" विकसित किया गया था जो आईपीएल-वी कमांड चला सकता था।{{sfn|Hodges|1964}}{{sfn|Sammet|1969|p=393–394}} इसका उपयोग दूसरे चेकर-प्लेइंग प्रोग्राम को लागू करने के लिए किया गया था।{{sfn|Cowell|Reed|1965}} यह हार्डवेयर कार्यान्वयन "वर्तमान समय की मशीनों की संरचना के लिए अधिक प्रत्यक्ष रूप से उन्मुख भाषा के साथ अनुकूल प्रतिस्पर्धा" करने के लिए पर्याप्त रूप से चलने के समय में सुधार नहीं करता है।{{sfn|Carson|Robinson|1966|p=5}}


आईपीएल जल्द ही [[ लिस्प (प्रोग्रामिंग भाषा) |लिस्प (प्रोग्रामिंग भाषा)]] द्वारा विस्थापित हो गया, जिसमें बहुत अधिक शक्तिशाली विशेषताएं, सरल सिंटैक्स और स्वचालित [[कचरा संग्रह (कंप्यूटर विज्ञान)]] का लाभ था।
आईपीएल शीघ्र ही [[ लिस्प (प्रोग्रामिंग भाषा) |लिस्प (प्रोग्रामिंग भाषा)]] द्वारा विस्थापित हो गया, जिसमें बहुत अधिक शक्तिशाली विशेषताएं, सरल सिंटैक्स और स्वचालित [[कचरा संग्रह (कंप्यूटर विज्ञान)]] का लाभ था।


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


इनमें से कई विशेषताओं को सामान्यीकृत, तर्कसंगत और लिस्प में शामिल किया गया था<ref>[http://www-formal.stanford.edu/jmc/history/lisp/node2.html John McCarthy (1979) ''History of Lisp'' "LISP prehistory - Summer 1956 through Summer 1958."]</ref> और वहां से अगले कई दशकों के दौरान कई अन्य प्रोग्रामिंग भाषाओं में।
इनमें से कई विशेषताओं को सामान्यीकृत, तर्कसंगत और लिस्प में सम्मिलित किया गया था<ref>[http://www-formal.stanford.edu/jmc/history/lisp/node2.html John McCarthy (1979) ''History of Lisp'' "LISP prehistory - Summer 1956 through Summer 1958."]</ref> और वहां से अगले कई दशकों के दौरान कई अन्य प्रोग्रामिंग भाषाओं में किया जाता हैं।


==संदर्भ==
==संदर्भ==

Revision as of 00:55, 21 May 2023

Information Processing Language (IPL)
ParadigmAssembly
द्वारा डिज़ाइन किया गयाAllen Newell, Cliff Shaw, Herbert A. Simon
DeveloperAllen Newell, Cliff Shaw, Herbert A. Simon
पहली प्रस्तुति1956
Stable release
IPL-V
ओएसCross-platform: JOHNNIAC, IBM 650, IBM 704, IBM 7090
Influenced
Lisp

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

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

आईपीएल की मूल बातें

एक आईपीएल कंप्यूटर में है:

  1. प्रतीकों का सेट या सभी प्रतीक पते और क्लास नेम हैं। इसके बाद की भाषाओं में प्रतीकों के विपरीत, प्रतीकों में संख्या के बाद वर्ण होता है, और H1, A29, 9-7, 9-100 लिखा जाता है।
    1. एक अक्षर से प्रारंभ होने वाले सेल नाम क्षेत्रीय होते हैं, और पूर्ण पते होते हैं।
    2. 9 से प्रारंभ होने वाले सेल नाम स्थानीय हैं, और एकल सूची के संदर्भ में अर्थपूर्ण हैं। सूची का 9-1 दूसरी सूची के 9-1 से स्वतंत्र है।
    3. अन्य प्रतीक (जैसे, शुद्ध संख्याएं) आंतरिक हैं।
  2. सेल्स का सेट या सूचियाँ पारस्परिक संदर्भों सहित कई कक्षों से बनाई जाती हैं। सेल्स के कई क्षेत्र हैं:
    1. पी, 3-बिट फ़ील्ड ऑपरेशन कोड के लिए उपयोग किया जाता है जब सेल को निर्देश के रूप में उपयोग किया जाता है, और सेल डेटा होने पर अप्रयुक्त होता है।
    2. क्यू, 3-मूल्यवान फ़ील्ड अप्रत्यक्ष संदर्भ के लिए उपयोग किया जाता है जब सेल को निर्देश के रूप में उपयोग किया जाता है, और सेल डेटा होने पर अप्रयुक्त होता है।
    3. SYMB, प्रतीक जो सेल में मान के रूप में उपयोग किया जाता है।
  3. इन विभिन्न प्रक्रियाओं का सेट, जिसे आधुनिक भाषाओं में फंक्श कहा जाएगा।

आईपीएल की डेटा संरचना सूची है, लेकिन सूची कई भाषाओं की तुलना में अधिक जटिल संरचनाएं हैं। सूची में प्रतीकों का एकल लिंक अनुक्रम होता है, जैसा कि अपेक्षित हो सकता है - साथ ही कुछ विवरण सूचियाँ, जो सहायक एकल लिंक्ड सूचियाँ हैं, जिन्हें वैकल्पिक विशेषता नाम और मान के रूप में व्याख्या किया गया है। इस प्रकार आईपीएल नाम से विशेषता मान को एक्सेस और म्यूट करने के लिए प्रिमिटिव प्रदान करता है। विवरण सूचियों को स्थानीय नाम दिए गए हैं (प्रपत्र 9-1 के)। इसलिए, L1 नाम की सूची जिसमें प्रतीक S4 और S5 हैं, और V1 को विशेषता A1 और V2 को A2 से जोड़कर वर्णित किया गया है, निम्नानुसार संग्रहीत किया जाएगा। इस प्रकार 0 सूची के अंत को इंगित करता है; सेल के नाम 100, 101, आदि स्वचालित रूप से आंतरिक प्रतीक उत्पन्न होते हैं जिनके मान अप्रासंगिक हैं। इन सेल्स को मेमोरी में प्रसारित किया जा सकता है; केवल L1, जो क्षेत्रीय नाम का उपयोग करता है जिसे विश्व स्तर पर जाना जाना चाहिए, को विशिष्ट स्थान पर रहने की आवश्यकता है।

आईपीएल-V सूची संरचना उदाहरण
नाम सिम्बल लिंक
L1 9-1 100
100 S4 101
101 S5 0
9-1 0 200
200 A1 201
201 V1 202
202 A2 203
203 V2 0

आईपीएल सूचियों में परिवर्तन करने के लिए असेंबली भाषा का उपयोग किया जाता है। इसकी कुछ सेल होती हैं जिनका उपयोग विशेष-उद्देश्य रजिस्टर के रूप में किया जाता है। इस प्रकार उदाहरण के लिए, H1 प्रोग्राम काउंटर है। इस प्रकार H1 का SYMB क्षेत्र वर्तमान निर्देश का नाम है। हालाँकि, H1 की व्याख्या सूची के रूप में की जाती है; H1 का LINK, आधुनिक शब्दों में, कॉल स्टैक के प्रारंभ का सूचक है। उदाहरण के लिए, सबरूटीन कॉल H1 के SYMB को इस स्टैक पर धकेलती हैं।

H2 फ्री-लिस्ट है। प्रक्रियाएं जिन्हें H2 से मेमोरी ग्रैब सेल आवंटित करने की आवश्यकता होती है; स्मृति के साथ समाप्त होने वाली प्रक्रियाएं इसे H2 पर रखती हैं। किसी फ़ंक्शन में प्रवेश करने पर, मापदंडों की सूची H0 में दी गई है; बाहर निकलने पर, परिणाम H0 में लौटाए जाने चाहिए। इस प्रकार कई प्रक्रियाएँ बूलियन परिणाम लौटाती हैं जो सफलता या विफलता का संकेत देता है, जिसे H5 में रखा जाता है। इन सेल्स को W0-W9, पब्लिक वर्किंग स्टोरेज के लिए आरक्षित हैं। इन सेल्स के मूल्यों को बचाने और पुनर्स्थापित करने के लिए प्रक्रियाएं नैतिक रूप से बाध्य हैं (CACM लेख को उद्धृत करने के लिए)।

P के मानों के आधार पर आठ निर्देश हैं: सबरूटीन कॉल, पुश/पॉप S से H0; एस से जुड़ी सूची में एस में प्रतीक को पुश/पॉप करें; कॉपी मूल्य एस; सशर्त शाखा। इन निर्देशों में, S लक्ष्य है। S या तो SYMB फ़ील्ड का मान है यदि Q = 0, SYMB द्वारा नामित सेल में प्रतीक यदि Q = 1 है, या सेल में प्रतीक SYMB द्वारा नामित सेल में प्रतीक है यदि Q = 2 है। इस प्रकार सशर्त शाखा को छोड़कर सभी मामलों में, सेल का लिंक फ़ील्ड बताता है कि आगे किस निर्देश को निष्पादित करना है।

आईपीएल में लगभग 150 बुनियादी संचालनों की लाइब्रेरी है। इनमें ऐसे ऑपरेशन सम्मिलित हैं:

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

इतिहास

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

आईपीएल का उपयोग कई शुरुआती कृत्रिम होशियारी फंक्शनों को लागू करने के लिए किया गया था, उन्हीं लेखकों द्वारा भी: द तर्कशास्त्री (1956), द सामान्य समस्या सॉल्वर (1957), और उनके कंप्यूटर शतरंज प्रोग्राम एनएसएस (शतरंज फंक्शन) (1958) हैं।

IPL के कई संस्करण बनाए गए: IPL-I (कभी लागू नहीं), IPL-II (JOHNNIAC के लिए 1957), IPL-III (संक्षिप्त रूप से अस्तित्व में), IPL-IV, IPL-V (1958, IBM 650 के लिए, IBM 704, IBM) 7090, फिल्को मॉडल 212, कई अन्य। व्यापक रूप से उपयोग किया जाता है)। IPL-VI IPL हार्डवेयर का प्रस्ताव था।[1][2]

सीडीसी 3600 के लिए आर्गनने नेशनल लाइब्रेरी में असिस्टेंट प्रोसेसर "आईपीएल-वीसी" विकसित किया गया था जो आईपीएल-वी कमांड चला सकता था।[3][4] इसका उपयोग दूसरे चेकर-प्लेइंग प्रोग्राम को लागू करने के लिए किया गया था।[5] यह हार्डवेयर कार्यान्वयन "वर्तमान समय की मशीनों की संरचना के लिए अधिक प्रत्यक्ष रूप से उन्मुख भाषा के साथ अनुकूल प्रतिस्पर्धा" करने के लिए पर्याप्त रूप से चलने के समय में सुधार नहीं करता है।[6]

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

कंप्यूटर प्रोग्रामिंग की देन

आईपीएल ने यकीनन कई प्रोग्रामिंग लैंग्वेज फीचर प्रस्तुत किए:

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

इनमें से कई विशेषताओं को सामान्यीकृत, तर्कसंगत और लिस्प में सम्मिलित किया गया था[7] और वहां से अगले कई दशकों के दौरान कई अन्य प्रोग्रामिंग भाषाओं में किया जाता हैं।

संदर्भ


अग्रिम पठन

  • Carson, Daniel F.; Robinson, George A. (May 1966). Gyro II, A Macro-Defined System for List Processing (Report). Applied Mathematics Division, Argonne National Laboratories. ANL-7149.
  • Cowell, W. R.; Reed, M. C. (October 1965). A Checker-Playing Program for the IPL-VC Computer (Report). Applied Mathematics Division, Argonne National Laboratories. ANL-7109.
  • Hodges, Donald (May 1964). IPL-VC: A Computer System having the IPL-V Instruction Set (Report). Applied Mathematics Division, Argonne National Laboratories. ANL-6888.
  • Newell, Allen; Shaw, J. C. (1957). "Programming the Logic Theory Machine". Papers Presented at the February 26-28, 1957, Western Joint Computer Conference: Techniques for Reliability. IRE-AIEE-ACM '57 (Western). Association for Computing Machinery. pp. 230–240. doi:10.1145/1455567.1455606. ISBN 9781450378611.
  • Newell, Allen; Tonge, Fred M. (1960). "An Introduction to Information Processing Language V". Communications of the ACM. New York, NY, USA: Association for Computing Machinery. 3 (4): 205–211. doi:10.1145/367177.367205. ISSN 0001-0782. S2CID 16609075.
  • Newell, Allen; Tonge, Fred M.; et al. (1964). Information Processing Language-V Manual. Englewood Cliffs, N.J.: Prentice Hall.
  • Sammet, Jean E. (1969). Programming languages: history and fundamentals. Englewood Cliffs, N.J.: Prentice Hall. pp. 388–400.
  • Shaw, J. C.; Newell, A.; Simon, H. A.; Ellis, T. O. (1958). "A Command Structure for Complex Information Processing". Proceedings of the May 6-8, 1958, Western Joint Computer Conference: Contrasts in Computers. IRE-ACM-AIEE '58 (Western). Association for Computing Machinery. pp. 119–128. doi:10.1145/1457769.1457803. ISBN 9781450378642.

बाहरी संबंध