स्नोबोल: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Text-string-oriented programming language}} {{About|the programming language|the cleaning product|SnoBol (cleaner)}} {{Infobox programming language | name...")
 
No edit summary
 
(12 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Short description|Text-string-oriented programming language}}
{{Short description|Text-string-oriented programming language}}{{Infobox programming language
{{About|the programming language|the cleaning product|SnoBol (cleaner)}}
 
{{Infobox programming language
| name                  = SNOBOL
| name                  = SNOBOL
| paradigm              = [[imperative programming|Imperative]], [[Procedural programming|procedural]], [[unstructured programming|unstructured]]
| paradigm              = [[imperative programming|Imperative]], [[Procedural programming|procedural]], [[unstructured programming|unstructured]]
Line 15: Line 12:
| website                = https://www.regressive.org/snobol4/
| website                = https://www.regressive.org/snobol4/
}}
}}
SNOBOL (स्ट्रिंग ओरिएंटेड और सिंबॉलिक लैंग्वेज) 1962 और 1967 के बीच AT&T Corporation|AT&T [[Bell Laboratories]] by David J. Farber, Ralph E. Griswold and Ivan P. Polonsky में विकसित [[प्रोग्रामिंग भाषा]]ओं की एक श्रृंखला है, जो SNOBOL4 में समाप्त हुई। यह 1950 और 1960 के दशक के दौरान विकसित कई [[स्ट्रिंग (कंप्यूटर विज्ञान)]] | टेक्स्ट-स्ट्रिंग-उन्मुख भाषाओं में से एक थी; अन्य में [[COMIT]] और [[TRAC (प्रोग्रामिंग भाषा)]] शामिल हैं।
स्नोबॉल (श्रृंखला उन्मुख और प्रतीकात्मक भाषा) 1962 और 1967 के बीच AT&T [[Bell Laboratories|बेल लैबोरेटरीज]] डेविड जे. फार्बर, राल्फ ई. ग्रिसवॉल्ड और इवान पी. पोलोनस्की द्वारा विकसित [[प्रोग्रामिंग भाषा|क्रमादेशन भाषा]]ओं की एक श्रृंखला है, जो स्नोबॉल4 में समाप्त हुई। यह 1950 और 1960 के दशक के दौरान विकसित कई अवतरण-श्रृंखला-उन्मुख भाषाओं में से एक थी; अन्य में [[COMIT|कॉमिट]] और [[TRAC (प्रोग्रामिंग भाषा)|ट्रैक (क्रमादेशन भाषा)]] सम्मिलित हैं।


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


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


1980 और 1990 के दशक में इसका उपयोग फीका पड़ गया क्योंकि [[AWK]] और [[पर्ल]] जैसी नई भाषाओं ने [[[[नियमित अभिव्यक्ति]]]]यों के माध्यम से स्ट्रिंग हेरफेर को फैशनेबल बना दिया। SNOBOL4 पैटर्न बैकस-नौर फॉर्म व्याकरण को समाहित करते हैं, जो संदर्भ-मुक्त व्याकरण के बराबर हैं और नियमित अभिव्यक्तियों की तुलना में अधिक शक्तिशाली हैं।<ref>{{cite journal |author=Gimpel, J. F. |title=A theory of discrete patterns and their implementation in SNOBOL4 |journal=Communications of the ACM |volume=16 |issue=2 |date=February 1973 |page=91-100 |doi=10.1145/361952.361960|s2cid=17059429 |doi-access=free }}</ref> एडब्ल्यूके और पर्ल के मौजूदा संस्करणों में नियमित अभिव्यक्ति वास्तव में [[नियमित भाषा]] में नियमित अभिव्यक्तियों के विस्तार हैं, लेकिन एसएनओबीओएल4 पैटर्न के विपरीत नियमित अभिव्यक्तियां रिकर्सिव नहीं हैं, जो एसएनओबीओएल4 पैटर्न के लिए एक अलग कम्प्यूटेशनल लाभ देती हैं।<ref>{{cite web|url=http://www.drdobbs.com/architecture-and-design/programs-that-transform-their-own-source/228701469 |title=Dr. Dobb's: Programs That Transform Their Own Source Code; or: the Snobol Foot Joke |publisher=Dobbscodetalk.com |access-date=2011-12-04}}</ref> (पुनरावर्ती अभिव्यक्ति पर्ल 5 संस्करण इतिहास में प्रकट हुई थी। पर्ल 5.10, हालांकि, दिसंबर 2007 में जारी किया गया था।<ref>{{cite web|author=Contact details |url=http://perldoc.perl.org/5.10.0/perlre.html#Extended-Patterns |title=perlre |publisher=perldoc.perl.org |access-date=2011-12-04}}</ref><ref>{{cite web|url=http://www.rexegg.com/regex-recursion.html|title=Recursive Regex Tutorial|access-date=2017-03-19}}</ref>)
1980 और 1990 के दशक में इसका उपयोग फीका पड़ गया क्योंकि [[AWK]] और [[पर्ल]] जैसी नई भाषाओं ने [[नियमित अभिव्यक्ति]]यों के माध्यम से श्रृंखला प्रकलन को प्रचलित बना दिया। स्नोबॉल4 प्रतिरूप BNF व्याकरण को समाहित करते हैं, जो संदर्भ-मुक्त व्याकरण के बराबर हैं और नियमित अभिव्यक्तियों की तुलना में अधिक शक्तिशाली हैं।<ref>{{cite journal |author=Gimpel, J. F. |title=A theory of discrete patterns and their implementation in SNOBOL4 |journal=Communications of the ACM |volume=16 |issue=2 |date=February 1973 |page=91-100 |doi=10.1145/361952.361960|s2cid=17059429 |doi-access=free }}</ref> AWK और Perl के मौजूदा संस्करणों में नियमित अभिव्यक्ति वास्तव में [[नियमित भाषा|हस्तकौशल]] में नियमित अभिव्यक्तियों के विस्तार हैं, लेकिन स्नोबॉल4 प्रतिरूप के विपरीत नियमित अभिव्यक्तियां आवर्ती नहीं हैं, जो स्नोबॉल4 प्रतिरूप के लिए एक अलग संगणनात्मक लाभ देती हैं।<ref>{{cite web|url=http://www.drdobbs.com/architecture-and-design/programs-that-transform-their-own-source/228701469 |title=Dr. Dobb's: Programs That Transform Their Own Source Code; or: the Snobol Foot Joke |publisher=Dobbscodetalk.com |access-date=2011-12-04}}</ref> (पुनरावर्ती अभिव्यक्ति पर्ल 5 संस्करण इतिहास में प्रकट हुई थी। पर्ल 5.10, हालांकि, दिसंबर 2007 में जारी किया गया था।<ref>{{cite web|author=Contact details |url=http://perldoc.perl.org/5.10.0/perlre.html#Extended-Patterns |title=perlre |publisher=perldoc.perl.org |access-date=2011-12-04}}</ref><ref>{{cite web|url=http://www.rexegg.com/regex-recursion.html|title=Recursive Regex Tutorial|access-date=2017-03-19}}</ref>)


बाद में SL5 (1977)<ref>{{cite journal |first1=Ralph E. |last1=Griswold |first2=David R. |last2=Hanson |title=An Overview of SL5 |journal=ACM SIGPLAN Notices |volume=12 |issue=4 |pages=40–50 |date=April 1977 |doi=10.1145/954654.954658 |s2cid=38692673 |url=|doi-access=free }}</ref> और [[चिह्न (प्रोग्रामिंग भाषा)]] (1978) भाषाओं को ग्रिसवॉल्ड द्वारा SNOBOL4 पैटर्न के बैकट्रैकिंग को अधिक मानक [[ALGOL]] जैसी संरचना के साथ संयोजित करने के लिए डिज़ाइन किया गया था।
बाद में SL5 (1977)<ref>{{cite journal |first1=Ralph E. |last1=Griswold |first2=David R. |last2=Hanson |title=An Overview of SL5 |journal=ACM SIGPLAN Notices |volume=12 |issue=4 |pages=40–50 |date=April 1977 |doi=10.1145/954654.954658 |s2cid=38692673 |url=|doi-access=free }}</ref> और [[चिह्न (प्रोग्रामिंग भाषा)|चिह्न (क्रमादेशन भाषा)]] (1978) भाषाओं को ग्रिसवॉल्ड द्वारा स्नोबॉल4 प्रतिरूप के पश्चअनुमार्गण को अधिक मानक [[ALGOL|ऐल्गॉल]] जैसी संरचना के साथ संयोजित करने के लिए अभिकल्पित किया गया था।


== विकास ==
== विकास ==


=== SNOBOL1 ===
=== स्नोबॉल1 ===
प्रारंभिक SNOBOL भाषा को इसके लेखकों द्वारा बहुपदों के प्रतीकात्मक हेरफेर के साथ काम करने के लिए उपयोग किए जाने वाले उपकरण के रूप में बनाया गया था। यह [[IBM 7090]] के लिए असेम्बली भाषा में लिखा गया था। इसमें एक साधारण सिंटैक्स था, केवल एक डेटाटाइप, स्ट्रिंग, कोई फ़ंक्शन नहीं, और कोई घोषणा नहीं और बहुत कम त्रुटि नियंत्रण। हालाँकि, इसकी सादगी और इसकी व्यक्तिगत प्रकृति के बावजूद इसका उपयोग अन्य समूहों में फैलने लगा। नतीजतन, लेखकों ने इसे विस्तारित करने और इसे साफ करने का फैसला किया।
प्रारंभिक स्नोबॉल भाषा को इसके लेखकों द्वारा बहुपदों के प्रतीकात्मक प्रकलन के साथ काम करने के लिए उपयोग किए जाने वाले उपकरण के रूप में बनाया गया था। यह [[IBM 7090]] के लिए समन्वायोजन भाषा में लिखा गया था। इसमें एक साधारण वाक्यविचार था, केवल एक प्रदत्त प्रकार, श्रृंखला, कोई प्रकार्य नहीं, और कोई घोषणा नहीं और बहुत कम त्रुटि नियंत्रण था। हालाँकि, इसकी सरलता और इसकी व्यक्तिगत प्रकृति होने पर भी इसका उपयोग अन्य समूहों में विस्तृत होने लगा। नतीजतन, लेखकों ने इसे विस्तारित करने और इसे सुव्यवस्थित करने का निर्णय किया।
 
=== स्नोबॉल2 ===
स्नोबॉल2 उपस्थित था, लेकिन यह उपयोगकर्ता-परिभाषित कार्यों के बिना एक अल्पकालिक मध्यवर्ती विकास संस्करण था और इसे कभी जारी नहीं किया गया था।
 
=== स्नोबॉल3 ===
स्नोबॉल को मानक और उपयोगकर्ता परिभाषित दोनों कार्यों को जोड़ने के लिए फिर से लिखा गया था, और परिणाम स्नोबॉल3 के रूप में जारी किया गया था। स्नोबॉल3 अत्यंत लोकप्रिय हो गया और अन्य क्रमादेशित्रों द्वारा IBM 7090 के अलावा अन्य कंप्यूटरों के लिए फिर से लिखा गया। परिणामस्वरूप, कई असंगत बोलियाँ उत्पन्न हुईं।
 
=== स्नोबॉल4 ===
जैसा कि स्नोबॉल3 अधिक लोकप्रिय हो गया, लेखकों को भाषा के विस्तार के लिए अधिक से अधिक अनुरोध प्राप्त हुए। उन्हें उन संस्करणों में असंगति और दोष के बारे में व्यथा भी मिलने लगीं जिन्हें उन्होंने लिखा नहीं था। इसे संबोधित करने के लिए और 1960 के दशक के अंत में प्रस्तुत किए गए नए कंप्यूटरों का लाभ उठाने के लिए, स्नोबॉल4 को कई अतिरिक्त प्रदत्त प्रकार और सुविधाओं के साथ विकसित करने का निर्णय लिया गया था, लेकिन कंप्यूटरों में बेहतर सुवाह्यता की अनुमति देने के लिए एक [[आभासी मशीन|आभासी यंत्र]] पर आधारित था।<ref>See Chapter 1 of ''The Macro Implementation of SNOBOL4''</ref> स्नोबॉल4 भाषा अनुवादक अभी भी स्मरांतरण भाषा में लिखा गया था। हालाँकि समायोजक की स्थूल विशेषताओं का उपयोग स्नोबॉल क्रियान्वयन भाषा, SIL के आभासी यंत्र निर्देशों को परिभाषित करने के लिए किया गया था। इसने आभासी यंत्र को प्रद्वार करना अपेक्षाकृत आसान बनाकर भाषा की सुवाह्यता में बहुत सुधार किया, जिसने किसी यन्त्र पर अपने कल्पित निर्देशों को फिर से बनाकर आयोजित किया, जिसमें एक दीर्घ समायोजक या वास्तव में एक उच्च स्तरीय भाषा सम्मिलित थी।<ref>SNOBOL4 has been implemented using C to recreate the virtual machine instructions.</ref>
 
यन्त्र-स्वतंत्र भाषा SIL [[डगलस मैक्लॉयय]] द्वारा श्रृंखला प्रकलन दीर्घ के सामान्यीकरण के रूप में उभरी, जिसका प्रारंभिक स्नोबॉल कार्यान्वयन में बड़े अनुपात पर उपयोग किया गया था। 1969 में, मेक्लोरी ने तालिका प्रकार को स्नोबॉल4 में जोड़ने पर दृढ़ रहकर फिर से भाषा को प्रभावित किया।<ref name="Gris78">{{cite journal |last=Griswold |first=Ralph |author-link=Ralph Griswold |title=A history of the SNOBOL programming languages |journal=ACM SIGPLAN Notices |pages=275–308 |volume=13 |number=8 |year=1978 |doi=10.1145/960118.808393 |s2cid=5413577 |url=http://pdfs.semanticscholar.org/a404/c09b14e2b03496604387f532fd33975179ec.pdf |archive-url=https://web.archive.org/web/20190302233559/http://pdfs.semanticscholar.org/a404/c09b14e2b03496604387f532fd33975179ec.pdf |url-status=dead |archive-date=2019-03-02 }}</ref><ref>{{cite book |editor-link=Richard Wexelblat|editor-first=Richard L. |editor-last=Wexelblat |title=History of Programming Languages |orig-year=1981 |year=2014 |publisher=Academic Press |isbn=9781483266169 |pages=784}}</ref>
 
 
 
== स्नोबॉल4 सुविधाएँ ==
स्नोबॉल प्रारूप और [[समारोह (प्रोग्रामिंग)|क्रमादेशन]] शैली में विशिष्ट है, जो समकालीन प्रक्रियात्मक भाषाओं जैसे कि [[फोरट्रान]] और ऐल्गॉल से मौलिक रूप से भिन्न हैं।
 
स्नोबॉल4 कई अंतर्निहित [[डेटा प्रकार|आँकड़ा प्रारूपों]] का समर्थन करता है, जैसे [[पूर्णांक]] और सीमित सटीक [[वास्तविक संख्या]], श्रृंखला (कंप्यूटर विज्ञान), [[पैटर्न मिलान|प्रतिरूप मिलान]], [[सरणी डेटा प्रकार|सरणी आँकड़ा प्ररूप]], और साहचर्य सरणियाँ (सहयोगी सरणियाँ), और क्रमादेशक को अतिरिक्त डेटा को परिभाषित करने की अनुमति भी देता है। प्रकार और नए कार्य (क्रमादेशन)। स्नोबॉल4 की क्रमादेशक-परिभाषित आँकड़ा प्ररूप की सुविधा उस समय उन्नत थी - यह पहले [[COBOL|कोबोल]] और बाद में [[पास्कल प्रोग्रामिंग भाषा|पास्कल क्रमादेशन भाषा]] क्रमादेशन भाषाओं के अभिलेख के समान है।
 
सभी स्नोबॉल समादेश पंक्ति निम्न स्वरुप के हैं
:''label subject pattern'' '''=''' ''object'' ''':''' ''transfer''
 
पांच तत्वों में से प्रत्येक वैकल्पिक है। सामान्य तौर पर, विषय प्रतिरूप के खिलाफ मिलान किया जाता है। यदि वस्तु उपस्थित है, तो किसी भी मिलान किए गए भाग को प्रतिस्थापन के नियमों के माध्यम से वस्तु द्वारा प्रतिस्थापित किया जाता है। स्थानांतरण एक पूर्ण शाखा या सशर्त शाखा हो सकता है जो विषय मूल्यांकन, प्रतिरूप मूल्यांकन, प्रतिरूप मिलान, वस्तु मूल्यांकन या अंतिम समनुदेशन की सफलता या विफलता पर निर्भर करता है। यह एक प्रवाह के दौरान क्रमानुदेश द्वारा बनाए गए और संकलित किए गए कूट में स्थानांतरण भी हो सकता है।
 
एक स्नोबॉल प्रतिरूप बहुत सरल या अत्यंत जटिल हो सकता है। एक साधारण प्रतिरूप केवल एक अवतरण श्रृंखला (जैसे ABCD) है, लेकिन एक जटिल प्रतिरूप एक बड़ी संरचना हो सकती है, उदाहरण के लिए, कंप्यूटर भाषा का पूरा व्याकरण है। स्नोबॉल में एक भाषा दुभाषिया को कुछ बदलावों के साथ लगभग सीधे बैकस-नौर प्ररूप अभिव्यंजना से लागू करना संभव है। हार्डवेयर के एक पूरी तरह से सैद्धांतिक टुकड़े के लिए एक दीर्घ समायोजक और एक दुभाषिया बनाने में कुछ सौ रेखाएं लग सकती हैं, जिसमें एक रेखा के साथ एक नया निर्देश जोड़ा जा सकता है।
 
जटिल स्नोबॉल प्रतिरूप ऐसे काम कर सकते हैं जो अधिकांश अन्य प्रतिरूप-मिलान वाली भाषाओं में उपयोग किए जाने वाले अधिक अभाज्य नियमित व्यंजक का उपयोग करके अव्यावहारिक या असंभव होंगे। इसमें से कुछ शक्ति तथाकथित स्पिटबॉल विस्तारण से प्राप्त होती है (जो मूल रूप से मूल स्नोबॉल 4 भाषा के सभी आधुनिक कार्यान्वयनों में भी सम्मिलित की गई है), हालांकि उनके बिना समान शक्ति प्राप्त करना संभव है। इस शक्ति का एक हिस्सा अनुषंगी प्रभाव से आता है जो प्रतिरूप मिलान संचालन के दौरान उत्पन्न करना संभव है, जिसमें कई मध्यवर्ती/अस्थायी मिलान परिणामों को सहेजना और प्रतिरूप सुमेलन के दौरान उपयोगकर्ता-लिखित कार्यों को लागू करने की क्षमता सम्मिलित है जो लगभग किसी वांछित प्रसंस्करण को आउटपुटित कर सकते हैं। प्रतिरूप को किसी भी अन्य प्रथम श्रेणी के आँकड़ा मद की तरह सहेजा जा सकता है, और इसे जोड़ा जा सकता है, यह अन्य प्रतिरूप के भीतर उपयोग किया जाता है, और बहुत ही जटिल और परिष्कृत प्रतिरूप अभिव्यक्ति बनाने के लिए उपयोग किया जाता है। उदाहरण के लिए, लिखना संभव है कि एक स्नोबॉल4 प्रतिरूप जो एक पूर्ण नाम और अंतर्राष्ट्रीय डाक पते से मेल खाता है, जो किसी भी चीज़ से अतिरिक्त है वह नियमित अभिव्यक्तियों का उपयोग करने का प्रयास करने के लिए भी व्यावहारिक है।
 
स्नोबॉल4 प्रतिरूप-मिलान एक पश्चअनुमार्गण कलन विधि का उपयोग करता है जो [[तर्क प्रोग्रामिंग|तर्क क्रमादेशन]] भाषा [[प्रोलॉग|प्रस्तावना]] में उपयोग किया जाता है, जो [[निश्चित खंड व्याकरण]] के माध्यम से प्रतिरूप-समान निर्माण प्रदान करता है। अधिकांश भाषाओं की तुलना में यह कलन विधि स्नोबॉल को तर्क क्रमादेशन भाषा के रूप में उपयोग करना आसान बनाता है।
 
स्नोबॉल एक [[कचरा संग्रह (कंप्यूटर विज्ञान)|कचरा-संग्रहित (कंप्यूटर विज्ञान)]] ढेर में चर, तार और डेटा संरचनाओं को संग्रहीत करता है।
 
 


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


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


=== SNOBOL4 ===
जैसा कि SNOBOL3 अधिक लोकप्रिय हो गया, लेखकों को भाषा के विस्तार के लिए अधिक से अधिक अनुरोध प्राप्त हुए। उन्हें उन संस्करणों में असंगति और बग के बारे में शिकायतें भी मिलने लगीं जिन्हें उन्होंने लिखा नहीं था। इसे संबोधित करने के लिए और 1960 के दशक के अंत में पेश किए गए नए कंप्यूटरों का लाभ उठाने के लिए, SNOBOL4 को कई अतिरिक्त डेटाटाइप्स और सुविधाओं के साथ विकसित करने का निर्णय लिया गया था, लेकिन कंप्यूटरों में बेहतर पोर्टेबिलिटी की अनुमति देने के लिए एक [[आभासी मशीन]] पर आधारित था।<ref>See Chapter 1 of ''The Macro Implementation of SNOBOL4''</ref> SNOBOL4 भाषा अनुवादक अभी भी असेम्बली भाषा में लिखा गया था। हालाँकि असेंबलर की मैक्रो विशेषताओं का उपयोग SNOBOL इम्प्लीमेंटेशन लैंग्वेज, SIL के वर्चुअल मशीन निर्देशों को परिभाषित करने के लिए किया गया था। इसने वर्चुअल मशीन को पोर्ट करना अपेक्षाकृत आसान बनाकर भाषा की पोर्टेबिलिटी में बहुत सुधार किया, जिसने किसी मशीन पर अपने वर्चुअल निर्देशों को फिर से बनाकर होस्ट किया, जिसमें एक मैक्रो असेंबलर या वास्तव में एक उच्च स्तरीय भाषा शामिल थी।<ref>SNOBOL4 has been implemented using C to recreate the virtual machine instructions.</ref>
मशीन-स्वतंत्र भाषा एसआईएल [[डगलस मैक्लॉयय]] द्वारा स्ट्रिंग मैनिपुलेशन मैक्रोज़ के सामान्यीकरण के रूप में उभरी, जिसका प्रारंभिक एसएनओबीओएल कार्यान्वयन में बड़े पैमाने पर उपयोग किया गया था। 1969 में, McIlroy ने तालिका प्रकार को SNOBOL4 में जोड़ने पर जोर देकर फिर से भाषा को प्रभावित किया।<ref name="Gris78">{{cite journal |last=Griswold |first=Ralph |author-link=Ralph Griswold |title=A history of the SNOBOL programming languages |journal=ACM SIGPLAN Notices |pages=275–308 |volume=13 |number=8 |year=1978 |doi=10.1145/960118.808393 |s2cid=5413577 |url=http://pdfs.semanticscholar.org/a404/c09b14e2b03496604387f532fd33975179ec.pdf |archive-url=https://web.archive.org/web/20190302233559/http://pdfs.semanticscholar.org/a404/c09b14e2b03496604387f532fd33975179ec.pdf |url-status=dead |archive-date=2019-03-02 }}</ref><ref>{{cite book |editor-link=Richard Wexelblat|editor-first=Richard L. |editor-last=Wexelblat |title=History of Programming Languages |orig-year=1981 |year=2014 |publisher=Academic Press |isbn=9781483266169 |pages=784}}</ref>




== SNOBOL4 सुविधाएँ ==
{{Original research|date=August 2020}}
SNOBOL प्रारूप [[समारोह (प्रोग्रामिंग)]] शैली में विशिष्ट है, जो समकालीन प्रक्रियात्मक भाषाओं जैसे कि [[फोरट्रान]] और ALGOL से मौलिक रूप से भिन्न हैं।


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


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


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


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


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


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


SNOBOL एक [[कचरा संग्रह (कंप्यूटर विज्ञान)]]|कचरा-एकत्रित ढेर में चर, तार और डेटा संरचनाओं को संग्रहीत करता है।
<syntaxhighlight lang=snobol>
          OUTPUT = "What is your name?"
          Username = INPUT
          OUTPUT = "Thank you, " Username
END
</syntaxhighlight>


== उदाहरण कार्यक्रम ==


हैलो, दुनिया! कार्यक्रम इस प्रकार हो सकता है...
एक उपयोगकर्ता का नाम पूछने के लिए एक साधारण क्रमानुदेश और फिर इसे आउटपुट वाक्य में प्रयोग करें ...
  OUTPUT = "What is your name?"


<वाक्यविन्यास हाईलाइट लैंग = स्नोबोल>
  Username = INPUT
          आउटपुट = हैलो, विश्व!
  OUTPUT = "Thank you, " Username
अंत
END
</वाक्यविन्यास हाइलाइट>


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


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


<वाक्यविन्यास हाईलाइट लैंग = स्नोबोल>
<syntaxhighlight lang=snobol>
           आउटपुट = आपका नाम क्या है?
           OUTPUT = "What is your name?"
           उपयोगकर्ता नाम = इनपुट
           Username = INPUT
           उपयोगकर्ता नाम जे: एस (लव)
           Username "J"                                            :S(LOVE)
           उपयोगकर्ता नाम के: एस (नफरत)
           Username "K"                                            :S(HATE)
मेह आउटपुट = हाय, उपयोगकर्ता नाम :(END)
MEH      OUTPUT = "Hi, " Username                                :(END)
LOVE OUTPUT = आपसे मिलकर कितना अच्छा लगा, यूजरनेम :(END)
LOVE     OUTPUT = "How nice to meet you, " Username              :(END)
हेट आउटपुट = ओह। यह आप हैं, उपयोगकर्ता नाम
HATE      OUTPUT = "Oh. It's you, " Username
अंत
END
</वाक्यविन्यास हाइलाइट>
</syntaxhighlight>
 


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


<वाक्यविन्यास हाईलाइट लैंग = स्नोबोल>
<syntaxhighlight lang=snobol>
           OUTPUT = यह प्रोग्राम आपसे व्यक्तिगत नाम पूछेगा
           OUTPUT = "This program will ask you for personal names"
           OUTPUT = जब तक आप रिटर्न दिए बिना रिटर्न दबाते हैं
           OUTPUT = "until you press return without giving it one"
           NameCount = 0 :(GETINPUT)
           NameCount = 0                                           :(GETINPUT)
दोबारा नाम गणना = नाम गणना + 1
AGAIN    NameCount = NameCount + 1
           आउटपुट = नाम नाम गणना: व्यक्तिगत नाम
           OUTPUT = "Name " NameCount ": " PersonalName
GETINPUT OUTPUT = कृपया मुझे नाम दें NameCount + 1
GETINPUT OUTPUT = "Please give me name " NameCount + 1  
           व्यक्तिगत नाम = इनपुट
           PersonalName = INPUT
           व्यक्तिगत नाम लेन (1): एस (फिर से)
           PersonalName LEN(1)                                     :S(AGAIN)
           आउटपुट = समाप्त। नाम गणना नाम का अनुरोध किया।
           OUTPUT = "Finished. " NameCount " names requested."
अंत
END
</वाक्यविन्यास हाइलाइट>
</syntaxhighlight>
 
 
 
 
 
 
 
 
 
 
 


== कार्यान्वयन ==
== कार्यान्वयन ==


क्लासिक कार्यान्वयन [[पीडीपी-10]] पर था; इसका उपयोग [[संकलक]], [[औपचारिक व्याकरण]] और कृत्रिम बुद्धिमत्ता, विशेष रूप से मशीनी अनुवाद और [[प्राकृतिक भाषा]]ओं की मशीन समझ के अध्ययन के लिए किया गया है। मूल कार्यान्वयन बेल लैब्स, होल्मडेल, एन.जे. में आईबीएम 7090 पर था। SNOBOL4 को विशेष रूप से पोर्टेबिलिटी के लिए डिज़ाइन किया गया था; पहला कार्यान्वयन 1966 में IBM 7094 पर शुरू किया गया था, लेकिन 1967 में IBM 360 पर पूरा हुआ। इसे तेजी से कई अन्य प्लेटफार्मों पर पोर्ट किया गया।
उत्कृष्ट कार्यान्वयन [[पीडीपी-10|PDP-10]] पर था; इसका उपयोग [[संकलक]], [[औपचारिक व्याकरण]] और कृत्रिम बुद्धिमत्ता, विशेष रूप से मशीनी अनुवाद और [[प्राकृतिक भाषा]]ओं की मशीन समझ के अध्ययन के लिए किया गया है। मूल कार्यान्वयन बेल प्रयोगशाला, होल्मडेल, एन.जे. में IBM 7090 पर था। स्नोबॉल4 को विशेष रूप से सुवाह्यता के लिए अभिकल्पित किया गया था; पहला कार्यान्वयन 1966 में IBM 7094 पर प्रारम्भ किया गया था, लेकिन 1967 में IBM 360 पर पूरा हुआ। इसे तेजी से कई अन्य मंच पर रख दिया गया।
 
इसकी कुछ बहुत उच्च-स्तरीय सुविधाओं को लागू करने में कठिनाई के कारण इसे सामान्यतः एक [[दुभाषिया (कंप्यूटर सॉफ्टवेयर)]] के रूप में लागू किया जाता है, लेकिन एक संकलक है, स्पिटबॉल संकलक, जो दुभाषिया द्वारा प्रदान की जाने वाली लगभग सभी सुविधाएं प्रदान करता है।
 
PDP-10 पर उत्कृष्ट कार्यान्वयन अत्यंत धीमा था, और 1972 में बेल प्रयोगशाला, होल्मडेल, एन.जे. के जेम्स गिंपेल ने PDP-10 के लिए स्नोबॉल4 का मूल कार्यान्वयन प्रस्तुत किया जिसे उन्होंने सिटबॉल नाम दिया। उन्होंने श्रृंखला प्रसंस्करण में एक स्नातक वर्ग के आधार के रूप में अभिकल्पना का उपयोग किया जो उन्होंने उस वर्ष [[स्टीवंस इंस्टीट्यूट ऑफ टेक्नोलॉजी]] में पढ़ाया था (इसीलिए इसे सिटबॉल नाम दिया गया था)। छात्रों को (PDP-10 समायोजक में) लागू करने के लिए अनुभाग दिए गए थे और पूरा सत्र सिटबॉल को लागू करने पर केंद्रित था। यह सत्र के अंत तक 80% से अधिक पूरा हो गया था और बाद में गर्मियों में प्रोफेसर गिंपेल और कई छात्रों द्वारा पूरा किया गया था। सिटबॉल एक पूर्ण विशेषताओं वाला, उच्च प्रदर्शन वाला स्नोबॉल4 दुभाषिया था।
 
[[GNAT]] Ada (क्रमादेशन भाषा) संकलनकर्ता एक संकुल (GNAT.स्पिटबॉल) के साथ आता है जो सभी स्पिटबॉल श्रृंखला प्रकलन अर्थविज्ञान को लागू करता है। इसे एडा प्रोग्राम के भीतर से बुलाया जा सकता है।


इसकी कुछ बहुत उच्च-स्तरीय सुविधाओं को लागू करने में कठिनाई के कारण इसे आम तौर पर एक [[दुभाषिया (कंप्यूटर सॉफ्टवेयर)]] के रूप में लागू किया जाता है, लेकिन एक संकलक है, SPITBOL संकलक, जो दुभाषिया द्वारा प्रदान की जाने वाली लगभग सभी सुविधाएं प्रदान करता है।
[[मिशिगन टर्मिनल सिस्टम|मिशिगन अवसानक प्रणाली]] (MTS) के लिए संचिका संपादक ने स्नोबॉल4 प्रतिरूप के आधार पर प्रतिरूप मिलान प्रदान किया।<ref>[https://books.google.com/books?id=c9BWAAAAMAAJ Introduction to the MTS file editor], University of Michigan Computing Center, 1986.</ref>


पीडीपी-10 पर क्लासिक कार्यान्वयन काफी धीमा था, और 1972 में बेल लैब्स, होल्मडेल, एन.जे. के जेम्स गिंपेल ने पीडीपी-10 के लिए एसएनओबीओएल4 का मूल कार्यान्वयन तैयार किया जिसे उन्होंने एसआईटीबीओएल नाम दिया। उन्होंने स्ट्रिंग प्रोसेसिंग में एक स्नातक वर्ग के आधार के रूप में डिजाइन का उपयोग किया जो उन्होंने उस वर्ष [[स्टीवंस इंस्टीट्यूट ऑफ टेक्नोलॉजी]] में पढ़ाया था (इसीलिए इसे SITBOL नाम दिया गया था)। छात्रों को (पीडीपी-10 असेंबलर में) लागू करने के लिए सेक्शन दिए गए थे और पूरा सेमेस्टर SITBOL को लागू करने पर केंद्रित था। यह सेमेस्टर के अंत तक 80% से अधिक पूरा हो गया था और बाद में गर्मियों में प्रोफेसर गिंपेल और कई छात्रों द्वारा पूरा किया गया था। SITBOL एक पूर्ण विशेषताओं वाला, उच्च प्रदर्शन वाला SNOBOL4 दुभाषिया था।
वर्तमान में कई कार्यान्वयन उपलब्ध हैं। फिल बडने द्वारा लिखित दीर्घ स्नोबॉल4 in C एक मुक्त, खुला स्रोत कार्यान्वयन है, जो लगभग किसी भी मंच पर चलने में सक्षम है।<ref>{{cite web| title=SNOBOL4.ORG -- SNOBOL4 Resources |url=http://www.regressive.org/snobol4/}}</ref> कैटस्पॉ, Inc ने DOS, मैकिनटोश, सन, RS/6000, और अन्य सहित कई अलग-अलग कंप्यूटर मंच के लिए स्नोबॉल4 भाषा का व्यावसायिक कार्यान्वयन प्रदान किया, और ये कार्यान्वयन अब कैटस्पॉ से मुक्त उपलब्ध हैं। मिनेसोटा स्नोबॉल4, विक्टर्स बर्स्टिस द्वारा, मूल IBM अधिसंसाधित्र संस्करण (यहां तक ​​कि फोरट्रान-जैसे FORMAT विवरण समर्थन सहित) के निकटतम PC कार्यान्वयन भी निशुल्क है।<ref>{{cite web| url=http://www.berstis.com/snobol4.htm |title=The MINNESOTA SNOBOL4 Programming Language}}</ref>


[[GNAT]] Ada (प्रोग्रामिंग लैंग्वेज) कंपाइलर एक पैकेज (GNAT.Spitbol) के साथ आता है जो सभी Spitbol स्ट्रिंग हेरफेर सिमेंटिक्स को लागू करता है। इसे एडा कार्यक्रम के भीतर से बुलाया जा सकता है।
हालांकि स्नोबॉल में स्वयं कोई [[संरचित प्रोग्रामिंग|संरचित क्रमादेशन]] विशेषताएं नहीं हैं, [[बर्फानी तूफ़ान|स्नॉस्टोर्म]] नामक एक स्नोबॉल पूर्वप्रक्रमक को मिशिगन विश्वविद्यालय में मिशिगन अवसानक प्रणाली (MTS) के तहत उपयोग के लिए 1970 के दशक के दौरान फ्रेड जी. स्वार्ट्ज द्वारा अभिकल्पित और कार्यान्वित किया गया था।<ref name="MTSVolume9-June1979">[https://books.google.ca/books?id=WxVXAAAAMAAJ&pg=PA114&lpg=PA114&dq=snostorm+preprocessor&source=bl&ots=H5fdaCJj5n&sig=xvuW41x302-Je8xI1q8SbMSTM4Y&hl=en&sa=X&ei=E4f3U5jaOaLFigLOyYD4DQ&redir_esc=y#v=onepage&q=snostorm%20preprocessor&f=false "SNOSTORM"], ''MTS Volume 9: SNOBOL4 in MTS'', Computing Center, University of Michigan, June 1979, pages 99-120. Retrieved 1 September 2014.</ref> MTS चलाने वाली आठ से पंद्रह स्थल पर स्नोस्टॉर्म का उपयोग किया गया था। यह 1982 और 1984 के बीच [[यूनिवर्सिटी कॉलेज लंदन]] (UCL) में भी उपलब्ध था।


[[मिशिगन टर्मिनल सिस्टम]] (MTS) के लिए फाइल एडिटर ने SNOBOL4 पैटर्न के आधार पर पैटर्न मिलान प्रदान किया।<ref>[https://books.google.com/books?id=c9BWAAAAMAAJ Introduction to the MTS file editor], University of Michigan Computing Center, 1986.</ref>
[[एंड्रयू कोएनिग (प्रोग्रामर)|एंड्रयू कोएनिग (क्रमादेशक)]] द्वारा स्नोकोन स्नोबॉल4 भाषा में विभाग-संरचित निर्माण जोड़ता है। स्नोकोन स्नोबॉल4 के उचित अधिसमुच्चय के स्थान पर एक स्व-निहित क्रमादेशन भाषा है।<ref>[http://www.snobol4.com/report.htm "The Snocone Programming Language"], Andrew Koenig, USENIX (Portland, Oregon), June 1985. Retrieved 2 September 2014.</ref>
वर्तमान में कई कार्यान्वयन उपलब्ध हैं। फिल बडने द्वारा लिखित Macro SNOBOL4 in C एक मुक्त, खुला स्रोत कार्यान्वयन है, जो लगभग किसी भी मंच पर चलने में सक्षम है।<ref>{{cite web| title=SNOBOL4.ORG -- SNOBOL4 Resources |url=http://www.regressive.org/snobol4/}}</ref> Catspaw, Inc ने DOS, Macintosh, Sun, RS/6000, और अन्य सहित कई अलग-अलग कंप्यूटर प्लेटफार्मों के लिए SNOBOL4 भाषा का व्यावसायिक कार्यान्वयन प्रदान किया, और ये कार्यान्वयन अब Catspaw से मुक्त उपलब्ध हैं। मिनेसोटा SNOBOL4, विक्टर्स बर्स्टिस द्वारा, मूल IBM मेनफ्रेम संस्करण (यहां तक ​​कि फोरट्रान-जैसे FORMAT स्टेटमेंट समर्थन सहित) के निकटतम पीसी कार्यान्वयन भी मुफ्त है।<ref>{{cite web| url=http://www.berstis.com/snobol4.htm |title=The MINNESOTA SNOBOL4 Programming Language}}</ref>
हालांकि SNOBOL में स्वयं कोई [[संरचित प्रोग्रामिंग]] विशेषताएं नहीं हैं, [[बर्फानी तूफ़ान]] नामक एक SNOBOL प्रीप्रोसेसर को मिशिगन विश्वविद्यालय में मिशिगन टर्मिनल सिस्टम (MTS) के तहत उपयोग के लिए 1970 के दशक के दौरान फ्रेड जी. स्वार्ट्ज द्वारा डिजाइन और कार्यान्वित किया गया था।<ref name=MTSVolume9-June1979>[https://books.google.ca/books?id=WxVXAAAAMAAJ&pg=PA114&lpg=PA114&dq=snostorm+preprocessor&source=bl&ots=H5fdaCJj5n&sig=xvuW41x302-Je8xI1q8SbMSTM4Y&hl=en&sa=X&ei=E4f3U5jaOaLFigLOyYD4DQ&redir_esc=y#v=onepage&q=snostorm%20preprocessor&f=false "SNOSTORM"], ''MTS Volume 9: SNOBOL4 in MTS'', Computing Center, University of Michigan, June 1979, pages 99-120. Retrieved 1 September 2014.</ref> MTS चलाने वाली आठ से पंद्रह साइटों पर स्नोस्टॉर्म का उपयोग किया गया था। यह 1982 और 1984 के बीच [[यूनिवर्सिटी कॉलेज लंदन]] (यूसीएल) में भी उपलब्ध था।


[[एंड्रयू कोएनिग (प्रोग्रामर)]] द्वारा स्नोकोन SNOBOL4 भाषा में ब्लॉक-संरचित निर्माण जोड़ता है। स्नोकोन SNOBOL4 के उचित सुपरसेट के बजाय एक स्व-निहित प्रोग्रामिंग भाषा है।<ref>[http://www.snobol4.com/report.htm "The Snocone Programming Language"], Andrew Koenig, USENIX (Portland, Oregon), June 1985. Retrieved 2 September 2014.</ref>
स्पिटबॉल कार्यान्वयन ने कई विशेषताओं को भी प्रस्तुत किया, जो पारंपरिक संरचित क्रमादेशन संकेतशब्द का उपयोग नहीं करते हुए, फिर भी कई समकक्ष क्षमताओं को प्रदान करने के लिए उपयोग किया जा सकता है, जिन्हें सामान्यतः संरचित क्रमादेशन के रूप में माना जाता है, विशेष रूप से स्थिर यदि/तब/अथवा प्रकार के निर्माण के रूप में माना जाता है। तब से इन सुविधाओं को नवीनतम स्नोबॉल4 कार्यान्वयन में जोड़ा गया है। वाणिज्यिक उत्पाद के रूप में कई वर्षों के बाद, अप्रैल 2009 में स्पिटबॉल को [[जीएनयू जनरल पब्लिक लाइसेंस|GNU सामान्य जनता अनुज्ञप्ति]] के तहत मुफ्त सॉफ्टवेयर के रूप में जारी किया गया।
SPITBOL कार्यान्वयन ने कई विशेषताओं को भी पेश किया, जो पारंपरिक संरचित प्रोग्रामिंग कीवर्ड का उपयोग नहीं करते हुए, फिर भी कई समकक्ष क्षमताओं को प्रदान करने के लिए उपयोग किया जा सकता है, जिन्हें आमतौर पर संरचित प्रोग्रामिंग के रूप में माना जाता है, विशेष रूप से नेस्टेड if/then/else प्रकार के निर्माण। तब से इन सुविधाओं को नवीनतम SNOBOL4 कार्यान्वयन में जोड़ा गया है। वाणिज्यिक उत्पाद के रूप में कई वर्षों के बाद, अप्रैल 2009 में SPITBOL को [[जीएनयू जनरल पब्लिक लाइसेंस]] के तहत मुफ्त सॉफ्टवेयर के रूप में जारी किया गया।


== नामकरण ==
== नामन ==


डेव फार्बर के अनुसार,<ref>[http://www.listbox.com/member/archive/247/2008/12/sort/time_rev/page/1/entry/0:180/20081226091150:1B4F85B0-D357-11DD-ABF7-AB09AB975BFC/ WORTH READING Wikipedia entry on SNOBOL {{--}} the TRUE story NOT Wikipedias] (Dave Farber, Interesting People mailing list, 26 December 2008)</ref> वह, ग्रिसवॉल्ड और पोलोन्स्की अंत में प्रतीकात्मक अभिव्यक्ति दुभाषिया SEXI के नाम पर पहुंचे।
डेव फार्बर के अनुसार,<ref>[http://www.listbox.com/member/archive/247/2008/12/sort/time_rev/page/1/entry/0:180/20081226091150:1B4F85B0-D357-11DD-ABF7-AB09AB975BFC/ WORTH READING Wikipedia entry on SNOBOL {{--}} the TRUE story NOT Wikipedias] (Dave Farber, Interesting People mailing list, 26 December 2008)</ref> वह, ग्रिसवॉल्ड और पोलोन्स्की अंत में प्रतीकात्मक अभिव्यक्ति दुभाषिया SEXI के नाम पर पहुंचे।


{{Quote|All went well until one day I was submitting a batch job to assemble the system and as normal on my JOB [[Punched card|card]] {{--}} the first card in the deck, I, in BTL standards, punched my job and my name {{--}} SEXI Farber.
{{Quote|सब कुछ ठीक चल रहा था जब तक कि एक दिन मैं प्रणाली को समन्वायोजित करने के लिए एक वर्ग कार्य जमा नहीं कर रहा था और सामान्य रूप से मेरे कार्य काष्ठचत्वर में पहला पत्रक, BTL मानकों में, छिद्रित किया गया मेरा कार्य और मेरा नाम {{--}} SEXI फार्बर।


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 [[wikt:snowball's chance in hell|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 [[COBOL|BOL languages]]. We then stretched our mind to find what it stood for.}}
इससे यह स्पष्ट हो गया कि हमें किसी और नाम की आवश्यकता थी !! हमने बैठकर बात की और कॉफी पी और रबर बैंड विकीर्ण किया और बहुत अधिक समय के बाद किसी ने कहा {{--}} सबसे अधिक संभावना राल्फ {{--}} "हमारे पास नाम खोजने के नरक में स्नोबॉल का मौका नहीं है"। हम सब एक साथ चिल्ला उठे, "हमें मिल गया {{--}} SNOBOL" सभी BOL भाषाओं की भावना में। इसके बाद हमने यह पता लगाने के लिए अपना दिमाग बढ़ाया कि यह किस लिए खड़ा है।}}
SNOBOL के सामान्य [[संक्षिप्त नाम]] हैं 'स्ट्रिंग ओरिएंटेड सिम्बोलिक लैंग्वेज'<ref>''Computers and the humanities'' '''1''':158, 1967.</ref> या (एक परिवर्णी शब्द और इनिशियलिज़्म|अर्ध-प्रारंभिकवाद के रूप में) 'स्ट्रिंग ओरिएंटेड सिम्बोलिक लैंग्वेज'।<ref>{{cite book |editor-first=Jack |editor-last=Belzer |editor2-first=Albert G. |editor2-last=Holzman |editor3-first=Allen |editor3-last=Kent |chapter=SNOBOL |chapter-url=https://books.google.com/books?id=CEGXR7FeAWQC&dq=SNOBOL&pg=PA173 |title=Encyclopedia of Computer Science and Technology |publisher=CRC Press |volume=13 |date=1979 |isbn=0-8247-2263-9 |pages=173 }}</ref>
स्नोबॉल के सामान्य [[संक्षिप्त नाम]] हैं 'श्रृंखला उन्मुख प्रतीकात्मक भाषा'<ref>''Computers and the humanities'' '''1''':158, 1967.</ref> या (एक परिवर्णी शब्द और अर्ध-प्रारंभिकवाद के रूप में) 'श्रृंखला उन्मुख प्रतीकात्मक भाषा'।<ref>{{cite book |editor-first=Jack |editor-last=Belzer |editor2-first=Albert G. |editor2-last=Holzman |editor3-first=Allen |editor3-last=Kent |chapter=SNOBOL |chapter-url=https://books.google.com/books?id=CEGXR7FeAWQC&dq=SNOBOL&pg=PA173 |title=Encyclopedia of Computer Science and Technology |publisher=CRC Press |volume=13 |date=1979 |isbn=0-8247-2263-9 |pages=173 }}</ref>




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


== संदर्भ ==
== संदर्भ ==
Line 157: Line 184:


== बाहरी संबंध ==
== बाहरी संबंध ==
* [http://www.regressive.org/snobol4/csnobol4 CSNOBOL4] is a free and open source BSD-licensed port of the original Bell Labs SNOBOL4 to systems with a C compiler, and includes SPITBOL and Blocks enhancements.
* [http://www.regressive.org/snobol4/csnobol4 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 स्पिटबॉल and Blocks enhancements.
* [http://www.regressive.org/snobol4/ Catspaw, Inc. offers implementations of and commercial support for SNOBOL4]
* [http://www.regressive.org/snobol4/ Catspaw, Inc. offers implementations of and commercial support for स्नोबॉल4]
* {{curlie|Computers/Programming/Languages/Snobol}}
* {{curlie|Computers/Programming/Languages/Snobol}}
* {{cite web |title=Oral history interview with Ralph E. Griswold — discusses development of SNOBOL |date= 25 July 1990|publisher=[[Charles Babbage Institute]], University of Minnesota |location=Minneapolis |url=http://purl.umn.edu/107340|last1= Griswold|first1= Ralph E.}} ].
* {{cite web |title=Oral history interview with Ralph E. Griswold — discusses development of SNOBOL |date= 25 July 1990|publisher=[[Charles Babbage Institute]], University of Minnesota |location=Minneapolis |url=http://purl.umn.edu/107340|last1= Griswold|first1= Ralph E.}} ].
* {{cite web |title=Charles Hall Collection on the SNOBOL Programming Language |date= |publisher=Charles Babbage Institute, University of Minnesota |location=Minneapolis |url=http://purl.umn.edu/40905 }}
* {{cite web |title=Charles Hall Collection on the SNOBOL Programming Language |date= |publisher=Charles Babbage Institute, University of Minnesota |location=Minneapolis |url=http://purl.umn.edu/40905 }}
* [https://www.vintagebigblue.org/Compilerator/SNOBOL4/mvsSnobol4Compile.php For a small brief taste of what SNOBOL4 is about try this online compiler]
* [https://www.vintagebigblue.org/Compilerator/SNOBOL4/mvsSnobol4Compile.php For a small brief taste of what स्नोबॉल4 is about try this online compiler]
* [https://tio.run/#snobol4 Try It Online (Snobol4/CSNOBOL)] Online compiler
* [https://tio.run/#snobol4 Try It Online (स्नोबॉल4/Cस्नोबॉल)] Online compiler


{{Authority control}}
{{Authority control}}
[[Category: पैटर्न मिलान प्रोग्रामिंग भाषाएं]] [[Category: 1962 में बनाई गई प्रोग्रामिंग लैंग्वेज]] [[Category: SNOBOL प्रोग्रामिंग भाषा परिवार]] [[Category: विधानसभा भाषा सॉफ्टवेयर]] [[Category: पाठ-उन्मुख प्रोग्रामिंग भाषाएँ]] [[Category: प्रोग्रामिंग भाषा]] [[Category: होमोइकोनिक प्रोग्रामिंग लैंग्वेज]] [[Category: 1962 सॉफ्टवेयर]]


[[Category: Machine Translated Page]]
[[Category:1962 में बनाई गई प्रोग्रामिंग लैंग्वेज]]
[[Category:1962 सॉफ्टवेयर]]
[[Category:Articles with Curlie links]]
[[Category:Created On 17/02/2023]]
[[Category:Created On 17/02/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:SNOBOL प्रोग्रामिंग भाषा परिवार]]
[[Category:Short description with empty Wikidata description]]
[[Category:Template documentation pages|Short description/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:पाठ-उन्मुख प्रोग्रामिंग भाषाएँ]]
[[Category:पैटर्न मिलान प्रोग्रामिंग भाषाएं]]
[[Category:प्रोग्रामिंग भाषा]]
[[Category:विधानसभा भाषा सॉफ्टवेयर]]
[[Category:होमोइकोनिक प्रोग्रामिंग लैंग्वेज]]

Latest revision as of 16:12, 2 March 2023

SNOBOL
ParadigmImperative, procedural, unstructured
द्वारा डिज़ाइन किया गयाDavid J. Farber, Ralph E. Griswold and Ivan P. Polonsky
DeveloperDavid J. Farber, Ralph E. Griswold, Ivan P. Polonsky, and Bell Labs
पहली प्रस्तुति1962; 62 years ago (1962)
Stable release
SNOBOL4 / 1967; 57 years ago (1967)
वेबसाइटhttps://www.regressive.org/snobol4/
Major implementations
SNOBOL, SPITBOL
Influenced by
COMIT
Influenced
AWK, SL5, Icon, bs, Lua[1]

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

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

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

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

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

विकास

स्नोबॉल1

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

स्नोबॉल2

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

स्नोबॉल3

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

स्नोबॉल4

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

यन्त्र-स्वतंत्र भाषा SIL डगलस मैक्लॉयय द्वारा श्रृंखला प्रकलन दीर्घ के सामान्यीकरण के रूप में उभरी, जिसका प्रारंभिक स्नोबॉल कार्यान्वयन में बड़े अनुपात पर उपयोग किया गया था। 1969 में, मेक्लोरी ने तालिका प्रकार को स्नोबॉल4 में जोड़ने पर दृढ़ रहकर फिर से भाषा को प्रभावित किया।[9][10]


स्नोबॉल4 सुविधाएँ

स्नोबॉल प्रारूप और क्रमादेशन शैली में विशिष्ट है, जो समकालीन प्रक्रियात्मक भाषाओं जैसे कि फोरट्रान और ऐल्गॉल से मौलिक रूप से भिन्न हैं।

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

सभी स्नोबॉल समादेश पंक्ति निम्न स्वरुप के हैं

label subject pattern = object : transfer

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

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

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

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

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







उदाहरण प्रोग्राम

हैलो, वर्ल्ड! प्रोग्राम इस प्रकार हो सकता है...

          OUTPUT = "What is your name?"
          Username = INPUT
          OUTPUT = "Thank you, " Username
END


एक उपयोगकर्ता का नाम पूछने के लिए एक साधारण क्रमानुदेश और फिर इसे आउटपुट वाक्य में प्रयोग करें ...

 OUTPUT = "What is your name?"
 Username = INPUT
 OUTPUT = "Thank you, " Username
END


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

          OUTPUT = "What is your name?"
          Username = INPUT
          Username "J"                                             :S(LOVE)
          Username "K"                                             :S(HATE)
MEH       OUTPUT = "Hi, " Username                                 :(END)
LOVE      OUTPUT = "How nice to meet you, " Username               :(END)
HATE      OUTPUT = "Oh. It's you, " Username
END


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

          OUTPUT = "This program will ask you for personal names"
          OUTPUT = "until you press return without giving it one"
          NameCount = 0                                            :(GETINPUT)
AGAIN     NameCount = NameCount + 1
          OUTPUT = "Name " NameCount ": " PersonalName
GETINPUT  OUTPUT = "Please give me name " NameCount + 1 
          PersonalName = INPUT
          PersonalName LEN(1)                                      :S(AGAIN)
          OUTPUT = "Finished. " NameCount " names requested."
END







कार्यान्वयन

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

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

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

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

मिशिगन अवसानक प्रणाली (MTS) के लिए संचिका संपादक ने स्नोबॉल4 प्रतिरूप के आधार पर प्रतिरूप मिलान प्रदान किया।[11]

वर्तमान में कई कार्यान्वयन उपलब्ध हैं। फिल बडने द्वारा लिखित दीर्घ स्नोबॉल4 in C एक मुक्त, खुला स्रोत कार्यान्वयन है, जो लगभग किसी भी मंच पर चलने में सक्षम है।[12] कैटस्पॉ, Inc ने DOS, मैकिनटोश, सन, RS/6000, और अन्य सहित कई अलग-अलग कंप्यूटर मंच के लिए स्नोबॉल4 भाषा का व्यावसायिक कार्यान्वयन प्रदान किया, और ये कार्यान्वयन अब कैटस्पॉ से मुक्त उपलब्ध हैं। मिनेसोटा स्नोबॉल4, विक्टर्स बर्स्टिस द्वारा, मूल IBM अधिसंसाधित्र संस्करण (यहां तक ​​कि फोरट्रान-जैसे FORMAT विवरण समर्थन सहित) के निकटतम PC कार्यान्वयन भी निशुल्क है।[13]

हालांकि स्नोबॉल में स्वयं कोई संरचित क्रमादेशन विशेषताएं नहीं हैं, स्नॉस्टोर्म नामक एक स्नोबॉल पूर्वप्रक्रमक को मिशिगन विश्वविद्यालय में मिशिगन अवसानक प्रणाली (MTS) के तहत उपयोग के लिए 1970 के दशक के दौरान फ्रेड जी. स्वार्ट्ज द्वारा अभिकल्पित और कार्यान्वित किया गया था।[14] MTS चलाने वाली आठ से पंद्रह स्थल पर स्नोस्टॉर्म का उपयोग किया गया था। यह 1982 और 1984 के बीच यूनिवर्सिटी कॉलेज लंदन (UCL) में भी उपलब्ध था।

एंड्रयू कोएनिग (क्रमादेशक) द्वारा स्नोकोन स्नोबॉल4 भाषा में विभाग-संरचित निर्माण जोड़ता है। स्नोकोन स्नोबॉल4 के उचित अधिसमुच्चय के स्थान पर एक स्व-निहित क्रमादेशन भाषा है।[15]

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

नामन

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

सब कुछ ठीक चल रहा था जब तक कि एक दिन मैं प्रणाली को समन्वायोजित करने के लिए एक वर्ग कार्य जमा नहीं कर रहा था और सामान्य रूप से मेरे कार्य काष्ठचत्वर में पहला पत्रक, BTL मानकों में, छिद्रित किया गया मेरा कार्य और मेरा नाम — SEXI फार्बर।

कॉम्प सेंटर की लड़कियों में से एक ने इसे देखा और कहा, "यह वही है जो आप सोचते हैं" विनोदी तरीके से।

इससे यह स्पष्ट हो गया कि हमें किसी और नाम की आवश्यकता थी !! हमने बैठकर बात की और कॉफी पी और रबर बैंड विकीर्ण किया और बहुत अधिक समय के बाद किसी ने कहा — सबसे अधिक संभावना राल्फ — "हमारे पास नाम खोजने के नरक में स्नोबॉल का मौका नहीं है"। हम सब एक साथ चिल्ला उठे, "हमें मिल गया — SNOBOL" सभी BOL भाषाओं की भावना में। इसके बाद हमने यह पता लगाने के लिए अपना दिमाग बढ़ाया कि यह किस लिए खड़ा है।

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


यह भी देखें

संदर्भ

  1. Ierusalimschy, Roberto; de Figueiredo, Luiz Henrique; Celes, Waldemar (2007), "The Evolution of Lua" (PDF), HOPL III: Proceedings of the third ACM SIGPLAN conference on History of programming languages: 26, doi:10.1145/1238844.1238846
  2. Gimpel, J. F. (February 1973). "A theory of discrete patterns and their implementation in SNOBOL4". Communications of the ACM. 16 (2): 91-100. doi:10.1145/361952.361960. S2CID 17059429.
  3. "Dr. Dobb's: Programs That Transform Their Own Source Code; or: the Snobol Foot Joke". Dobbscodetalk.com. Retrieved 2011-12-04.
  4. Contact details. "perlre". perldoc.perl.org. Retrieved 2011-12-04.
  5. "Recursive Regex Tutorial". Retrieved 2017-03-19.
  6. Griswold, Ralph E.; Hanson, David R. (April 1977). "An Overview of SL5". ACM SIGPLAN Notices. 12 (4): 40–50. doi:10.1145/954654.954658. S2CID 38692673.
  7. See Chapter 1 of The Macro Implementation of SNOBOL4
  8. SNOBOL4 has been implemented using C to recreate the virtual machine instructions.
  9. Griswold, Ralph (1978). "A history of the SNOBOL programming languages" (PDF). ACM SIGPLAN Notices. 13 (8): 275–308. doi:10.1145/960118.808393. S2CID 5413577. Archived from the original (PDF) on 2019-03-02.
  10. Wexelblat, Richard L., ed. (2014) [1981]. History of Programming Languages. Academic Press. p. 784. ISBN 9781483266169.
  11. Introduction to the MTS file editor, University of Michigan Computing Center, 1986.
  12. "SNOBOL4.ORG -- SNOBOL4 Resources".
  13. "The MINNESOTA SNOBOL4 Programming Language".
  14. "SNOSTORM", MTS Volume 9: SNOBOL4 in MTS, Computing Center, University of Michigan, June 1979, pages 99-120. Retrieved 1 September 2014.
  15. "The Snocone Programming Language", Andrew Koenig, USENIX (Portland, Oregon), June 1985. Retrieved 2 September 2014.
  16. WORTH READING Wikipedia entry on SNOBOL — the TRUE story NOT Wikipedias (Dave Farber, Interesting People mailing list, 26 December 2008)
  17. Computers and the humanities 1:158, 1967.
  18. Belzer, Jack; Holzman, Albert G.; Kent, Allen, eds. (1979). "SNOBOL". Encyclopedia of Computer Science and Technology. Vol. 13. CRC Press. p. 173. ISBN 0-8247-2263-9.


अग्रिम पठन

  • Emmer, Mark B. (1985). SNOBOL4+: The SNOBOL4 Language for the Personal Computer User. Prentice Hall. ISBN 0-13-815119-9.
  • Gimpel, James F. (1976). Algorithms in SNOBOL4. Wiley. ISBN 0-471-30213-9. republished Salida, CO: Catspaw, 1986 (ISBN 0-939793-00-8).
  • Griswold, Ralph E. (1972). The Macro Implementation of SNOBOL4. W.H. Freeman. ISBN 0-7167-0447-1.
  • Griswold, Ralph E.; Poage, J.F.; Polonsky, I.P. (1968). The SNOBOL4 Programming Language. Prentice Hall. ISBN 0-13-815373-6.
  • Griswold, Ralph E. (1975). String and List Processing in SNOBOL4: Techniques and Applications. Prentice Hall. ISBN 0-13-853010-6.
  • Hockey, Susan M. (1985). Snobol Programming for the Humanities. Clarendon Press. ISBN 0-19-824676-5.


बाहरी संबंध