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

From Vigyanwiki
सियाओ
File:Logo for Ciao programming language.png
Paradigmलॉजिक, फंक्शनल, मॉड्यूलर, ऑब्जेक्ट-ओरिएंटेड
ओएसक्रॉस-प्लेटफ़ॉर्म (यूनिक्स, मैक ओएस एक्स, विंडोज़)
लाइसेंसजीपीएल, एलजीपीएल
वेबसाइटwww.ciao-lang.org
Influenced by
Prolog

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

भाषा विशेषताएँ

सियाओ एक पूर्ण प्रोलॉग सिस्टम (आईएसओ-प्रोलॉग का समर्थन), प्रोलॉग के घोषणात्मक उपसमुच्चय और एक्सटेंशन, कार्यात्मक प्रोग्रामिंग (सुस्त मूल्यांकन (लेजी इवैल्यूएशन) सहित), उच्च-क्रम (विधेय सार के साथ), बाधा प्रोग्रामिंग, और ऑब्जेक्ट्स, साथ ही फीचर शर्तों (रिकॉर्ड) प्रदान करता है। ), दृढ़ता, कई नियंत्रण नियम (चौड़ाई-पहली खोज, पुनरावृत्त गहराई, ...), समवर्ती (थ्रेड्स/इंजन), वितरित निष्पादन (एजेंट), और समानांतर निष्पादन। पुस्तकालय डब्ल्यूडब्ल्यूडब्ल्यू प्रोग्रामिंग, सॉकेट्स, बाहरी इंटरफेस ((सी, जावा, टीसीएलटीके, रिलेशनल डेटाबेस, आदि), आदि का समर्थन करते हैं।

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

सुरक्षित और भरोसेमंद प्रोग्राम विकसित करना

सियाओ में बड़े पैमाने पर प्रोग्रामिंग इसके द्वारा समर्थित है:

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

सियाओ के पास छोटे में प्रोग्रामिंग के लिए भी समर्थन है: संकलक छोटे निष्पादन योग्य बनाने में सक्षम है (केवल प्रोग्राम द्वारा उपयोग किए जाने वाले बिलिन सहित) और दुभाषिया स्क्रिप्टिंग का समर्थन करता है।

एनवायरनमेंट में एम्बेड करने योग्य स्रोत-स्तर डीबगर और कई निष्पादन विज़ुअलाइज़ेशन टूल के साथ प्रतिष्ठित शीर्ष-स्तर और एक विकसित एमएसीएस इंटरफ़ेस सम्मिलित है।

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

ऑटो-डॉक्यूमेंटेशन

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

सुवाह्यता और दक्षता

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

अग्रिम पठन

  • Manuel V. Hermenegildo; et al. (2011). "An Overview of Ciao and its Design Philosophy". arXiv:1102.5497 [cs.PL].
  • The Ciao Development Team. "The Ciao System Home".
  • Enrico Pontelli (ed.). "The CIAO Multiparadigm Language and Program Development Environment".
  • Kei Davis, Jörg Striegnitz. "Multiparadigm programming in object-oriented languages: current research report on the workshop MPOOL'07". ECOOP'07 Proceedings of the 2007 conference on Object-oriented technology.

संदर्भ

  1. "सियाओ सिस्टम". ciao-lang.org. Retrieved 2017-08-12.