ओबेरोन -2: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 32: Line 32:
इसे 1991 में ETH ज्यूरिख में [[Niklaus Wirth]] और :de: Hanspeter Mössenbock | Hanspeter Mössenbock द्वारा विकसित किया गया था, जो अब ऑस्ट्रिया के [[लिंज़ विश्वविद्यालय]] के Institut für Systemsoftware (SSW) में हैं। ओबेरॉन -2 ओबेरॉन का सुपरसेट है, इसके साथ पूरी तरह से संगत है, और [[ऑब्जेक्ट ओबेरॉन]] का एक नया स्वरूप था।
इसे 1991 में ETH ज्यूरिख में [[Niklaus Wirth]] और :de: Hanspeter Mössenbock | Hanspeter Mössenbock द्वारा विकसित किया गया था, जो अब ऑस्ट्रिया के [[लिंज़ विश्वविद्यालय]] के Institut für Systemsoftware (SSW) में हैं। ओबेरॉन -2 ओबेरॉन का सुपरसेट है, इसके साथ पूरी तरह से संगत है, और [[ऑब्जेक्ट ओबेरॉन]] का एक नया स्वरूप था।


ओबेरॉन -2 को ओबेरॉन से इंटरफेस या [[mixin]] के बिना सीमित प्रतिबिंब और सिंगल [[वंशानुक्रम (वस्तु-उन्मुख प्रोग्रामिंग)]] (टाइप एक्सटेंशन) विरासत में मिला है, लेकिन कुशल वर्चुअल मेथड (कंप्यूटर प्रोग्रामिंग) (टाइप बाउंड प्रोसीजर) जोड़ा गया है। [[सी ++]] - स्टाइल वर्चुअल मेथड टेबल का उपयोग करके [[रनटाइम (कार्यक्रम जीवनचक्र चरण)]] पर मेथड कॉल्स को हल किया गया।
ओबेरॉन -2 को ओबेरॉन से इंटरफेस या [[mixin]] के बिना सीमित प्रतिबिंब और सिंगल [[वंशानुक्रम (वस्तु-उन्मुख प्रोग्रामिंग)]] (टाइप एक्सटेंशन) विरासत में मिला है, किन्तु कुशल वर्चुअल मेथड (कंप्यूटर प्रोग्रामिंग) (टाइप बाउंड प्रोसीजर) जोड़ा गया है। [[सी ++]] - स्टाइल वर्चुअल मेथड टेबल का उपयोग करके [[रनटाइम (कार्यक्रम जीवनचक्र चरण)]] पर मेथड कॉल्स को हल किया गया।


