تشاو (لغة برمجة)
Ciao هي لغة برمجة عامة الأغراض تدعم أنماط البرمجة المنطقية ، والبرمجة المقيدة ، والبرمجة الوظيفية ، والبرمجة عالية المستوى ، والبرمجة كائنية التوجه . وتتمثل أهداف تصميمها الرئيسية في القدرة التعبيرية العالية ، وقابلية التوسع ، والأمان، والموثوقية، والتنفيذ الفعال. [ 1 ]
خصائص اللغة
توفر Ciao نظام Prolog كاملاً (يدعم ISO -Prolog)، ومجموعات فرعية تصريحية وامتدادات لـ Prolog، والبرمجة الوظيفية (بما في ذلك التقييم الكسول )، والبرمجة من الرتبة العليا (مع تجريدات المسندات)، وبرمجة القيود ، والكائنات ، بالإضافة إلى مصطلحات الميزات (السجلات)، والاستمرارية، والعديد من قواعد التحكم ( البحث بالعرض أولاً ، والتعميق التكراري، ...)، والتزامن (الخيوط/المحركات)، والتنفيذ الموزع (الوكلاء)، والتنفيذ المتوازي. كما تدعم المكتبات برمجة الويب، والمآخذ، والواجهات الخارجية ( C ، Java ، TclTk ، قواعد البيانات العلائقية ، إلخ).
تعتمد لغة Ciao على نواة ذات تصميم معياري قابل للتوسيع، مما يسمح بتقييد اللغة وتوسيعها في آنٍ واحد، ويمكن اعتبارها لغةً لبناء اللغات. ويمكن تفعيل هذه القيود والتوسعات بشكل منفصل على كل وحدة برمجية، بحيث يمكن لعدة توسعات أن تتعايش في التطبيق نفسه لوحدات مختلفة.
تطوير برامج آمنة وموثوقة
يتم دعم البرمجة على نطاق واسع في Ciao عبر:
- نظام قوي للوحدات/الكائنات. يوفر هذا النظام تجميعًا منفصلاً/تزايديًا قائمًا على الوحدات (وهو تجميع تلقائي دون الحاجة إلى ملفات makefiles).
- لغة تأكيد متكاملة لتعريف خصائص البرنامج (المواصفات) (اختيارية). وتشمل هذه الخصائص الأنواع، والأنماط، والحتمية، وعدم الفشل، والتكلفة (الوقت، الذاكرة)، وما إلى ذلك.
- الاستدلال التلقائي والتحقق الثابت/الديناميكي من هذه التأكيدات (بما في ذلك اختبار الوحدة).
كما يدعم Ciao البرمجة على نطاق صغير: فالمترجم قادر على إنتاج ملفات تنفيذية صغيرة (بما في ذلك فقط تلك المضمنة المستخدمة بواسطة البرنامج) والمفسر يدعم البرمجة النصية.
تتضمن البيئة واجهة رئيسية كلاسيكية وواجهة emacs متطورة مع مصحح أخطاء قابل للتضمين على مستوى المصدر وعدد من أدوات تصور التنفيذ .
يدعم المعالج المسبق Ciao تصحيح الأخطاء الثابت والتحقق من صحة التأكيدات وتحسين الأداء من خلال تحويل البرنامج من مصدر إلى مصدر. يتم تنفيذ هذه المهام بواسطة Ciaopp، الموزع بشكل منفصل.
التوثيق التلقائي
يتضمن Ciao برنامج lpdoc ، وهو مولد توثيق تلقائي. يقوم هذا البرنامج بمعالجة البرامج المزينة بتأكيدات (Ciao) وتعليقات قابلة للقراءة آليًا، ويولد أدلة استخدام بتنسيقات متعددة تشمل HTML وpdf وtexinfo وinfo وman، بالإضافة إلى المساعدة عبر الإنترنت، وملفات README بصيغة ASCII، ومداخل لفهارس الأدلة (info، WWW، ...)، كما يدير مواقع توزيع WWW.
سهولة الحمل والكفاءة
يُنتج مُترجم Ciao (الذي يُمكن تشغيله خارج واجهة سطر الأوامر الرئيسية) عدة أنواع من الملفات التنفيذية المستقلة عن بنية النظام، والتي تتميز بسرعة وكفاءة وحجم تنفيذي يُضاهي لغات البرمجة عالية المستوى الأخرى عمومًا، وأنظمة Prolog/CLP التجارية والأكاديمية خصوصًا. ويمكن ترجمة الوحدات إلى ملفات بايت كود مضغوطة أو ملفات مصدر C، وربطها بشكل ثابت أو ديناميكي أو تحميلها تلقائيًا.
مثال
:- وحدة ( qsort , [ qsort / 2 ], []).مثال: ?- qsort([5,2,3,4,1],X).qsort ( Data , Out ) :- qsort_ ( Data , Out , []).qsort_ ([], R , R ). qsort_ ([ X | L ], R , R0 ) :- partition ( L , X , L1 , L2 ), qsort_ ( L2 , R1 , R0 ), qsort_ ( L1 , R , [ X | R1 ]).القسم ([]، _ ،[]،[]). القسم ([ X | L ], Y ,[ X | L1 ], L2 ) :- X =< Y , !, القسم ( L , Y , L1 , L2 ). القسم ([ X | L ], Y , L1 ,[ X | L2 ]) :- القسم ( L , Y , L1 , L2 ).انظر أيضاً
للمزيد من القراءة
- مانويل ف. هيرمينجيلدو؛ وآخرون . (2011). “نظرة عامة على Ciao وفلسفة التصميم الخاصة بها”. أرخايف : 1102.5497 [ cs.PL ].
- فريق تطوير Ciao. "الصفحة الرئيسية لنظام Ciao" .
- إنريكو بونتيلي (محرر). "لغة CIAO متعددة النماذج وبيئة تطوير البرامج" .
- كي ديفيس، يورغ ستريغنيتز (30 يوليو 2007). البرمجة متعددة الأنماط في لغات البرمجة كائنية التوجه: تقرير بحثي حالي عن ورشة عمل MPOOL'07 . وقائع مؤتمر ECOOP'07 لعام 2007 حول تقنية البرمجة كائنية التوجه. الصفحات 13-26 . ISBN 978-3-540-78194-3.
مراجع
- ↑ "نظام تشاو" . ciao-lang.org . تم الاطلاع عليه بتاريخ 12 أغسطس 2017 .
روابط خارجية
- عائلة لغات البرمجة برولوج
- اللغات الوظيفية
- لغات البرمجة المنطقية الوظيفية
- برامج متعددة المنصات
- لغات البرمجة ذات الكتابة الديناميكية
- مترجمات مجانية ومفتوحة المصدر
- برامج مجانية متعددة المنصات
- لغات البرمجة الكائنية التوجه
- لغات البرمجة النصية
- لغات البرمجة النصية
