ما هو ملف ICI؟
تُعرف لغة البرمجة ذات الأغراض العامة التي يتم تفسيرها وتحتوي على العديد من الميزات مثل الكتابة الديناميكية إلى جانب أنواع البيانات المرنة باسم لغة البرمجة ICI (وليس اختصارًا). تعتبر مشابهة للغة Perl. تشتمل لغة ICI هذه على بنيات التحكم في التدفق وتحتوي أيضًا على بعض مشغلي لغة C. إنها ليست لغة موجهة للكائنات ولكن يمكن الحصول على بعض ميزات OOP من خلال طريقة وراثة محددة تُعرف باسم البنية الفوقية. على غرار C ، فإن لغة البرمجة ICI هذه لها نفس واجهة النظام ومكتبة قياسية للوظائف المضمنة.
نبذة تاريخية
في أواخر الثمانينيات ، تم تطويره بواسطة Tim Long كلغة برمجة مفسرة للأغراض العامة. تشبه معظم ميزات هذه اللغة لغة C ويمكنها أيضًا تحقيق بعض الميزات من خلال تطبيق بعض الأساليب الخاصة. هذه اللغة مملوكة كمجال عام وهي متاحة كلغة يمكن إعادة بيعها ولا أحد ملزم بأن يذكر من أين حصل على الكود المصدري. يخضع توثيق ICI لحقوق الطبع والنشر لشركة Canon Information System Research Australia.
مواصفات تكنيكال
هناك نوعان مختلفان من البيانات المستخدمة في هذه اللغة. هذان النوعان من أنواع البيانات الأولية والتجميعية. يتضمن كلاهما تعبيرات مختلفة وفقًا لتكوينها المحدد مسبقًا في اللغة. تدعم هذه اللغة الوحدات النمطية المختلفة مثل الإجراءات المتداخلة والفرعية. نظرًا لأن بعض خصائصها تشبه Perl ، فإنها تتمتع بتكامل صارم مع التعبيرات النمطية.
المجموعات محصورة في أن تكون غير متجانسة ومتداخلة. توفر هذه المجموعات دعمًا لعمليات مجموعة شائعة الاستخدام مثل الاتحاد والتقاطع وما إلى ذلك ، وهي تستخدم في الغالب كلغة من أجل التنفيذ الأساسي للتطبيقات التي تمتلكها المنظمات متعددة الجنسيات.
يمكن كتابة جميع أنواع البرامج تقريبًا بهذه اللغة ومعظم البرامج المحددة التي تتضمن هياكل بيانات معقدة مكتوبة بلغة برمجة ICI. يمكن أن تتضمن التطبيقات تطبيق ICI بطريقة يجب كتابتها فيه. يمكن تنفيذ الأجزاء الوظيفية من التطبيق بواسطة وحدات ICI. تشبه لغة ICI لغة C إلى حد ما ولكن نموذج بيانات ICI هو مستوى أعلى تمامًا ومختلف مع أنواع مثل القواميس (البنية) والمجموعات والمصفوفات الديناميكية والتعبيرات العادية والسلاسل (الحقيقية).
مثال تنسيق ملف ICI
printf("Hello world.\n");
s = [set 200, 300, "a string"];
if (s[200])
printf("200 is in the set\n");
if (s[400])
printf("400 is in the set\n");
if (s["a string"])
printf("\"a string\" is in the set\n");
s[200] = 0;
if (s[200])
printf("200 is in the set\n");
forall (colour in [array "red", "green", "blue"])
printf("%s\n", colour);