स्नोबोल

स्नोबॉल (श्रृंखला उन्मुख और प्रतीकात्मक भाषा) 1962 और 1967 के बीच AT&T बेल लैबोरेटरीज डेविड जे. फार्बर, राल्फ ई. ग्रिसवॉल्ड और इवान पी. पोलोनस्की द्वारा विकसित क्रमादेशन भाषाओं की एक श्रृंखला है, जो स्नोबॉल4 में समाप्त हुई। यह 1950 और 1960 के दशक के दौरान विकसित कई अवतरण-श्रृंखला-उन्मुख भाषाओं में से एक थी; अन्य में कॉमिट और ट्रैक (क्रमादेशन भाषा) सम्मिलित हैं।

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

स्नोबॉल4 को 1960 के दशक के अंत और 1970 के दशक के प्रारम्भ में बड़े अमेरिकी विश्वविद्यालयों में व्यापक रूप से पढ़ाया गया था और 1970 और 1980 के दशक में मानविकी में पाठ प्रकलन भाषा के रूप में इसका व्यापक रूप से उपयोग किया गया था।

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

बाद में SL5 (1977) और चिह्न (क्रमादेशन भाषा) (1978) भाषाओं को ग्रिसवॉल्ड द्वारा स्नोबॉल4 प्रतिरूप के पश्चअनुमार्गण को अधिक मानक ऐल्गॉल जैसी संरचना के साथ संयोजित करने के लिए अभिकल्पित किया गया था।

स्नोबॉल1
प्रारंभिक स्नोबॉल भाषा को इसके लेखकों द्वारा बहुपदों के प्रतीकात्मक प्रकलन के साथ काम करने के लिए उपयोग किए जाने वाले उपकरण के रूप में बनाया गया था। यह IBM 7090 के लिए समन्वायोजन भाषा में लिखा गया था। इसमें एक साधारण वाक्यविचार था, केवल एक डेटाटाइप, श्रृंखला, कोई फ़ंक्शन नहीं, और कोई घोषणा नहीं और बहुत कम त्रुटि नियंत्रण। हालाँकि, इसकी सादगी और इसकी व्यक्तिगत प्रकृति के बावजूद इसका उपयोग अन्य समूहों में फैलने लगा। नतीजतन, लेखकों ने इसे विस्तारित करने और इसे साफ करने का फैसला किया।

स्नोबॉल2
स्नोबॉल2 मौजूद था, लेकिन यह उपयोगकर्ता-परिभाषित कार्यों के बिना एक अल्पकालिक मध्यवर्ती विकास संस्करण था और इसे कभी जारी नहीं किया गया था।

स्नोबॉल3
स्नोबॉल को मानक और उपयोगकर्ता परिभाषित दोनों कार्यों को जोड़ने के लिए फिर से लिखा गया था, और परिणाम स्नोबॉल3 के रूप में जारी किया गया था। स्नोबॉल3 काफी लोकप्रिय हो गया और अन्य प्रोग्रामर्स द्वारा IBM 7090 के अलावा अन्य कंप्यूटरों के लिए फिर से लिखा गया। परिणामस्वरूप, कई असंगत बोलियाँ उत्पन्न हुईं।

स्नोबॉल4
जैसा कि स्नोबॉल3 अधिक लोकप्रिय हो गया, लेखकों को भाषा के विस्तार के लिए अधिक से अधिक अनुरोध प्राप्त हुए। उन्हें उन संस्करणों में असंगति और बग के बारे में शिकायतें भी मिलने लगीं जिन्हें उन्होंने लिखा नहीं था। इसे संबोधित करने के लिए और 1960 के दशक के अंत में पेश किए गए नए कंप्यूटरों का लाभ उठाने के लिए, स्नोबॉल4 को कई अतिरिक्त डेटाटाइप्स और सुविधाओं के साथ विकसित करने का निर्णय लिया गया था, लेकिन कंप्यूटरों में बेहतर पोर्टेबिलिटी की अनुमति देने के लिए एक आभासी मशीन पर आधारित था। स्नोबॉल4 भाषा अनुवादक अभी भी असेम्बली भाषा में लिखा गया था। हालाँकि असेंबलर की मैक्रो विशेषताओं का उपयोग स्नोबॉल इम्प्लीमेंटेशन लैंग्वेज, SIL के वर्चुअल मशीन निर्देशों को परिभाषित करने के लिए किया गया था। इसने वर्चुअल मशीन को पोर्ट करना अपेक्षाकृत आसान बनाकर भाषा की पोर्टेबिलिटी में बहुत सुधार किया, जिसने किसी मशीन पर अपने वर्चुअल निर्देशों को फिर से बनाकर होस्ट किया, जिसमें एक मैक्रो असेंबलर या वास्तव में एक उच्च स्तरीय भाषा सम्मिलित थी। मशीन-स्वतंत्र भाषा एसआईएल डगलस मैक्लॉयय द्वारा श्रृंखला मैनिपुलेशन मैक्रोज़ के सामान्यीकरण के रूप में उभरी, जिसका प्रारंभिक एसएनओबीओएल कार्यान्वयन में बड़े पैमाने पर उपयोग किया गया था। 1969 में, McIlroy ने तालिका प्रकार को स्नोबॉल4 में जोड़ने पर जोर देकर फिर से भाषा को प्रभावित किया।

