आयो (प्रोग्रामिंग भाषा)
This article needs additional citations for verification. (August 2014) (Learn how and when to remove this template message) |
This article relies too much on references to primary sources. (August 2014) (Learn how and when to remove this template message) |
Paradigm | object-oriented prototype-based |
---|---|
द्वारा डिज़ाइन किया गया | Steve Dekorte |
Developer | Steve Dekorte, Jonathan Wright, Jeremy Tregunna |
पहली प्रस्तुति | 2002 |
Stable release | 20170906
/ August 11, 2017[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 का लक्ष्य वैचारिक एकीकरण और गतिशील प्रोग्रामिंग भाषा का पता लगाना है, इसलिए ट्रेडऑफ़ प्रदर्शन पर सरलता और लचीलेपन का पक्ष लेते हैं।
सुविधाएँ
- शुद्ध वस्तु-उन्मुख प्रोग्रामिंग | प्रोटोटाइप-आधारित प्रोग्रामिंग पर आधारित वस्तु-उन्मुख
- कोड-एज़-डेटा / समजातीयता
- फ़ंक्शन पैरामीटर का आलसी मूल्यांकन
- उच्च-क्रम के कार्य
- आत्मनिरीक्षण, प्रतिबिंब (कंप्यूटर विज्ञान) और मेटाप्रोग्रामिंग टाइप करें
- अभिनेता मॉडल | अभिनेता-आधारित संगामिति (कंप्यूटर विज्ञान)
- कोरूटिन्स
- एक्सेप्शन हेंडलिंग
- वृद्धिशील कचरा संग्रह (कंप्यूटर विज्ञान) कमजोर संदर्भ का समर्थन करता है
- अत्यधिक में porting
- डायनामिक-लिंक लाइब्रेरी (कंप्यूटर साइंस) अधिकांश प्लेटफॉर्म पर डायनेमिक लोडिंग
- छोटी वर्चुअल मशीन
सिंटेक्स
This section does not cite any sources. (June 2013) (Learn how and when to remove this template message) |
अपने सरलतम रूप में, यह एक पहचानकर्ता से बना है: <वाक्यविन्यास प्रकाश लैंग = आईओ>
कार्य करना
</वाक्यविन्यास हाइलाइट> उपरोक्त 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()
लूप, जो तेज़ होगा।
यह भी देखें
- इओके (प्रोग्रामिंग भाषा)
संदर्भ
- ↑ "Io Releases". GitHub. Retrieved 2020-02-06.
- ↑ Io Programming Guide
- ↑ 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.
बाहरी संबंध
- Io home page
- Io at Synrc Research Center
- Io at Curlie
- Jasmine.Io BDD Testing Framework for Io
- Templates that generate short descriptions
- Articles with unsourced statements from July 2008
- Articles with Curlie links
- प्रोग्रामिंग भाषा
- गतिशील प्रोग्रामिंग भाषाएँ
- गतिशील रूप से टाइप की गई प्रोग्रामिंग भाषाएँ
- प्रोटोटाइप-आधारित प्रोग्रामिंग भाषाएँ
- वस्तु-उन्मुख प्रोग्रामिंग भाषाएँ
- 2002 में बनाई गई प्रोग्रामिंग लैंग्वेज
- पटकथा भाषाएँ
- 2002 सॉफ्टवेयर
- होमोइकोनिक प्रोग्रामिंग लैंग्वेज
- Machine Translated Page
- Created On 18/02/2023