स्नोबोल: Difference between revisions

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


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


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


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


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


           निष्पाद = हैलो, विश्व!
           आउटपुट = हैलो, विश्व!




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




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


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


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


<वाक्यविन्यास हाईलाइट लैंग = स्नोबोल>
<वाक्यविन्यास हाईलाइट लैंग = स्नोबोल>
Line 90: Line 90:
           NameCount = 0 :(GETINPUT)
           NameCount = 0 :(GETINPUT)
दोबारा नाम गणना = नाम गणना + 1
दोबारा नाम गणना = नाम गणना + 1
           निष्पाद = नाम नाम गणना: व्यक्तिगत नाम
           आउटपुट = नाम नाम गणना: व्यक्तिगत नाम
GETINPUT OUTPUT = कृपया मुझे नाम दें NameCount + 1
GETINPUT OUTPUT = कृपया मुझे नाम दें NameCount + 1
           व्यक्तिगत नाम = निविष्ट
           व्यक्तिगत नाम = इनपुट
           व्यक्तिगत नाम लेन (1): एस (फिर से)
           व्यक्तिगत नाम लेन (1): एस (फिर से)
           निष्पाद = समाप्त। नाम गणना नाम का अनुरोध किया।
           आउटपुट = समाप्त। नाम गणना नाम का अनुरोध किया।
अंत
अंत
</वाक्यविन्यास हाइलाइट>
</वाक्यविन्यास हाइलाइट>
Line 118: Line 118:
स्पिटबॉल कार्यान्वयन ने कई विशेषताओं को भी प्रस्तुत किया, जो पारंपरिक संरचित क्रमादेशन संकेतशब्द का उपयोग नहीं करते हुए, फिर भी कई समकक्ष क्षमताओं को प्रदान करने के लिए उपयोग किया जा सकता है, जिन्हें सामान्यतः संरचित क्रमादेशन के रूप में माना जाता है, विशेष रूप से स्थिर यदि/तब/अथवा प्रकार के निर्माण के रूप में माना जाता है। तब से इन सुविधाओं को नवीनतम स्नोबॉल4 कार्यान्वयन में जोड़ा गया है। वाणिज्यिक उत्पाद के रूप में कई वर्षों के बाद, अप्रैल 2009 में स्पिटबॉल को [[जीएनयू जनरल पब्लिक लाइसेंस|GNU सामान्य जनता अनुज्ञप्ति]] के तहत मुफ्त सॉफ्टवेयर के रूप में जारी किया गया।
स्पिटबॉल कार्यान्वयन ने कई विशेषताओं को भी प्रस्तुत किया, जो पारंपरिक संरचित क्रमादेशन संकेतशब्द का उपयोग नहीं करते हुए, फिर भी कई समकक्ष क्षमताओं को प्रदान करने के लिए उपयोग किया जा सकता है, जिन्हें सामान्यतः संरचित क्रमादेशन के रूप में माना जाता है, विशेष रूप से स्थिर यदि/तब/अथवा प्रकार के निर्माण के रूप में माना जाता है। तब से इन सुविधाओं को नवीनतम स्नोबॉल4 कार्यान्वयन में जोड़ा गया है। वाणिज्यिक उत्पाद के रूप में कई वर्षों के बाद, अप्रैल 2009 में स्पिटबॉल को [[जीएनयू जनरल पब्लिक लाइसेंस|GNU सामान्य जनता अनुज्ञप्ति]] के तहत मुफ्त सॉफ्टवेयर के रूप में जारी किया गया।


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


डेव फार्बर के अनुसार,<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 के नाम पर पहुंचे।

Revision as of 11:33, 24 February 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 की क्रमादेशक-परिभाषित आँकड़ा प्ररूप की सुविधा उस समय उन्नत थी - यह पहले कोबोल और बाद में पास्कल क्रमादेशन भाषा क्रमादेशन भाषाओं के अभिलेख के समान है।

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

नामपत्र विषय प्रतिरूप '=' वस्तु ':' स्थानांतरण

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

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

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

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

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

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

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

         आउटपुट = हैलो, विश्व!


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

         आउटपुट = आपका नाम क्या है?
         उपयोगकर्ता नाम = इनपुट
         OUTPUT = धन्यवाद, उपयोगकर्ता नाम


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

         आउटपुट = आपका नाम क्या है?
         उपयोगकर्ता नाम = इनपुट
         उपयोगकर्ता नाम जे: एस (लव)
         उपयोगकर्ता नाम के: एस (नफरत)

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

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

<वाक्यविन्यास हाईलाइट लैंग = स्नोबोल>

         OUTPUT = यह क्रमानुदेश आपसे व्यक्तिगत नाम पूछेगा
         OUTPUT = जब तक आप रिटर्न दिए बिना रिटर्न दबाते हैं
         NameCount = 0 :(GETINPUT)

दोबारा नाम गणना = नाम गणना + 1

         आउटपुट = नाम नाम गणना: व्यक्तिगत नाम

GETINPUT OUTPUT = कृपया मुझे नाम दें NameCount + 1

         व्यक्तिगत नाम = इनपुट
         व्यक्तिगत नाम लेन (1): एस (फिर से)
         आउटपुट = समाप्त। नाम गणना नाम का अनुरोध किया।

अंत </वाक्यविन्यास हाइलाइट>

कार्यान्वयन

उत्कृष्ट कार्यान्वयन 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.


बाहरी संबंध