ओकैम (प्रोग्रामिंग भाषा)

From Vigyanwiki
Revision as of 08:07, 5 June 2023 by alpha>Sweta
occam
1983 1988 Trademark occam and occam 2 INMOS Limited.jpg
ParadigmImperative, procedural, concurrent
द्वारा डिज़ाइन किया गयाDavid May
DeveloperInmos
पहली प्रस्तुति1983; 41 years ago (1983)
Stable release
2.1 (official), 2.5 (unofficial), 3 (not fully implemented) / 1994; 30 years ago (1994)
Dialects
occam-π (pi)
Influenced by
Communicating sequential processes
Influenced
Ease, Go, Python

ओकैम एक प्रोग्रामिंग भाषा है जो समवर्ती है और कम्युनिकेटिंग सीक्वेंशियल प्रोसेस (संचार अनुक्रमिक प्रक्रियाओं ) (सीएसपी) प्रक्रिया बीजगणित पर निर्मित है,[1]और इसकी कई विशेषताएं साझा करती हैं। इसका नाम ओखम के दार्शनिक विलियम के नाम पर रखा गया है, जिनके नाम पर ओकाम के रेज़र का नाम रखा गया है।

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

सिंहावलोकन

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

प्रक्रियाओं के बीच संचार नामांकित चैनलों के माध्यम से कार्य करता है। एक प्रक्रिया के माध्यम से एक चैनल को डेटा ! आउटपुट करता है जबकि दूसरा डेटा ? के साथ इनपुट करता है। इनपुट और आउटपुट तब तक आगे नहीं बढ़ सकते जब तक कि दूसरा छोर डेटा को स्वीकार करने या पेश करने के लिए तैयार नहीं होता। (कार्यवाही न करने के मामले में अक्सर यह कहा जाता है कि प्रक्रिया चैनल पर ब्लॉक हो जाती है। हालाँकि, कार्यक्रम न तो स्पिन करेगा और न ही मतदान; इस प्रकार प्रतीक्षा, रुकना या उपज जैसे शब्द भी व्यवहार को व्यक्त कर सकते हैं; साथ ही इस संदर्भ में कि यह अन्य स्वतंत्र प्रक्रियाओं को चलने से नहीं रोकेगा।) उदाहरण (c एक वेरिएबल है):

keyboard ? c
screen ! c

SEQ व्यंजक की एक सूची प्रस्तुत करता है जिसका मूल्यांकन क्रमिक रूप से किया जाता है। यह अंतर्निहित नहीं है क्योंकि यह अन्य प्रोग्रामिंग भाषाओं में है। उदाहरण :

SEQ
   x := x + 1
   y := x * x

PAR उन व्यंजकों की सूची प्रारंभ करता है जिनका समवर्ती रूप से मूल्यांकन किया जा सकता है। उदाहरण:

 PAR
   p()
   q()

ALT गार्ड कमांड की एक सूची निर्दिष्ट करता है। वह गार्ड एक बूलियन स्थिति और एक इनपुट व्यंजक का संयोजन है, दोनों वैकल्पिक। प्रत्येक गार्ड जिसके लिए शर्त सत्य है और इनपुट चैनल तैयार है, सफल है। निष्पादन के लिए सफल विकल्पों में से एक का चयन किया जाता है। उदाहरण:

ALT
   count1 < 100 & c1 ? data
     SEQ
       count1 := count1 + 1
       merged ! data
   count2 < 100 & c2 ? data
     SEQ
       count2 := count2 + 1
       merged ! data
   status ? request
     SEQ
       out ! count1
       out ! count2

यह चैनल c1 या c2 (जो भी तैयार हो) से डेटा पढ़ेगा और इसे एक मर्ज किए गए चैनल में पास करेगा। अगर काउंटN 100 तक पहुंचता है, तो संबंधित चैनल से पढ़ना बंद कर दिया जाएगा। स्टेटस चैनल पर एक अनुरोध का उत्तर काउंट outको आउटपुट करके दिया जाता है।

भाषा संशोधन

1983 INMOS लिमिटेड द्वारा ओकाम

अवसर 1

