आयो (प्रोग्रामिंग भाषा)

From alpha
Jump to navigation Jump to search
Io
Io-logo.svg
Paradigmobject-oriented prototype-based
द्वारा डिज़ाइन किया गयाSteve Dekorte
DeveloperSteve Dekorte, Jonathan Wright, Jeremy Tregunna
पहली प्रस्तुति2002; 22 years ago (2002)
Stable release
20170906 / August 11, 2017; 6 years ago (2017-08-11)[1]
टाइपिंग अनुशासनdynamic, strong
Major implementations
Io Io.NET
Influenced by
Smalltalk, NewtonScript, Self, Lua, Lisp, Python, Act1
Influenced
Ioke, Potion

आईओ स्मॉलटॉक, [[स्वयं (प्रोग्रामिंग भाषा)]], लुआ (प्रोग्रामिंग भाषा), लिस्प (प्रोग्रामिंग भाषा), एक्टर_मॉडल_मिडल_हिस्ट्री#एक्टर_प्रोग्रामिंग_लैंग्वेजेस और न्यूटनस्क्रिप्ट से प्रेरित एक शुद्ध ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग प्रोग्रामिंग लैंग्वेज है।[2] Io में एक प्रोटोटाइप-आधारित प्रोग्रामिंग | प्रोटोटाइप-आधारित ऑब्जेक्ट मॉडल है जो स्व और न्यूटनस्क्रिप्ट के समान है, जो ऑब्जेक्ट (कंप्यूटर साइंस) और क्लास (कंप्यूटर साइंस) के बीच के अंतर को समाप्त करता है। स्मॉलटॉक की तरह, सब कुछ एक वस्तु है और यह टाइप सिस्टम का उपयोग करता है। लिस्प की तरह, प्रोग्राम सिर्फ डेटा ट्री हैं। Io संगामिति के लिए अभिनेता मॉडल का उपयोग करता है।

आईओ की उल्लेखनीय विशेषताएं इसका न्यूनतम आकार और बाहरी कोड संसाधनों का उपयोग करने के लिए खुलापन है।[citation needed] आईओ को एक छोटी, पोर्टेबल आभासी मशीन द्वारा निष्पादित किया जाता है।

इतिहास

यह भाषा 2002 में स्टीव डेकोर्ट द्वारा एक मित्र, ड्रू नेल्सन की अपनी भाषा, Cel के साथ मदद करने की कोशिश करने के बाद बनाई गई थी। उन्हें पता चला कि उन्हें वास्तव में इस बारे में ज्यादा जानकारी नहीं थी कि भाषाएं कैसे काम करती हैं, और समस्याओं को बेहतर ढंग से समझने के लिए उन्होंने एक छोटी सी भाषा लिखने का फैसला किया।[3]


दर्शन

Io का लक्ष्य वैचारिक एकीकरण और गतिशील प्रोग्रामिंग भाषा का पता लगाना है, इसलिए ट्रेडऑफ़ प्रदर्शन पर सरलता और लचीलेपन का पक्ष लेते हैं।

सुविधाएँ

सिंटेक्स

अपने सरलतम रूप में, यह एक पहचानकर्ता से बना है: <वाक्यविन्यास प्रकाश लैंग = आईओ>

कार्य करना

</वाक्यविन्यास हाइलाइट> उपरोक्त doStuff को एक विधि (प्रोग्रामिंग) मानते हुए, इसे शून्य तर्कों के साथ बुलाया जा रहा है और परिणामस्वरूप, स्पष्ट कोष्ठकों की आवश्यकता नहीं है।

अगर doStuff में तर्क थे, तो यह ऐसा दिखेगा: <वाक्यविन्यास प्रकाश लैंग = आईओ>

काम करो(42)

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

सिस्टम संस्करण

</वाक्यविन्यास हाइलाइट> उपरोक्त उदाहरण Io में संदेश को प्रदर्शित करता है; संस्करण संदेश सिस्टम ऑब्जेक्ट को भेजा जाता है।