स्नोबॉल4 सुविधाएँ
स्नोबॉल प्रारूप समारोह (क्रमादेशन) शैली में विशिष्ट है, जो समकालीन प्रक्रियात्मक भाषाओं जैसे कि फोरट्रान और ALGOL से मौलिक रूप से भिन्न हैं।

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

सभी स्नोबॉल कमांड लाइन फॉर्म के हैं
 * लेबल विषय प्रतिरूप '=' वस्तु ':' स्थानांतरण

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

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

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

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

स्नोबॉल एक कचरा संग्रह (कंप्यूटर विज्ञान)|कचरा-एकत्रित ढेर में चर, तार और डेटा संरचनाओं को संग्रहीत करता है।

उदाहरण कार्यक्रम
हैलो, दुनिया! कार्यक्रम इस प्रकार हो सकता है...

<वाक्यविन्यास हाईलाइट लैंग = स्नोबोल> आउटपुट = हैलो, विश्व! अंत 

एक उपयोगकर्ता का नाम पूछने के लिए एक साधारण प्रोग्राम और फिर इसे आउटपुट वाक्य में प्रयोग करें ... <वाक्यविन्यास हाईलाइट लैंग = स्नोबोल> आउटपुट = आपका नाम क्या है? उपयोगकर्ता नाम = इनपुट OUTPUT = धन्यवाद, उपयोगकर्ता नाम अंत 

तीन संभावित आउटपुट के बीच चयन करने के लिए...

<वाक्यविन्यास हाईलाइट लैंग = स्नोबोल> आउटपुट = आपका नाम क्या है? उपयोगकर्ता नाम = इनपुट उपयोगकर्ता नाम जे: एस (लव) उपयोगकर्ता नाम के: एस (नफरत) मेह आउटपुट = हाय, उपयोगकर्ता नाम :(END) LOVE OUTPUT = आपसे मिलकर कितना अच्छा लगा, यूजरनेम :(END) हेट आउटपुट = ओह। यह आप हैं, उपयोगकर्ता नाम अंत 

इनपुट का अनुरोध तब तक जारी रखने के लिए जब तक कि कोई और इनपुट न हो...

<वाक्यविन्यास हाईलाइट लैंग = स्नोबोल> OUTPUT = यह प्रोग्राम आपसे व्यक्तिगत नाम पूछेगा OUTPUT = जब तक आप रिटर्न दिए बिना रिटर्न दबाते हैं NameCount = 0 :(GETINPUT) दोबारा नाम गणना = नाम गणना + 1 आउटपुट = नाम नाम गणना: व्यक्तिगत नाम GETINPUT OUTPUT = कृपया मुझे नाम दें NameCount + 1 व्यक्तिगत नाम = इनपुट व्यक्तिगत नाम लेन (1): एस (फिर से) आउटपुट = समाप्त। नाम गणना नाम का अनुरोध किया। अंत 

कार्यान्वयन
क्लासिक कार्यान्वयन पीडीपी-10 पर था; इसका उपयोग संकलक, औपचारिक व्याकरण और कृत्रिम बुद्धिमत्ता, विशेष रूप से मशीनी अनुवाद और प्राकृतिक भाषाओं की मशीन समझ के अध्ययन के लिए किया गया है। मूल कार्यान्वयन बेल लैब्स, होल्मडेल, एन.जे. में आईबीएम 7090 पर था। स्नोबॉल4 को विशेष रूप से पोर्टेबिलिटी के लिए अभिकल्पित किया गया था; पहला कार्यान्वयन 1966 में IBM 7094 पर शुरू किया गया था, लेकिन 1967 में IBM 360 पर पूरा हुआ। इसे तेजी से कई अन्य प्लेटफार्मों पर पोर्ट किया गया।

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

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