स्मॉलटाक जैसी पूरी तरह से वस्तु-उन्मुख भाषाओं की तुलना में, ओबेरॉन -2 में, बुनियादी [[डेटा प्रकार]] और क्लास (कंप्यूटर प्रोग्रामिंग) ऑब्जेक्ट (कंप्यूटर विज्ञान) नहीं हैं, कई ऑपरेशन तरीके नहीं हैं, कोई संदेश नहीं है (इसे कुछ हद तक अनुकरण किया जा सकता है) प्रतिबिंब और संदेश विस्तार के माध्यम से, जैसा कि ETH ओबेरॉन में प्रदर्शित किया गया है), और [[बहुरूपता (कंप्यूटर विज्ञान)]] एक सामान्य वर्ग के उपवर्गों तक सीमित है ([[पायथन (प्रोग्रामिंग भाषा)]] में कोई [[बतख टाइपिंग]] नहीं है),<ref>{{Cite web |url=http://www.drdobbs.com/templates-and-duck-typing/184401971 |title=Related Reading |website=Dr. Dobb's}}</ref> और [[जावा (प्रोग्रामिंग भाषा)]] के रूप में इंटरफेस को परिभाषित करना संभव नहीं है)। ओबेरॉन -2 ऑब्जेक्ट या क्लास स्तर पर एनकैप्सुलेशन (कंप्यूटर प्रोग्रामिंग) का समर्थन नहीं करता है, लेकिन इस उद्देश्य के लिए मॉड्यूल का उपयोग किया जा सकता है।
स्मॉलटाक जैसी पूरी तरह से वस्तु-उन्मुख भाषाओं की तुलना में, ओबेरॉन -2 में, बुनियादी [[डेटा प्रकार]] और क्लास (कंप्यूटर प्रोग्रामिंग) ऑब्जेक्ट (कंप्यूटर विज्ञान) नहीं हैं, कई ऑपरेशन तरीके नहीं हैं, कोई संदेश नहीं है (इसे कुछ हद तक अनुकरण किया जा सकता है) प्रतिबिंब और संदेश विस्तार के माध्यम से, जैसा कि ETH ओबेरॉन में प्रदर्शित किया गया है), और [[बहुरूपता (कंप्यूटर विज्ञान)]] एक सामान्य वर्ग के उपवर्गों तक सीमित है ([[पायथन (प्रोग्रामिंग भाषा)]] में कोई [[बतख टाइपिंग]] नहीं है),<ref>{{Cite web |url=http://www.drdobbs.com/templates-and-duck-typing/184401971 |title=Related Reading |website=Dr. Dobb's}}</ref> और [[जावा (प्रोग्रामिंग भाषा)]] के रूप में इंटरफेस को परिभाषित करना संभव नहीं है)। ओबेरॉन -2 ऑब्जेक्ट या क्लास स्तर पर एनकैप्सुलेशन (कंप्यूटर प्रोग्रामिंग) का समर्थन नहीं करता है, किन्तु इस उद्देश्य के लिए मॉड्यूल का उपयोग किया जा सकता है।


ओबेरॉन -2 में प्रतिबिंब [[metaobject]] का उपयोग नहीं करता है, लेकिन केवल टाइप डिस्क्रिप्टर [[संकलक]] से निष्पादन योग्य बायनेरिज़ में पढ़ता है, और मॉड्यूल में उजागर होता है जो प्रकार और / या प्रक्रियाओं को परिभाषित करता है। यदि इन संरचनाओं का प्रारूप भाषा स्तर पर उजागर किया जाता है (उदाहरण के लिए ईटीएच ओबेरॉन के मामले में), पुस्तकालय (कंप्यूटिंग) स्तर पर प्रतिबिंब लागू किया जा सकता है। इस प्रकार भाषा कोड को बदले बिना इसे लगभग पूरी तरह से पुस्तकालय स्तर पर लागू किया जा सकता है। दरअसल, ETH ओबेरॉन भाषा-स्तर और पुस्तकालय-स्तर की प्रतिबिंब क्षमताओं का बड़े पैमाने पर उपयोग करता है।
ओबेरॉन -2 में प्रतिबिंब [[metaobject]] का उपयोग नहीं करता है, किन्तु केवल टाइप डिस्क्रिप्टर [[संकलक]] से निष्पादन योग्य बायनेरिज़ में पढ़ता है, और मॉड्यूल में उजागर होता है जो प्रकार और / या प्रक्रियाओं को परिभाषित करता है। यदि इन संरचनाओं का प्रारूप भाषा स्तर पर उजागर किया जाता है (उदाहरण के लिए ईटीएच ओबेरॉन के स्थितियोंमें), पुस्तकालय (कंप्यूटिंग) स्तर पर प्रतिबिंब लागू किया जा सकता है। इस प्रकार भाषा कोड को बदले बिना इसे लगभग पूरी तरह से पुस्तकालय स्तर पर लागू किया जा सकता है। दरअसल, ETH ओबेरॉन भाषा-स्तर और पुस्तकालय-स्तर की प्रतिबिंब क्षमताओं का बड़े पैमाने पर उपयोग करता है।


ओबेरॉन -2 जावा के समान [[कचरा संग्रह (कंप्यूटर विज्ञान)]] के लिए अंतर्निहित रनटाइम समर्थन प्रदान करता है और सी (प्रोग्रामिंग) में निहित संभावित स्टैक और सरणी सीमा ओवरराइटिंग समस्याओं और मैनुअल मेमोरी प्रबंधन मुद्दों को खत्म करने वाले बाउंड और एरे इंडेक्स चेक आदि करता है। भाषा) और सी ++। मॉड्यूल आर्किटेक्चर के माध्यम से प्रतीक फ़ाइलों और नामस्थानों का उपयोग करके अलग संकलन तेजी से पुनर्निर्माण सुनिश्चित करता है क्योंकि बदले हुए इंटरफेस वाले मॉड्यूल को फिर से कंपाइल करने की आवश्यकता होती है।
ओबेरॉन -2 जावा के समान [[कचरा संग्रह (कंप्यूटर विज्ञान)]] के लिए अंतर्निहित रनटाइम समर्थन प्रदान करता है और सी (प्रोग्रामिंग) में निहित संभावित स्टैक और सरणी सीमा ओवरराइटिंग समस्याओं और मैनुअल मेमोरी प्रबंधन मुद्दों को खत्म करने वाले बाउंड और एरे इंडेक्स चेक आदि करता है। भाषा) और सी ++। मॉड्यूल आर्किटेक्चर के माध्यम से प्रतीक फ़ाइलों और नामस्थानों का उपयोग करके अलग संकलन तेजी से पुनर्निर्माण सुनिश्चित करता है क्योंकि बदले हुए इंटरफेस वाले मॉड्यूल को फिर से कंपाइल करने की आवश्यकता होती है।
Line 77: Line 77:
प्रक्रिया NewTree* (): ट्री;
प्रक्रिया NewTree* (): ट्री;
     वर टी: ट्री;
     वर टी: ट्री;
नया शुरू करें (टी); नया (टी.नाम, 1); टी नाम [0] := 0X; t.बाएँ:= शून्य; टी.राइट := शून्य; वापसी टी
नया प्रारंभ करें (टी); नया (टी.नाम, 1); टी नाम [0] := 0X; t.बाएँ:= शून्य; टी.राइट := शून्य; वापसी टी
न्यूट्री समाप्त करें;
न्यूट्री समाप्त करें;


Line 94: Line 94:
सरणी में जिसे पहले केवल औपचारिक पैरामीटर प्रकार के रूप में घोषित किया जा सकता था, अब सूचक आधार प्रकार के रूप में घोषित किया जा सकता है।
सरणी में जिसे पहले केवल औपचारिक पैरामीटर प्रकार के रूप में घोषित किया जा सकता था, अब सूचक आधार प्रकार के रूप में घोषित किया जा सकता है।


=== कथन के लिए === <code>FOR</code> ई> पास्कल और मोडुला-2 का बयान ओबेरॉन में लागू नहीं किया गया था। इसे ओबेरॉन-2 में फिर से शामिल किया गया है।
=== कथन के लिए === <code>FOR</code> ई> पास्कल और मोडुला-2 का बयान ओबेरॉन में लागू नहीं किया गया था। इसे ओबेरॉन-2 में फिर से सम्मलित किया गया है।


=== रनटाइम प्रकार की जाँच ===
=== रनटाइम प्रकार की जाँच ===
ओबेरॉन -2 किसी वस्तु के गतिशील प्रकार की जाँच के लिए कई तंत्र प्रदान करता है। उदाहरण के लिए, जहां एक बर्ड ऑब्जेक्ट को डक या कोयल के रूप में तत्काल किया जा सकता है, ओबेरॉन -2 प्रोग्रामर को रनटाइम पर ऑब्जेक्ट के वास्तविक प्रकार का जवाब देने की अनुमति देता है।
ओबेरॉन -2 किसी वस्तु के गतिशील प्रकार की जाँच के लिए कई तंत्र प्रदान करता है। उदाहरण के लिए, जहां एक बर्ड ऑब्जेक्ट को डक या कोयल के रूप में तत्काल किया जा सकता है, ओबेरॉन -2 प्रोग्रामर को रनटाइम पर ऑब्जेक्ट के वास्तविक प्रकार का उत्तर देने की अनुमति देता है।


पहला, सबसे पारंपरिक, दृष्टिकोण प्रकार बाध्यकारी प्रणाली पर भरोसा करना है। दूसरा तरीका उपयोग करना है<code>WITH</code> बयान, जो एक चर के गतिशील उपप्रकार को सीधे जांचने की अनुमति देता है। दोनों ही मामलों में, एक बार उपप्रकार की पहचान हो जाने के बाद, प्रोग्रामर उपप्रकार के लिए उपयुक्त किसी भी प्रकार की बाध्य प्रक्रियाओं या चर का उपयोग कर सकता है। इन दृष्टिकोणों के उदाहरण नीचे दिखाए गए हैं।
पहला, सबसे पारंपरिक, दृष्टिकोण प्रकार बाध्यकारी प्रणाली पर भरोसा करना है। दूसरा विधिउपयोग करना है<code>WITH</code> बयान, जो एक चर के गतिशील उपप्रकार को सीधे जांचने की अनुमति देता है। दोनों ही स्थितियों में, एक बार उपप्रकार की पहचान हो जाने के बाद, प्रोग्रामर उपप्रकार के लिए उपयुक्त किसी भी प्रकार की बाध्य प्रक्रियाओं या चर का उपयोग कर सकता है। इन दृष्टिकोणों के उदाहरण नीचे दिखाए गए हैं।


ध्यान दें कि का रूप <code>WITH</code> ओबेरॉन-2 में प्रयुक्त बयान पास्कल और मोडुला-2 के साथ बयान से संबंधित नहीं है। रिकॉर्ड फ़ील्ड तक पहुंच को संक्षिप्त करने का यह तरीका ओबेरॉन या ओबेरॉन -2 में लागू नहीं किया गया है।
ध्यान दें कि का रूप <code>WITH</code> ओबेरॉन-2 में प्रयुक्त बयान पास्कल और मोडुला-2 के साथ बयान से संबंधित नहीं है। रिकॉर्ड फ़ील्ड तक पहुंच को संक्षिप्त करने का यह विधिओबेरॉन या ओबेरॉन -2 में लागू नहीं किया गया है।


==== बाइंडिंग टाइप करें ====
==== बाइंडिंग टाइप करें ====
Line 108: Line 108:
     प्रकार
     प्रकार
         पक्षी* = रिकॉर्ड
         पक्षी* = रिकॉर्ड
             ध्वनि* : सरणी 10 चार;
             ध्वनि*: सरणी 10 चार;
         अंत;
         अंत;
  अंत पक्षी।
  अंत पक्षी।
Line 119: Line 119:
   
   
     प्रक्रिया सेटसाउंड * (वार पक्षी: बतख);
     प्रक्रिया सेटसाउंड * (वार पक्षी: बतख);
     शुरू
     प्रारंभ
         चिड़िया। ध्वनि: = नीम हकीम!
         चिड़िया। ध्वनि: = नीम हकीम!
     अंत सेटसाउंड;
     अंत सेटसाउंड;
Line 131: Line 131:
   
   
     प्रक्रिया सेटसाउंड * (वार पक्षी: कोयल);
     प्रक्रिया सेटसाउंड * (वार पक्षी: कोयल);
     शुरू
     प्रारंभ
         चिड़िया की आवाज := कोयल !
         चिड़िया की आवाज�:= कोयल�!
     अंत सेटसाउंड;
     अंत सेटसाउंड;
  अंत कोयल।
  अंत कोयल।
Line 151: Line 151:
   
   
     प्रक्रिया सेटसाउंड * (वार पक्षी: पक्षी। पक्षी);
     प्रक्रिया सेटसाउंड * (वार पक्षी: पक्षी। पक्षी);
     शुरू
     प्रारंभ
         पक्षी के साथ: कोयल। कोयल DO
         पक्षी के साथ: कोयल। कोयल DO
               चिड़िया की आवाज := कोयल !
               चिड़िया की आवाज�:= कोयल=!
             | चिड़िया : बत्तख। बत्तख डीओ
             | चिड़िया�: बत्तख। बत्तख डीओ
               चिड़िया। ध्वनि: = नीम हकीम!
               चिड़िया। ध्वनि: = नीम हकीम!
         अन्य
         अन्य
               बर्ड.साउंड := कलरव!
               बर्ड.साउंड�:= कलरव!
         अंत
         अंत
     अंत सेटसाउंड;
     अंत सेटसाउंड;
   
   
     प्रक्रिया MakeSound* (VAR b : Birds.Bird);
     प्रक्रिया MakeSound* (VAR b�: Birds.Bird);
     शुरू
     प्रारंभ
         आउट.लन;
         आउट.लन;
         आउट.स्ट्रिंग (बी.साउंड);
         आउट.स्ट्रिंग (बी.साउंड);
Line 168: Line 168:
     अंत बनाओ ध्वनि;
     अंत बनाओ ध्वनि;
   
   
  शुरू
  प्रारंभ
     सेटसाउंड (सी);
     सेटसाउंड (सी);
     सेटसाउंड (डी);
     सेटसाउंड (डी);
Line 186: Line 186:
     प्रकार
     प्रकार
         बर्डरेक* = रिकॉर्ड
         बर्डरेक* = रिकॉर्ड
             ध्वनि* : सरणी 10 चार;
             ध्वनि*: सरणी 10 चार;
         अंत;
         अंत;
         DuckRec* = रिकॉर्ड (बर्डरैक) END;
         DuckRec* = रिकॉर्ड (बर्डरैक) END;
Line 201: Line 201:
   
   
     प्रक्रिया सेट डक साउंड * (पक्षी: बतख);
     प्रक्रिया सेट डक साउंड * (पक्षी: बतख);
     शुरू
     प्रारंभ
         चिड़िया। ध्वनि: = नीम हकीम!
         चिड़िया। ध्वनि: = नीम हकीम!
     अंत सेट डक साउंड;
     अंत सेट डक साउंड;
   
   
     प्रक्रिया सेटकोयलसाउंड* (पक्षी: कोयल);
     प्रक्रिया सेटकोयलसाउंड* (पक्षी: कोयल);
     शुरू
     प्रारंभ
         चिड़िया की आवाज := कोयल !
         चिड़िया की आवाज�:= कोयल�!
     END सेटCuckooSound;
     END सेटCuckooSound;
   
   
     प्रक्रिया सेटसाउंड * (पक्षी: पक्षी);
     प्रक्रिया सेटसाउंड * (पक्षी: पक्षी);
     शुरू
     प्रारंभ
         पक्षी के साथ : कोयल DO
         पक्षी के साथ�: कोयल DO
               कुक्कूसाउंड (पक्षी) सेट करें
               कुक्कूसाउंड (पक्षी) सेट करें
             | पक्षी : बतख DO
             | पक्षी�: बतख DO
               सेट डक साउंड (पक्षी)
               सेट डक साउंड (पक्षी)
         अन्य
         अन्य
Line 221: Line 221:
     अंत सेटसाउंड;
     अंत सेटसाउंड;
   
   
  शुरू
  प्रारंभ
     नया (पीसी);
     नया (पीसी);
     नया (पीडी);
     नया (पीडी);
Line 245: Line 245:
     आउट.लन; आउट.स्ट्रिंग (पीबी ^ ध्वनि); आउट.लन;
     आउट.लन; आउट.स्ट्रिंग (पीबी ^ ध्वनि); आउट.लन;
   
   
     पंजाब := पीसी;
     पंजाब�:= पीसी;
   
   
     सेट कुकूसाउंड (पंजाब (कोयल));
     सेट कुकूसाउंड (पंजाब (कोयल));
Line 270: Line 270:


==== <code>IS</code> संचालिका ====
==== <code>IS</code> संचालिका ====
का उपयोग कर एक तीसरा दृष्टिकोण संभव है<code>IS</code> ऑपरेटर। यह एक रिलेशन ऑपरेटर है जिसकी समान प्राथमिकता बराबर (<code>=</code>), बड़ा (<code>></code>), आदि लेकिन जो गतिशील प्रकार का परीक्षण करता है। दो अन्य दृष्टिकोणों के विपरीत, हालांकि, यह प्रोग्रामर को उस उपप्रकार तक पहुंचने की अनुमति नहीं देता है जिसका पता लगाया गया है।
का उपयोग कर एक तीसरा दृष्टिकोण संभव है<code>IS</code> ऑपरेटर। यह एक रिलेशन ऑपरेटर है जिसकी समान प्राथमिकता बराबर (<code>=</code>), बड़ा (<code>></code>), आदि किन्तु जो गतिशील प्रकार का परीक्षण करता है। दो अन्य दृष्टिकोणों के विपरीत, चूंकि, यह प्रोग्रामर को उस उपप्रकार तक पहुंचने की अनुमति नहीं देता है जिसका पता लगाया गया है।


== सिंटेक्स ==
== सिंटेक्स ==
Line 327: Line 327:


== कार्यान्वयन ==
== कार्यान्वयन ==
[[ईटीएच]] द्वारा अनुरक्षित ओबेरॉन-2 कंपाइलर्स में [[खिड़कियाँ]], [[लिनक्स]], [[सोलारिस (ऑपरेटिंग सिस्टम)]], मैकओएस के संस्करण शामिल हैं।
[[ईटीएच]] द्वारा अनुरक्षित ओबेरॉन-2 कंपाइलर्स में [[खिड़कियाँ]], [[लिनक्स]], [[सोलारिस (ऑपरेटिंग सिस्टम)]], मैकओएस के संस्करण सम्मलित हैं।


[http://spivey.oriel.ox.ac.uk/corner/Oxford_Oberon-2_compiler ऑक्सफोर्ड ओबेरॉन-2 कंपाइलर] देशी मशीन कोड के लिए संकलित करता है और विंडोज, लिनक्स और [[मैक ओएस]] एक्स पर एक जेआईटी का उपयोग कर सकता है। इसे बनाया गया है/ [[माइकल स्पाइवी]] द्वारा अनुरक्षित और कीको वर्चुअल मशीन का उपयोग करता है।<ref name="keiko_spec">डॉ. माइकल स्पाइवी।
[http://spivey.oriel.ox.ac.uk/corner/Oxford_Oberon-2_compiler ऑक्सफोर्ड ओबेरॉन-2 कंपाइलर] देशी मशीन कोड के लिए संकलित करता है और विंडोज, लिनक्स और [[मैक ओएस]] एक्स पर एक जेआईटी का उपयोग कर सकता है। इसे बनाया गया है/ [[माइकल स्पाइवी]] द्वारा अनुरक्षित और कीको वर्चुअल मशीन का उपयोग करता है।<ref name="keiko_spec">डॉ. माइकल स्पाइवी।
Line 339: Line 339:
मोसेनबॉक और विर्थ संदर्भ में एक के आधार पर, मैनचेस्टर विश्वविद्यालय, यूके के स्टीफन जे बेवन द्वारा ओबेरॉन -2 [[लेक्स (सॉफ्टवेयर)]] स्कैनर और वाईएसीसी [[पार्सर]] है। यह संस्करण 1.4 पर है।
मोसेनबॉक और विर्थ संदर्भ में एक के आधार पर, मैनचेस्टर विश्वविद्यालय, यूके के स्टीफन जे बेवन द्वारा ओबेरॉन -2 [[लेक्स (सॉफ्टवेयर)]] स्कैनर और वाईएसीसी [[पार्सर]] है। यह संस्करण 1.4 पर है।


[[देशी ओबेरॉन]] नामक एक रिलीज़ है जिसमें एक ऑपरेटिंग सिस्टम शामिल है, और सीधे पीसी क्लास हार्डवेयर पर बूट हो सकता है।
[[देशी ओबेरॉन]] नामक एक रिलीज़ है जिसमें एक ऑपरेटिंग सिस्टम सम्मलित है, और सीधे पीसी क्लास हार्डवेयर पर बूट हो सकता है।


ETHZ में कुछ मामूली .NET-संबंधित एक्सटेंशन के साथ ओबेरॉन का .NET फ्रेमवर्क|.NET कार्यान्वयन भी विकसित किया गया है।
ETHZ में कुछ मामूली .NET-संबंधित एक्सटेंशन के साथ ओबेरॉन का .NET फ्रेमवर्क|.NET कार्यान्वयन भी विकसित किया गया है।
Line 345: Line 345:
[http://www.fim.uni-linz.ac.at/pow/Pow.htm प्रोग्रामर का खुला कार्यक्षेत्र] (पाउ!)<ref>{{Cite magazine |last=Collingbourne |first=H. |date=February 2000 |title=What Pascal's inventor did next |magazine=[[PC Plus]] |issue=160}}</ref> एक बहुत ही सरल एकीकृत विकास वातावरण है, जो संपादक, लिंकर और ओबेरॉन -2 संकलक के साथ प्रदान किया जाता है। यह Microsoft Windows निष्पादनयोग्य के लिए संकलित है। पूर्ण स्रोत कोड प्रदान किया गया है; कंपाइलर ओबेरॉन -2 में लिखा गया है।
[http://www.fim.uni-linz.ac.at/pow/Pow.htm प्रोग्रामर का खुला कार्यक्षेत्र] (पाउ!)<ref>{{Cite magazine |last=Collingbourne |first=H. |date=February 2000 |title=What Pascal's inventor did next |magazine=[[PC Plus]] |issue=160}}</ref> एक बहुत ही सरल एकीकृत विकास वातावरण है, जो संपादक, लिंकर और ओबेरॉन -2 संकलक के साथ प्रदान किया जाता है। यह Microsoft Windows निष्पादनयोग्य के लिए संकलित है। पूर्ण स्रोत कोड प्रदान किया गया है; कंपाइलर ओबेरॉन -2 में लिखा गया है।


[https://web.archive.org/web/20110720112830/http://www.uni-vologda.ac.ru/JOB/ Java to Oberon Compiler] (JOB) रूस के वोलोग्दा विश्वविद्यालय में लिखा गया था। यह जावा क्लास फाइल्स ([[बाईटकोड]]) के रूप में ऑब्जेक्ट कोड तैयार करता है। कुछ जॉब-विशिष्ट वर्ग प्रदान किए जाते हैं जो जावा संगत हैं, लेकिन जो अधिक ओबेरॉन-जैसे घटक पदानुक्रम का उपयोग करते हैं।
[https://web.archive.org/web/20110720112830/http://www.uni-vologda.ac.ru/JOB/ Java to Oberon Compiler] (JOB) रूस के वोलोग्दा विश्वविद्यालय में लिखा गया था। यह जावा क्लास फाइल्स ([[बाईटकोड]]) के रूप में ऑब्जेक्ट कोड तैयार करता है। कुछ जॉब-विशिष्ट वर्ग प्रदान किए जाते हैं जो जावा संगत हैं, किन्तु जो अधिक ओबेरॉन-जैसे घटक पदानुक्रम का उपयोग करते हैं।


[http://sourceforge.net/projects/ooc ऑप्टिमाइज़िंग ओबेरॉन-2 कंपाइलर] कार्यक्रम बनाने के लिए [[जीएनयू संकलक संग्रह]] (GCC) टूलचेन का उपयोग करके C में संकलित करता है।
[http://sourceforge.net/projects/ooc ऑप्टिमाइज़िंग ओबेरॉन-2 कंपाइलर] कार्यक्रम बनाने के लिए [[जीएनयू संकलक संग्रह]] (GCC) टूलचेन का उपयोग करके C में संकलित करता है।
Line 351: Line 351:
[http://www.ralphsommerer.com/obn.htm ओबेरॉन स्क्रिप्ट] एक कंपाइलर है जो संपूर्ण ओबेरॉन भाषा का [[जावास्क्रिप्ट]] में अनुवाद करता है। कंपाइलर जावास्क्रिप्ट में लिखा गया है और इस प्रकार ओबेरॉन में लिखी गई स्क्रिप्ट को प्रोसेस करने के लिए वेब पेजों से बुलाया जा सकता है।
[http://www.ralphsommerer.com/obn.htm ओबेरॉन स्क्रिप्ट] एक कंपाइलर है जो संपूर्ण ओबेरॉन भाषा का [[जावास्क्रिप्ट]] में अनुवाद करता है। कंपाइलर जावास्क्रिप्ट में लिखा गया है और इस प्रकार ओबेरॉन में लिखी गई स्क्रिप्ट को प्रोसेस करने के लिए वेब पेजों से बुलाया जा सकता है।


[https://web.archive.org/web/20110820112230/http://www.excelsior-usa.com/xds.html XDS Modula2/Oberon2] एक्सेलसियर एलएलसी, नोवोसिबिर्स्क, रूस द्वारा एक विकास प्रणाली है। इसमें इंटेल पेंटियम के लिए एक ऑप्टिमाइज़िंग कंपाइलर या [[क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर]] डेवलपमेंट के लिए वाया-सी ट्रांसलेटर शामिल है। विंडोज और लिनक्स के लिए उपलब्ध है। कंपाइलर ओबेरॉन -2 में लिखा गया है और खुद को कंपाइल करता है।
[https://web.archive.org/web/20110820112230/http://www.excelsior-usa.com/xds.html XDS Modula2/Oberon2] एक्सेलसियर एलएलसी, नोवोसिबिर्स्क, रूस द्वारा एक विकास प्रणाली है। इसमें इंटेल पेंटियम के लिए एक ऑप्टिमाइज़िंग कंपाइलर या [[क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर]] डेवलपमेंट के लिए वाया-सी ट्रांसलेटर सम्मलित है। विंडोज और लिनक्स के लिए उपलब्ध है। कंपाइलर ओबेरॉन -2 में लिखा गया है और खुद को कंपाइल करता है।


[http://sourceforge.net/projects/oberonrevival/files/ ओबेरॉन रिवाइवल] ओबेरॉन 2 और कंपोनेंट पास्कल ([[ब्लैकबॉक्स घटक बिल्डर]]) को लिनक्स और विन32 में लाने की एक परियोजना है। ब्लैकबॉक्स का लिनक्स पोर्ट पहले अनुपलब्ध था और यह मूल रूप से केवल [[माइक्रोसॉफ़्ट विंडोज़]] पर चलता था।
[http://sourceforge.net/projects/oberonrevival/files/ ओबेरॉन रिवाइवल] ओबेरॉन 2 और कंपोनेंट पास्कल ([[ब्लैकबॉक्स घटक बिल्डर]]) को लिनक्स और विन32 में लाने की एक परियोजना है। ब्लैकबॉक्स का लिनक्स पोर्ट पहले अनुपलब्ध था और यह मूल रूप से केवल [[माइक्रोसॉफ़्ट विंडोज़]] पर चलता था।

Revision as of 19:02, 23 February 2023

Oberon-2
File:Oberon programming language logo.svg
ParadigmsImperative, structured, modular, object-oriented
परिवारWirth Oberon
द्वारा डिज़ाइन किया गयाNiklaus Wirth
Hanspeter Mössenböck
DeveloperETH Zurich
पहली प्रस्तुति1991; 35 years ago (1991)
टाइपिंग अनुशासनStrong, hybrid (static and dynamic)
स्कोपLexical
प्लेटफॉर्मCeres (NS32032), IA-32, x86-64
ओएसWindows, Linux, Solaris, macOS
वेबसाइटwww.ethoberon.ethz.ch
Influenced by
Oberon, Modula-2, Object Oberon
Influenced
Oberon-07, Zonnon, Active Oberon, Component Pascal, Go, Nim

ओबेरॉन -2 मूल ओबेरॉन (प्रोग्रामिंग लैंग्वेज) प्रोग्रामिंग भाषा का एक विस्तार है जो सीमित प्रतिबिंब (कंप्यूटर विज्ञान) और ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग सुविधाओं को जोड़ता है, पॉइंटर बेस प्रकार के रूप में ऐरे डेटा संरचना को खोलता है, केवल-पढ़ने के लिए फ़ील्ड निर्यात करता है, और पुन: प्रस्तुत करता है। FOR मॉड्यूल-2 -2 से लूप।

इसे 1991 में ETH ज्यूरिख में Niklaus Wirth और :de: Hanspeter Mössenbock | Hanspeter Mössenbock द्वारा विकसित किया गया था, जो अब ऑस्ट्रिया के लिंज़ विश्वविद्यालय के Institut für Systemsoftware (SSW) में हैं। ओबेरॉन -2 ओबेरॉन का सुपरसेट है, इसके साथ पूरी तरह से संगत है, और ऑब्जेक्ट ओबेरॉन का एक नया स्वरूप था।

ओबेरॉन -2 को ओबेरॉन से इंटरफेस या mixin के बिना सीमित प्रतिबिंब और सिंगल वंशानुक्रम (वस्तु-उन्मुख प्रोग्रामिंग) (टाइप एक्सटेंशन) विरासत में मिला है, किन्तु कुशल वर्चुअल मेथड (कंप्यूटर प्रोग्रामिंग) (टाइप बाउंड प्रोसीजर) जोड़ा गया है। सी ++ - स्टाइल वर्चुअल मेथड टेबल का उपयोग करके रनटाइम (कार्यक्रम जीवनचक्र चरण) पर मेथड कॉल्स को हल किया गया।

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

ओबेरॉन -2 में प्रतिबिंब metaobject का उपयोग नहीं करता है, किन्तु केवल टाइप डिस्क्रिप्टर संकलक से निष्पादन योग्य बायनेरिज़ में पढ़ता है, और मॉड्यूल में उजागर होता है जो प्रकार और / या प्रक्रियाओं को परिभाषित करता है। यदि इन संरचनाओं का प्रारूप भाषा स्तर पर उजागर किया जाता है (उदाहरण के लिए ईटीएच ओबेरॉन के स्थितियोंमें), पुस्तकालय (कंप्यूटिंग) स्तर पर प्रतिबिंब लागू किया जा सकता है। इस प्रकार भाषा कोड को बदले बिना इसे लगभग पूरी तरह से पुस्तकालय स्तर पर लाग