Ciao (زبان برنامه نویسی)

**Ciao** یک زبان برنامه نویسی همه منظوره است که از سبک‌های برنامه نویسی منطقی، محدودیت‌ها، عملکردی، درجه بالاتر و شی گرا پشتیبانی می‌کند. اهداف اصلی طراحی آن قدرت بیان بالا، توسعه پذیری، ایمنی، قابلیت اطمینان و اجرای کارآمد است.

## ویژگی‌های زبان
Ciao یک سیستم کامل Prolog (پشتیبانی از ISO -Prolog)، زیرمجموعه‌های اعلامی و پسوندهای Prolog، برنامه‌نویسی کاربردی (شامل ارزیابی تنبل)، مرتبه بالاتر (با انتزاعات محمول)، برنامه‌نویسی محدودیت‌ها و اشیاء، و همچنین عبارات ویژگی (سوابق)، تداوم، چندین قانون کنترلی (گسترش، جست‌وجوی عمیق، ...) ارائه می‌کند. (رشته ها/موتورها)، اجرای توزیع شده (عامل) و اجرای موازی. کتابخانه‌ها همچنین از برنامه نویسی WWW، سوکت‌ها، رابط‌های خارجی (C، جاوا، TclTk، پایگاه‌های داده رابطه ای و غیره) و غیره پشتیبانی می‌کنند.

Ciao بر روی هسته ای با طراحی ماژولار قابل توسعه ساخته شده است که امکان محدود کردن و گسترش زبان را فراهم می‌کند - می‌توان آن را به عنوان یک زبان سازنده زبان دید. این محدودیت‌ها و افزونه‌ها را می‌توان به‌طور جداگانه در هر ماژول برنامه فعال کرد تا چندین افزونه بتوانند در یک برنامه برای ماژول‌های مختلف با هم وجود داشته باشند.

## توسعه برنامه‌های ایمن و قابل اعتماد
برنامه نویسی در بزرگ در Ciao از طریق:
* یک سیستم ماژول/شیء قوی. این کامپایل جداگانه/افزایشی مبتنی بر ماژول را فراهم می‌کند (که به صورت خودکار بدون نیاز به فایل‌های ساختنی است).
* یک زبان ادعای یکپارچه برای اعلام ویژگی‌های برنامه (اختیاری) (مشخصات). اینها شامل انواع، حالت‌ها، تعیین، عدم شکست، هزینه (زمان، حافظه) و غیره است.
* استنتاج خودکار و بررسی استاتیک/دینامیک چنین ادعاهایی (از جمله آزمایش واحد).

Ciao همچنین از برنامه نویسی در ابعاد کوچک پشتیبانی می‌کند: کامپایلر قادر به تولید فایل‌های اجرایی کوچک (شامل تنها داخلی‌هایی است که توسط برنامه استفاده می‌شود) و مفسر از برنامه نویسی پشتیبانی می‌کند.

این محیط شامل یک رابط کلاسیک سطح بالا و یک رابط emacs تکامل‌یافته با یک اشکال‌زدای سطح منبع قابل جاسازی و تعدادی ابزار تجسم اجرایی است.

پیش پردازنده Ciao از اشکال زدایی ایستا و تأیید صحت بررسی و بهینه‌سازی از طریق تبدیل برنامه منبع به منبع پشتیبانی می‌کند. این وظایف توسط Ciaopp انجام می‌شود که به‌طور جداگانه توزیع شده است).

## مستندسازی خودکار
Ciao شامل lpdoc است، یک تولیدکننده اسناد خودکار. برنامه‌های آراسته به اظهارات (Ciao) و نظرات قابل خواندن توسط ماشین را پردازش می‌کند و کتابچه‌های راهنما را در قالب‌های بسیاری از جمله HTML, pdf, texinfo, info, man، و غیره، و همچنین راهنمای آنلاین، فایل‌های ascii README، ورودی‌هایی برای شاخص‌های کتابچه‌های راهنما (اطلاعات، WWW، ...) تولید می‌کند و سایت توزیع WWW را حفظ می‌کند.

## قابلیت حمل و کارایی
کامپایلر Ciao (که می‌تواند خارج از پوسته سطح بالا اجرا شود) چندین فرم از فایل‌های اجرایی مستقل و مستقل از معماری را تولید می‌کند که با سرعت، کارایی و اندازه قابل اجرا اجرا می‌شوند که بسیار رقابتی با سایر زبان‌های سطح بالا به‌طور کلی و به‌طور خاص با سیستم‌های تجاری و دانشگاهی Prolog/CLP هستند. ماژول‌ها را می‌توان در بایت کد فشرده یا فایل‌های منبع C کامپایل کرد و به صورت ایستا، پویا یا خودکار بارگذاری کرد.

## جستارهای وابسته
* مقایسه پیاده‌سازی‌های Prolog
* نحو و معناشناسی پرولوگ

## در ادامه مطلب
* 
* 
* 
* 

## منابع


## پیوند به بیرون

رده:زبان‌های اسکریپت‌نویسی
رده:زبان‌های برنامه‌نویسی شیءگرا
رده:زبان‌های برنامه‌نویسی ماشینی پویا
رده:زبان‌های برنامه‌نویسی متن‌گرا
رده:زبان‌های تابعی
رده:نرم‌افزارهای آزاد چندسکویی
رده:نرم‌افزارهای چندسکویی