GNAT Ada (क्रमादेशन लैंग्वेज) कंपाइलर एक पैकेज (GNAT.Spitbol) के साथ आता है जो सभी Spitbol श्रृंखला प्रकलन सिमेंटिक्स को लागू करता है। इसे एडा कार्यक्रम के भीतर से बुलाया जा सकता है।

मिशिगन टर्मिनल सिस्टम (MTS) के लिए फाइल एडिटर ने स्नोबॉल4 प्रतिरूप के आधार पर प्रतिरूप मिलान प्रदान किया। वर्तमान में कई कार्यान्वयन उपलब्ध हैं। फिल बडने द्वारा लिखित Macro स्नोबॉल4 in C एक मुक्त, खुला स्रोत कार्यान्वयन है, जो लगभग किसी भी मंच पर चलने में सक्षम है। Catspaw, Inc ने DOS, Macintosh, Sun, RS/6000, और अन्य सहित कई अलग-अलग कंप्यूटर प्लेटफार्मों के लिए स्नोबॉल4 भाषा का व्यावसायिक कार्यान्वयन प्रदान किया, और ये कार्यान्वयन अब Catspaw से मुक्त उपलब्ध हैं। मिनेसोटा स्नोबॉल4, विक्टर्स बर्स्टिस द्वारा, मूल IBM मेनफ्रेम संस्करण (यहां तक ​​कि फोरट्रान-जैसे FORMAT स्टेटमेंट समर्थन सहित) के निकटतम पीसी कार्यान्वयन भी मुफ्त है। हालांकि स्नोबॉल में स्वयं कोई संरचित क्रमादेशन विशेषताएं नहीं हैं, बर्फानी तूफ़ान नामक एक स्नोबॉल प्रीप्रोसेसर को मिशिगन विश्वविद्यालय में मिशिगन टर्मिनल सिस्टम (MTS) के तहत उपयोग के लिए 1970 के दशक के दौरान फ्रेड जी. स्वार्ट्ज द्वारा डिजाइन और कार्यान्वित किया गया था। MTS चलाने वाली आठ से पंद्रह साइटों पर स्नोस्टॉर्म का उपयोग किया गया था। यह 1982 और 1984 के बीच यूनिवर्सिटी कॉलेज लंदन (यूसीएल) में भी उपलब्ध था।

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

नामकरण
डेव फार्बर के अनुसार, वह, ग्रिसवॉल्ड और पोलोन्स्की अंत में प्रतीकात्मक अभिव्यक्ति दुभाषिया SEXI के नाम पर पहुंचे।

"All went well until one day I was submitting a batch job to assemble the system and as normal on my JOB card the first card in the deck, I, in BTL standards, punched my job and my name SEXI Farber.

One of the Comp Center girls looked at it and said, "That's what you think" in a humorous way.

That made it clear that we needed another name!! We sat and talked and drank coffee and shot rubber bands and after much too much time someone said most likely Ralph  "We don't have a Snowball's chance in hell of finding a name". All of us yelled at once, "WE GOT IT SNOBOL" in the spirit of all the BOL languages. We then stretched our mind to find what it stood for."

स्नोबॉल के सामान्य संक्षिप्त नाम हैं 'श्रृंखला उन्मुख सिम्बोलिक लैंग्वेज' या (एक परिवर्णी शब्द और इनिशियलिज़्म|अर्ध-प्रारंभिकवाद के रूप में) 'श्रृंखला उन्मुख सिम्बोलिक लैंग्वेज'।

यह भी देखें

 * चिह्न (क्रमादेशन भाषा)
 * स्नोबॉल (क्रमादेशन भाषा)
 * बर्फ़ीला तूफ़ान
 * स्पिटबोल
 * यूनिकॉन (क्रमादेशन भाषा)

अग्रिम पठन

 * republished Salida, CO: Catspaw, 1986 (ISBN 0-939793-00-8).
 * republished Salida, CO: Catspaw, 1986 (ISBN 0-939793-00-8).

बाहरी संबंध

 * Cस्नोबॉल4 is a free and open source BSD-licensed port of the original Bell Labs स्नोबॉल4 to systems with a C compiler, and includes SPITBOL and Blocks enhancements.
 * Catspaw, Inc. offers implementations of and commercial support for स्नोबॉल4
 * ].
 * For a small brief taste of what स्नोबॉल4 is about try this online compiler
 * Try It Online (स्नोबॉल4/Cस्नोबॉल) Online compiler
 * For a small brief taste of what स्नोबॉल4 is about try this online compiler
 * Try It Online (स्नोबॉल4/Cस्नोबॉल) Online compiler