आईस्विम
Paradigm | Imperative, functional |
---|---|
द्वारा डिज़ाइन किया गया | Peter Landin |
पहली प्रस्तुति | 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] इसके पश्चात लेजी इवैलुएशन पर स्विच करना संभव हो जाता है। इस पथ ने प्रोग्रामिंग लैंग्वेज एसएएसएल (प्रोग्रामिंग लैंग्वेज), केंट रिकर्सिव कैलकुलेटर (केआरसी), होप (प्रोग्रामिंग लैंग्वेज), मिरांडा (प्रोग्रामिंग लैंग्वेज), हास्केल (प्रोग्रामिंग लैंग्वेज), और क्लीन (प्रोग्रामिंग लैंग्वेज) का नेतृत्व किया गया था।
संदर्भ
- ↑ 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.
- ↑ Plotkin, Gordon (1975). कॉल-बाय-नाम, कॉल-बाय वैल्यू और लैम्ब्डा कैलकुलस (PDF) (Report).
- ↑ Evans, Art (1968). "PAL: a language designed for teaching programming linguistics". Proceedings ACM National Conference. ACM National Conference. Association for Computing Machinery.
- ↑ Reynolds, John C. (September 1969). GEDANKEN: a simple typeless language which permits functional data structures and co-routines (Report). Argonne National Laboratory.
- ↑ Ivanović, Mirjana; Budimac, Zoran (April 1993). "योजना के माध्यम से ISWIM जैसी भाषा की परिभाषा". ACM SIGPLAN Notices. 28 (4): 29–38. doi:10.1145/152739.152743. S2CID 14379260.