आईस्विम: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Programming language}}
{{Short description|Programming language}}
{{Redirect|I See What You Mean|the sculpture in Denver, Colorado|I See What You Mean (Argent)}}
{{Redirect|आपका क्या अर्थ है|डेनवर, कोलोराडो में संरचना|मैं देख रहा हूँ आपका क्या अर्थ है (अर्जेंटीना)}}
{{Infobox programming language
{{Infobox programming language
| name = ISWIM
| name = ISWIM
Line 19: Line 19:
| website =
| website =
}}
}}
ISWIM (इफ यू सी व्हाट आई मीन के लिए संक्षिप्त नाम) अमूर्त कंप्यूटर [[प्रोग्रामिंग भाषा]] (या भाषाओं का परिवार) है जिसे [[पीटर लैंडिन]] ने तैयार किया था और पहली बार 1966 में एसीएम के संचार में प्रकाशित उनके लेख द नेक्स्ट 700 प्रोग्रामिंग लैंग्वेजेज में इसका वर्णन किया गया था।<ref>{{Cite journal |last=Landin |first=P. J. |date=March 1966 |title=The Next 700 Programming Languages |url=https://www.cs.cmu.edu/~crary/819-f09/Landin66.pdf |journal=Communications of the ACM |volume=9 |issue=3 |pages=157–165 |publisher=[[Association for Computing Machinery]]|doi=10.1145/365230.365257 |s2cid=13409665 }}</ref>
'''आईस्विम''' (इफ यू सी व्हाट आई मीन के लिए संक्षिप्त नाम) संक्षेपित कंप्यूटर [[प्रोग्रामिंग भाषा|प्रोग्रामिंग लैंग्वेज]] (या लैंग्वेज का समूह) है, जिसे [[पीटर लैंडिन]] ने तैयार किया था और पहली बार 1966 में एसीएम के संचार में प्रकाशित उनके लेख द नेक्स्ट 700 प्रोग्रामिंग लैंग्वेजे में इसका वर्णन किया गया था।<ref>{{Cite journal |last=Landin |first=P. J. |date=March 1966 |title=The Next 700 Programming Languages |url=https://www.cs.cmu.edu/~crary/819-f09/Landin66.pdf |journal=Communications of the ACM |volume=9 |issue=3 |pages=157–165 |publisher=[[Association for Computing Machinery]]|doi=10.1145/365230.365257 |s2cid=13409665 }}</ref>
हालांकि लागू नहीं किया गया, यह प्रोग्रामिंग भाषाओं के विकास में बहुत प्रभावशाली साबित हुआ है, विशेष रूप से [[कार्यात्मक प्रोग्रामिंग]] भाषाएं जैसे [[एसएएसएल (प्रोग्रामिंग भाषा)]], [[मिरांडा (प्रोग्रामिंग भाषा)]], [[एमएल (प्रोग्रामिंग भाषा)]], [[हास्केल (प्रोग्रामिंग भाषा)]] और उनके उत्तराधिकारी, और [[ल्यूसिड (प्रोग्रामिंग भाषा)]] जैसी [[डेटाफ्लो प्रोग्रामिंग]] भाषाएं।
 
चूंकि इसे लागू नहीं किया गया था, यह प्रोग्रामिंग लैंग्वेज के विकास में बहुत प्रभावशाली प्राप्त हुआ है, विशेष रूप से [[कार्यात्मक प्रोग्रामिंग|फंक्शनल प्रोग्रामिंग]] लैंग्वेज जैसे [[एसएएसएल (प्रोग्रामिंग भाषा)|एसएएसएल (प्रोग्रामिंग लैंग्वेज)]], [[मिरांडा (प्रोग्रामिंग भाषा)|मिरांडा (प्रोग्रामिंग लैंग्वेज)]], [[एमएल (प्रोग्रामिंग भाषा)|एमएल (प्रोग्रामिंग लैंग्वेज)]], [[हास्केल (प्रोग्रामिंग भाषा)|हास्केल (प्रोग्रामिंग लैंग्वेज)]] और उनके अन्य संस्करण, और [[ल्यूसिड (प्रोग्रामिंग भाषा)|ल्यूसिड (प्रोग्रामिंग लैंग्वेज)]] जैसी [[डेटाफ्लो प्रोग्रामिंग]] लैंग्वेज इसका प्रमुख उदाहरण हैं।


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


ISWIM के परिचालन शब्दार्थ को लैंडिन की SECD मशीन का उपयोग करके परिभाषित किया गया है और कॉल-बाय-वैल्यू का उपयोग किया जाता है, जो कि [[उत्सुक मूल्यांकन]] है।<ref>{{Cite report |last=Plotkin |first=Gordon |author-link=Gordon Plotkin |date=1975 |title=कॉल-बाय-नाम, कॉल-बाय वैल्यू और लैम्ब्डा कैलकुलस|url=http://homepages.inf.ed.ac.uk/gdp/publications/cbn_cbv_lambda.pdf}}</ref> ISWIM का लक्ष्य गणितीय संकेतन की तरह दिखना था, इसलिए लैंडिन ने बयानों के बीच [[ALGOL]] के अर्धविराम को छोड़ दिया और <code>begin</code> ... <code>end</code> ब्लॉक किया और उन्हें [[इंडेंटेशन शैली]] के आधार पर [[ऑफ-साइड नियम]] और स्कोपिंग के साथ बदल दिया।
आईस्विम के परिचालन शब्दार्थ को लैंडिन की SECD मशीन का उपयोग करके परिभाषित किया गया है और कॉल-बाय-वैल्यू का उपयोग किया जाता है, जो कि [[उत्सुक मूल्यांकन]] है।<ref>{{Cite report |last=Plotkin |first=Gordon |author-link=Gordon Plotkin |date=1975 |title=कॉल-बाय-नाम, कॉल-बाय वैल्यू और लैम्ब्डा कैलकुलस|url=http://homepages.inf.ed.ac.uk/gdp/publications/cbn_cbv_lambda.pdf}}</ref> आईस्विम का लक्ष्य गणितीय संकेतन की तरह दिखना था, इसलिए लैंडिन ने बयानों के बीच [[ALGOL]] के अर्धविराम को छोड़ दिया और <code>begin</code> ... <code>end</code> ब्लॉक किया और उन्हें [[इंडेंटेशन शैली]] के आधार पर [[ऑफ-साइड नियम]] और स्कोपिंग के साथ परिवर्तित कर दिया गया था।


ISWIM की उल्लेखनीय विशिष्ट विशेषता इसका उपयोग है<code>where</code>खंड। ISWIM कार्यक्रम एकल अभिव्यक्ति है जो कि खंड (चर के बीच समीकरणों सहित सहायक परिभाषाएँ), सशर्त अभिव्यक्ति और फ़ंक्शन परिभाषाओं द्वारा योग्य है। [[सीपीएल (प्रोग्रामिंग भाषा)]] के साथ, आईएसडब्ल्यूआईएम व्हेयर क्लॉज का उपयोग करने वाली पहली प्रोग्रामिंग भाषाओं में से थी।
आईस्विम की उल्लेखनीय विशिष्ट विशेषता इसका उपयोग <code>where</code>खंड के रूप में किया जाता है। आईस्विम फंक्शन एकल अभिव्यक्ति है जो कि इस भाग के लिए वैरियेबल के बीच समीकरणों सहित सहायक लैंग्वेज, सशर्त अभिव्यक्ति और फ़ंक्शन लैंग्वेज द्वारा योग्य है। इस प्रकार [[सीपीएल (प्रोग्रामिंग भाषा)|सीपीएल (प्रोग्रामिंग लैंग्वेज)]] के साथ, आईएसडब्ल्यूआईएम व्हेयर क्लॉज का उपयोग करने वाली पहली प्रोग्रामिंग लैंग्वेज में से प्रमुख थी।


एक उल्लेखनीय अर्थ संबंधी विशेषता नए डेटा प्रकारों को उत्पादों के (संभवतः पुनरावर्ती) योग के रूप में परिभाषित करने की क्षमता थी। यह कुछ हद तक क्रियात्मक प्राकृतिक भाषा शैली विवरण का उपयोग करके किया गया था, लेकिन संकेतन के अलावा यह आधुनिक कार्यात्मक भाषाओं में पाए जाने वाले बीजीय डेटा प्रकारों के बिल्कुल बराबर है। ISWIM वेरिएबल्स में स्पष्ट प्रकार की घोषणाएं नहीं थीं और ऐसा लगता है (हालांकि 1966 के पेपर में स्पष्ट रूप से नहीं कहा गया है) कि लैंडिन का इरादा भाषा को गतिशील रूप से टाइप करने का था, जैसे कि LISP और ALGOL के विपरीत; लेकिन यह भी संभव है कि उसका इरादा किसी प्रकार का अनुमान विकसित करने का हो।
एक उल्लेखनीय अर्थ संबंधी विशेषता नए डेटा प्रकारों को उत्पादों के (संभवतः पुनरावर्ती) योग के रूप में परिभाषित करने की क्षमता थी। यह कुछ सीमा तक क्रियात्मक प्राकृतिक लैंग्वेज शैली विवरण का उपयोग करके किया गया था, अपितु संकेतन के अलावा यह आधुनिक फंक्शनल लैंग्वेज में पाए जाने वाले बीजीय डेटा प्रकारों के बिल्कुल बराबर है। इसके कारण आईस्विम वेरिएबल्स में स्पष्ट प्रकार की घोषणाएं नहीं थीं और ऐसा लगता है, चूंकि 1966 के पेपर में स्पष्ट रूप से नहीं कहा गया है कि लैंडिन का संवाद मुख्य रूप से लैंग्वेज को गतिशील रूप से टाइप करने का था, जैसे कि LISP और ALGOL के विपरीत हैं, अपितु यह भी संभव है कि उसका प्रमुख आशय किसी प्रकार का अनुमान विकसित करने का हो।


== कार्यान्वयन और व्युत्पन्न ==
== कार्यान्वयन और व्युत्पन्न ==
ISWIM के किसी प्रत्यक्ष कार्यान्वयन का प्रयास नहीं किया गया लेकिन आर्ट इवान की भाषा PAL (प्रोग्रामिंग भाषा),<ref>{{Cite conference |last=Evans |first=Art |date=1968 |title=PAL: a language designed for teaching programming linguistics |book-title=Proceedings ACM National Conference |conference=ACM National Conference |publisher=[[Association for Computing Machinery]]}}</ref> और जॉन सी. रेनॉल्ड्स के भाषा विचार,<ref>{{Cite report |last=Reynolds |first=John C. |author-link=John C. Reynolds |date=September 1969 |title=GEDANKEN: a simple typeless language which permits functional data structures and co-routines |publisher=Argonne National Laboratory}}</ref> शक्तिशाली ट्रांसफ़र-ऑफ़-कंट्रोल ऑपरेशन सहित, लैंडिन की अधिकांश अवधारणाओं पर कब्जा कर लिया। ये दोनों [[ सिस्टम टाइप करें |सिस्टम टाइप करें]] थे. [[रॉबिन मिलनर]] की एमएल (प्रोग्रामिंग भाषा) को आई के समकक्ष माना जा सकता है<small>SWIM</small> [[जे ऑपरेटर]] के बिना और प्रकार अनुमान के साथ।
आईस्विम के किसी प्रत्यक्ष कार्यान्वयन का प्रयास नहीं किया गया हैं, अपितु आर्ट इवान की लैंग्वेज PAL (प्रोग्रामिंग लैंग्वेज),<ref>{{Cite conference |last=Evans |first=Art |date=1968 |title=PAL: a language designed for teaching programming linguistics |book-title=Proceedings ACM National Conference |conference=ACM National Conference |publisher=[[Association for Computing Machinery]]}}</ref> और जॉन सी. रेनॉल्ड्स के लैंग्वेज विचार,<ref>{{Cite report |last=Reynolds |first=John C. |author-link=John C. Reynolds |date=September 1969 |title=GEDANKEN: a simple typeless language which permits functional data structures and co-routines |publisher=Argonne National Laboratory}}</ref> शक्तिशाली ट्रांसफ़र-ऑफ़-कंट्रोल ऑपरेशन सहित, लैंडिन की अधिकांश अवधारणाओं पर अधिकार प्राप्त कर लिया हैं। ये दोनों [[ सिस्टम टाइप करें |सिस्टम टाइप करें]] थे. [[रॉबिन मिलनर]] की एमएल (प्रोग्रामिंग लैंग्वेज) को आई के समकक्ष माना जा सकता है, इसके आधार पर <small>स्विम</small> [[जे ऑपरेटर]] के अतिरिक्त और प्रकार अनुमान के साथ इसका उपयोग किया जाता हैं।


ISWIM से वंश की और पंक्ति विशुद्ध रूप से कार्यात्मक भाषा को छोड़कर अनिवार्य सुविधाओं (असाइनमेंट और जे ऑपरेटर) को हटाना है।<ref>{{Cite journal |last1=Ivanović |first1=Mirjana |last2=Budimac |first2=Zoran |date=April 1993 |title=योजना के माध्यम से ISWIM जैसी भाषा की परिभाषा|journal=ACM SIGPLAN Notices |volume=28 |issue=4|pages=29–38 |doi=10.1145/152739.152743 |s2cid=14379260 |doi-access=free }}</ref> इसके बाद [[आलसी मूल्यांकन]] पर स्विच करना संभव हो जाता है। इस पथ ने प्रोग्रामिंग भाषाओं एसएएसएल (प्रोग्रामिंग भाषा), [[ केंट पुनरावर्ती कैलकुलेटर |केंट पुनरावर्ती कैलकुलेटर]] (केआरसी), होप (प्रोग्रामिंग भाषा), मिरांडा (प्रोग्रामिंग भाषा), हास्केल (प्रोग्रामिंग भाषा), और क्लीन (प्रोग्रामिंग भाषा) का नेतृत्व किया।
आईस्विम से इस पीढ़ी के लिए और पंक्ति विशुद्ध रूप से फंक्शनल लैंग्वेज को छोड़कर अनिवार्य सुविधाओं जैसे असाइनमेंट और जे ऑपरेटर को हटाना आवश्यक है।<ref>{{Cite journal |last1=Ivanović |first1=Mirjana |last2=Budimac |first2=Zoran |date=April 1993 |title=योजना के माध्यम से ISWIM जैसी भाषा की परिभाषा|journal=ACM SIGPLAN Notices |volume=28 |issue=4|pages=29–38 |doi=10.1145/152739.152743 |s2cid=14379260 |doi-access=free }}</ref> इसके पश्चात [[आलसी मूल्यांकन|लेजी इवैलुएशन]] पर स्विच करना संभव हो जाता है। इस पथ ने प्रोग्रामिंग लैंग्वेज एसएएसएल (प्रोग्रामिंग लैंग्वेज), [[ केंट पुनरावर्ती कैलकुलेटर |केंट रिकर्सिव कैलकुलेटर]] (केआरसी), होप (प्रोग्रामिंग लैंग्वेज), मिरांडा (प्रोग्रामिंग लैंग्वेज), हास्केल (प्रोग्रामिंग लैंग्वेज), और क्लीन (प्रोग्रामिंग लैंग्वेज) का नेतृत्व किया गया था।


== संदर्भ ==
== संदर्भ ==

Revision as of 22:07, 4 August 2023

ISWIM
ParadigmImperative, functional
द्वारा डिज़ाइन किया गयाPeter Landin
पहली प्रस्तुति1966; 58 years ago (1966)
Influenced by
ALGOL 60, Lisp
Influenced
SASL, Miranda, ML, Haskell, Clean, Lucid

आईस्विम (इफ यू सी व्हाट आई मीन के लिए संक्षिप्त नाम) संक्षेपित कंप्यूटर प्रोग्रामिंग लैंग्वेज (या लैंग्वेज का समूह) है, जिसे पीटर लैंडिन ने तैयार किया था और पहली बार 1966 में एसीएम के संचार में प्रकाशित उनके लेख द नेक्स्ट 700 प्रोग्रामिंग लैंग्वेजे में इसका वर्णन किया गया था।[1]

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

डिज़ाइन

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

आईस्विम के परिचालन शब्दार्थ को लैंडिन की SECD मशीन का उपयोग करके परिभाषित किया गया है और कॉल-बाय-वैल्यू का उपयोग किया जाता है, जो कि उत्सुक मूल्यांकन है।[2] आईस्विम का लक्ष्य गणितीय संकेतन की तरह दिखना था, इसलिए लैंडिन ने बयानों के बीच ALGOL के अर्धविराम को छोड़ दिया और begin ... end ब्लॉक किया और उन्हें इंडेंटेशन शैली के आधार पर ऑफ-साइड नियम और स्कोपिंग के साथ परिवर्तित कर दिया गया था।

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

एक उल्लेखनीय अर्थ संबंधी विशेषता नए डेटा प्रकारों को उत्पादों के (संभवतः पुनरावर्ती) योग के रूप में परिभाषित करने की क्षमता थी। यह कुछ सीमा तक क्रियात्मक प्राकृतिक लैंग्वेज शैली विवरण का उपयोग करके किया गया था, अपितु संकेतन के अलावा यह आधुनिक फंक्शनल लैंग्वेज में पाए जाने वाले बीजीय डेटा प्रकारों के बिल्कुल बराबर है। इसके कारण आईस्विम वेरिएबल्स में स्पष्ट प्रकार की घोषणाएं नहीं थीं और ऐसा लगता है, चूंकि 1966 के पेपर में स्पष्ट रूप से नहीं कहा गया है कि लैंडिन का संवाद मुख्य रूप से लैंग्वेज को गतिशील रूप से टाइप करने का था, जैसे कि LISP और ALGOL के विपरीत हैं, अपितु यह भी संभव है कि उसका प्रमुख आशय किसी प्रकार का अनुमान विकसित करने का हो।

कार्यान्वयन और व्युत्पन्न

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

आईस्विम से इस पीढ़ी के लिए और पंक्ति विशुद्ध रूप से फंक्शनल लैंग्वेज को छोड़कर अनिवार्य सुविधाओं जैसे असाइनमेंट और जे ऑपरेटर को हटाना आवश्यक है।[5] इसके पश्चात लेजी इवैलुएशन पर स्विच करना संभव हो जाता है। इस पथ ने प्रोग्रामिंग लैंग्वेज एसएएसएल (प्रोग्रामिंग लैंग्वेज), केंट रिकर्सिव कैलकुलेटर (केआरसी), होप (प्रोग्रामिंग लैंग्वेज), मिरांडा (प्रोग्रामिंग लैंग्वेज), हास्केल (प्रोग्रामिंग लैंग्वेज), और क्लीन (प्रोग्रामिंग लैंग्वेज) का नेतृत्व किया गया था।

संदर्भ

  1. Landin, P. J. (March 1966). "The Next 700 Programming Languages" (PDF). Communications of the ACM. Association for Computing Machinery. 9 (3): 157–165. doi:10.1145/365230.365257. S2CID 13409665.
  2. Plotkin, Gordon (1975). कॉल-बाय-नाम, कॉल-बाय वैल्यू और लैम्ब्डा कैलकुलस (PDF) (Report).
  3. Evans, Art (1968). "PAL: a language designed for teaching programming linguistics". Proceedings ACM National Conference. ACM National Conference. Association for Computing Machinery.
  4. Reynolds, John C. (September 1969). GEDANKEN: a simple typeless language which permits functional data structures and co-routines (Report). Argonne National Laboratory.
  5. Ivanović, Mirjana; Budimac, Zoran (April 1993). "योजना के माध्यम से ISWIM जैसी भाषा की परिभाषा". ACM SIGPLAN Notices. 28 (4): 29–38. doi:10.1145/152739.152743. S2CID 14379260.