आईस्विम

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

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

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

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

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

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

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