अवसर 1[2] (1983 में जारी) भाषा का एक प्रारंभिक संस्करण था जिसे ईपीएल और टोनी होरे के सीएसपी पर डेविड मे (कंप्यूटर वैज्ञानिक) के काम से उधार लिया गया था। यह केवल VAR डेटा प्रकार का समर्थन करता है, जो लक्ष्य आर्किटेक्चर की मूल शब्द लंबाई के अनुरूप एक अभिन्न प्रकार था, और केवल एक आयाम की सरणियाँ।

अवसर 2

अवसर 2[3] 1987 में इनमोस लिमिटेड द्वारा निर्मित एक एक्सटेंशन है जो तैरनेवाला स्थल सपोर्ट, फ़ंक्शंस, बहु-आयामी सरणियाँ और अधिक डेटा प्रकार जैसे कि पूर्णांकों के अलग-अलग आकार (INT16, INT32) और बाइट्स जोड़ता है।

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

ओकम 2.1

अवसर 2.1[1]इनमोस द्वारा योगदान किए गए ओकम भाषा के विकास की श्रृंखला का अंतिम था। 1994 में परिभाषित, यह 1990 के दशक की शुरुआत में इनमोस में ज्योफ बैरेट द्वारा बनाई गई ओकम 3 भाषा (इसके शुरुआती विकास के दौरान ओकैम91 के रूप में भी संदर्भित) के लिए पहले के प्रस्ताव से प्रभावित था। समुदाय टिप्पणी के लिए ओकैम 3 का वर्णन करने वाला एक संशोधित संदर्भ मैनुअल वितरित किया गया था,[5] लेकिन एक कंपाइलर में भाषा को कभी भी पूरी तरह लागू नहीं किया गया था।

ओकैम 2.1 ने ऑकैम 2 में कई नई विशेषताएं पेश कीं, जिनमें शामिल हैं:

  • नामित डेटा प्रकार (डेटा प्रकार x IS y)
  • नामित रिकॉर्ड
  • पैक्ड रिकॉर्ड
  • कुछ प्रकार के रूपांतरण नियमों में छूट
  • नए ऑपरेटर (जैसे बाइटेसिन)
  • चैनल रीटाइपिंग और चैनल सरणी
  • फ़ंक्शन से निश्चित-लंबाई सरणी वापस करने की क्षमता।

परिवर्तनों की पूरी सूची के लिए Inmos occam 2.1 संदर्भ मैनुअल का परिशिष्ट P देखें।

ओकम-π

ओकम-π[6] केंट रिटारगेटेबल ओकम कंपाइलर (केआरओसी) के बाद के संस्करणों द्वारा लागू किए गए ओकैम संस्करण के लिए सामान्य नाम है। ओकैम नाम में पाई (अक्षर)|π (पी) प्रतीक को जोड़ना KRoC ओकैम के लिए एक भ्रम है जिसमें π-कैलकुलस से प्रेरित कई विचार शामिल हैं। इसमें ओकैम 2.1 कंपाइलर के लिए कई महत्वपूर्ण एक्सटेंशन शामिल हैं, उदाहरण के लिए:

यह भी देखें

संदर्भ

  1. 1.0 1.1 occam 2.1 Reference Manual (PDF). SGS-Thomson Microelectronics Ltd. 1995-05-12. Inmos document 72 occ 45 03
  2. Occam प्रोग्रामिंग मैनुअल. Prentice-Hall. 1984. ISBN 0-13-629296-8.
  3. Ericsson-Zenith, Steven (1988). occam 2 Reference Manual. Prentice-Hall. ISBN 0-13-629312-3.
  4. Cook, Barry M; Peel, RMA (1999-04-11). "फील्ड-प्रोग्रामेबल गेट एरेज़ पर आ जाओ". In Cook, Barry M. (ed.). Architectures, Languages and Techniques for Concurrent Systems. 22nd World Occam and Transputer User Group Technical Meeting. Keele, United Kingdom: IOS Press. p. 219. ISBN 90-5199-480-X. Retrieved 2016-11-28.
  5. Barrett, Geoff; Ericsson-Zenith, Steven (1992-03-31). "occam 3 Reference Manual" (PDF). Inmos. Retrieved 2008-03-24. {{cite journal}}: Cite journal requires |journal= (help)
  6. Barnes, Fred; Welch, Peter (2006-01-14). "occam-pi: Blending the best of CSP and the pi-calculus". Retrieved 2006-11-24.


अग्रिम पठन


बाहरी संबंध