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

इंफॉर्मेशन प्रोसेसिंग लैंग्वेज (आईपीएल) एलन नेवेल, क्लिफ शॉ और हर्बर्ट ए. साइमन द्वारा रैंड कॉर्पोरेशन और प्रौद्योगिकी के कार्नेगी संस्थान में लगभग 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 के लिए Argonne National पुस्तकालयों में एक सह-प्रोसेसर "आईपीएल-वीसी" विकसित किया गया था जो आईपीएल-वी कमांड चला सकता था। इसका उपयोग दूसरे चेकर-प्लेइंग प्रोग्राम को लागू करने के लिए किया गया था। यह हार्डवेयर कार्यान्वयन "वर्तमान समय की मशीनों की संरचना के लिए अधिक प्रत्यक्ष रूप से उन्मुख भाषा के साथ अनुकूल प्रतिस्पर्धा" करने के लिए पर्याप्त रूप से चलने के समय में सुधार नहीं करता है।

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

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

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

अग्रिम पठन


















बाहरी संबंध

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