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

Ciao एक सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषा है जो तर्क प्रोग्रामिंग, बाधा प्रोग्रामिंग, कार्यात्मक प्रोग्रामिंग, उच्च-क्रम प्रोग्रामिंग|उच्च-क्रम और वस्तु-उन्मुख प्रोग्रामिंग शैलियों का समर्थन करती है। इसके मुख्य डिजाइन उद्देश्य उच्च अभिव्यंजक शक्ति (कंप्यूटर विज्ञान), विस्तारशीलता, सुरक्षा, विश्वसनीयता और कुशल निष्पादन हैं।

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

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

सुरक्षित और विश्वसनीय कार्यक्रम विकसित करना
सियाओ में बड़े पैमाने पर प्रोग्रामिंग के माध्यम से समर्थित है:


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

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

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

Ciao प्रीप्रोसेसर स्थिर डिबगिंग और सत्यापन का समर्थन करता है स्रोत से स्रोत कार्यक्रम के माध्यम से अभिकथन जाँच और अनुकूलन परिवर्तन। ये कार्य वितरित किए गए Ciaopp द्वारा किए जाते हैं अलग से)।

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

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