ऑपरेटर (प्रोग्रामिंग) एक विशेष मामला है जहां सिंटैक्स उपरोक्त उदाहरणों के रूप में कट-एंड-ड्राय नहीं है। आईओ सिंटैक्स विश्लेषण दुभाषिया द्वारा परिभाषित ऑपरेटरों के एक सेट को रोकता है, और उन्हें विधि कॉल में अनुवादित करता है। उदाहरण के लिए, निम्नलिखित: <वाक्यविन्यास प्रकाश लैंग = आईओ>

1 + 5 * 8 + 1

</वाक्यविन्यास हाइलाइट> अनुवाद करता है: <वाक्यविन्यास प्रकाश लैंग = आईओ>

1 + (5 *(8)) +(1)

</वाक्यविन्यास हाइलाइट> Io में सभी ऑपरेटर विधियाँ हैं; यह तथ्य कि उन्हें स्पष्ट कोष्ठकों की आवश्यकता नहीं है, एक सुविधा है। जैसा कि आप देख सकते हैं, यहाँ ऑपरेटर की थोड़ी सी प्राथमिकता भी हो रही है, और पूर्ववर्ती स्तर C में ऑपरेटर की प्राथमिकता के समान हैं।

तरीके और ब्लॉक

आईओ में अज्ञात कार्यों को बनाने के दो तरीके हैं: विधियां और ब्लॉक। कार्यक्षेत्र (प्रोग्रामिंग) को छोड़कर उनके बीच, वे लगभग समान हैं। जबकि ब्लॉक में शाब्दिक गुंजाइश होता है, विधियों में गतिशील गुंजाइश होता है।

विधि और ब्लॉक दोनों उच्च-क्रम के कार्य हैं।

उदाहरण

सर्वव्यापी हैलो वर्ल्ड प्रोग्राम: <वाक्यविन्यास प्रकाश लैंग = आईओ>

 हैलो वर्ल्ड! println

</वाक्यविन्यास हाइलाइट> क्लोनिंग (प्रोग्रामिंग) वस्तुओं द्वारा नई वस्तुओं का निर्माण किया जाता है। Io में विशेष रूप से, एक नई, खाली वस्तु बनाई जाती है और केवल इसके और इसके माता-पिता के बीच के अंतर को नई वस्तु के भीतर संग्रहीत किया जाता है; इस व्यवहार को अंतर वंशानुक्रम के रूप में जाना जाता है। इस व्यवहार का एक उदाहरण दिखाया गया है: <वाक्यविन्यास प्रकाश लैंग = आईओ>

ए := ऑब्जेक्ट क्लोन // ए नाम की एक नई, खाली वस्तु बनाता है

</वाक्यविन्यास हाइलाइट> Io में एक साधारण गैर-पुनरावर्ती भाज्य फलन: <वाक्यविन्यास प्रकाश लैंग = आईओ> फैक्टोरियल: = विधि (एन,

   अगर (एन == 0, वापसी 1)
   रेस: = 1
   श्रेणी 1 से(n) foreach(i, res = res * i)

) </वाक्यविन्यास हाइलाइट> क्योंकि का असाइनमेंट res * i को res अंतिम कार्रवाई की गई है, फ़ंक्शन निहित रूप से परिणाम देता है और इसलिए एक स्पष्ट वापसी अभिव्यक्ति की आवश्यकता नहीं है। उपरोक्त रेंज (कंप्यूटर प्रोग्रामिंग) के उपयोग को प्रदर्शित करता है, और इसका उपयोग नहीं करता है for() लूप, जो तेज़ होगा।

यह भी देखें

  • इओके (प्रोग्रामिंग भाषा)

संदर्भ

  1. "Io Releases". GitHub. Retrieved 2020-02-06.
  2. Io Programming Guide
  3. Tate, Bruce (2010). "Chapter 3: Io". Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (1st ed.). Raleigh, North Carolina: Pragmatic Bookshelf. p. 60, 72. ISBN 978-1934356593.


बाहरी संबंध