सूचना प्रसंस्करण भाषा

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

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

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


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

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

आईपीएल सूचियों में परिवर्तन करने के लिए असेंबली भाषा का उपयोग किया जाता है। इसकी कुछ सेल होती हैं जिनका उपयोग विशेष-उद्देश्य रजिस्टर के रूप में किया जाता है। इस प्रकार उदाहरण के लिए, 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 हार्डवेयर का प्रस्ताव था।

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

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

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

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

अग्रिम पठन


















बाहरी संबंध

 * Allen Newell, "Biographical Memoirs", National Academy of Sciences (includes a short section on IPL)
 * IPL documents from BitSavers
 * Influence of IPL on LISP