आईस्विम: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Programming language}} {{Redirect|I See What You Mean|the sculpture in Denver, Colorado|I See What You Mean (Argent)}} {{more footnotes needed|date=Decembe...")
 
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|I See What You Mean|the sculpture in Denver, Colorado|I See What You Mean (Argent)}}
{{more footnotes needed|date=December 2011}}
{{Infobox programming language
{{Infobox programming language
| name = ISWIM
| name = ISWIM
Line 20: 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>
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>
हालांकि लागू नहीं किया गया, यह प्रोग्रामिंग भाषाओं के विकास में बहुत प्रभावशाली साबित हुआ है, विशेष रूप से [[कार्यात्मक प्रोग्रामिंग]] भाषाएं जैसे [[एसएएसएल (प्रोग्रामिंग भाषा)]], [[मिरांडा (प्रोग्रामिंग भाषा)]], [[एमएल (प्रोग्रामिंग भाषा)]], [[हास्केल (प्रोग्रामिंग भाषा)]] और उनके उत्तराधिकारी, और [[ल्यूसिड (प्रोग्रामिंग भाषा)]] जैसी [[डेटाफ्लो प्रोग्रामिंग]] भाषाएं।
हालांकि लागू नहीं किया गया, यह प्रोग्रामिंग भाषाओं के विकास में बहुत प्रभावशाली साबित हुआ है, विशेष रूप से [[कार्यात्मक प्रोग्रामिंग]] भाषाएं जैसे [[एसएएसएल (प्रोग्रामिंग भाषा)]], [[मिरांडा (प्रोग्रामिंग भाषा)]], [[एमएल (प्रोग्रामिंग भाषा)]], [[हास्केल (प्रोग्रामिंग भाषा)]] और उनके उत्तराधिकारी, और [[ल्यूसिड (प्रोग्रामिंग भाषा)]] जैसी [[डेटाफ्लो प्रोग्रामिंग]] भाषाएं।


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


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


एक उल्लेखनीय अर्थ संबंधी विशेषता नए डेटा प्रकारों को उत्पादों के (संभवतः पुनरावर्ती) योग के रूप में परिभाषित करने की क्षमता थी। यह कुछ हद तक क्रियात्मक प्राकृतिक भाषा शैली विवरण का उपयोग करके किया गया था, लेकिन संकेतन के अलावा यह आधुनिक कार्यात्मक भाषाओं में पाए जाने वाले बीजीय डेटा प्रकारों के बिल्कुल बराबर है।{{citation needed|reason=There does not seem to be algebraic data types in the 1966 paper|date=December 2019}} ISWIM वेरिएबल्स में स्पष्ट प्रकार की घोषणाएं नहीं थीं और ऐसा लगता है (हालांकि 1966 के पेपर में स्पष्ट रूप से नहीं कहा गया है) कि लैंडिन का इरादा भाषा को गतिशील रूप से टाइप करने का था, जैसे कि LISP और ALGOL के विपरीत; लेकिन यह भी संभव है कि उसका इरादा किसी प्रकार का अनुमान विकसित करने का हो।
एक उल्लेखनीय अर्थ संबंधी विशेषता नए डेटा प्रकारों को उत्पादों के (संभवतः पुनरावर्ती) योग के रूप में परिभाषित करने की क्षमता थी। यह कुछ हद तक क्रियात्मक प्राकृतिक भाषा शैली विवरण का उपयोग करके किया गया था, लेकिन संकेतन के अलावा यह आधुनिक कार्यात्मक भाषाओं में पाए जाने वाले बीजीय डेटा प्रकारों के बिल्कुल बराबर है। ISWIM वेरिएबल्स में स्पष्ट प्रकार की घोषणाएं नहीं थीं और ऐसा लगता है (हालांकि 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> [[जे ऑपरेटर]] के बिना और प्रकार अनुमान के साथ।
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> [[जे ऑपरेटर]] के बिना और प्रकार अनुमान के साथ।


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> इसके बाद [[आलसी मूल्यांकन]] पर स्विच करना संभव हो जाता है। इस पथ ने प्रोग्रामिंग भाषाओं एसएएसएल (प्रोग्रामिंग भाषा), [[ केंट पुनरावर्ती कैलकुलेटर ]] (केआरसी), होप (प्रोग्रामिंग भाषा), मिरांडा (प्रोग्रामिंग भाषा), हास्केल (प्रोग्रामिंग भाषा), और क्लीन (प्रोग्रामिंग भाषा) का नेतृत्व किया।
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> इसके बाद [[आलसी मूल्यांकन]] पर स्विच करना संभव हो जाता है। इस पथ ने प्रोग्रामिंग भाषाओं एसएएसएल (प्रोग्रामिंग भाषा), [[ केंट पुनरावर्ती कैलकुलेटर |केंट पुनरावर्ती कैलकुलेटर]] (केआरसी), होप (प्रोग्रामिंग भाषा), मिरांडा (प्रोग्रामिंग भाषा), हास्केल (प्रोग्रामिंग भाषा), और क्लीन (प्रोग्रामिंग भाषा) का नेतृत्व किया।


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

Revision as of 21:56, 4 August 2023

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

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

डिज़ाइन

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

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

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

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

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

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

ISWIM से वंश की और पंक्ति विशुद्ध रूप से कार्यात्मक भाषा को छोड़कर अनिवार्य सुविधाओं (असाइनमेंट और जे ऑपरेटर) को हटाना है।[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.