لغات البرمجة

لغة برمجة ToonTalk: نظام برمجة متحرك للأطفال

لغة البرمجة ToonTalk هي نظام برمجة حاسوبي مصمم ليتم برمجته بواسطة الأطفال. تتمثل فكرة الـ “Toon” في جانب الرسوم المتحركة. يتم عرض النظام في شكل شخصيات متحركة، بما في ذلك الروبوتات التي يمكن تدريبها عن طريق المثال. وهي واحدة من القليل من التطبيقات الناجحة خارج الأكاديمية لنموذج البرمجة المنطقي للقيود المتزامنة. تم إنشاؤها بواسطة كينيث إم. كان في عام 1995، ونُفذت كجزء من بيئة تطوير ToonTalk، وهو حزمة برمجيات توزع حول العالم بين عامي 1996 و 2009. ومنذ عام 2009، تم نشر مواصفاتها بشكل علمي وأصبح تنفيذها متاحًا بحرية. بدأًا من عام 2014، ظهرت نسخة JavaScript HTML5 من ToonTalk تُسمى ToonTalk Reborn for the Web. تعمل على أي متصفح ويب حديث وتختلف عن الإصدار السطحي من ToonTalk بعدة طرق. يمكن لبرامج ToonTalk تشغيل على أي عنصر DOM وتتوفر لبرامج ToonTalk مختلف قدرات المتصفح (الصوت، الفيديو، الأنماط، إدخال وإخراج الصوت، وأحداث المتصفح). تم دمج خدمات الويب مثل Google Drive. ToonTalk Reborn مجاني ومفتوح المصدر.

تطور ToonTalk بعد فترة حياته كمنتج تجاري من خلال الاستخدام الأكاديمي الهام في مشاريع بحثية مختلفة، بشكل ملحوظ في مختبرات المعرفة في لندن ومعهد التعليم – مشاريع Playground و WebLabs، التي شارك فيها شركاء بحثيين من كامبريدج (Logotron)، البرتغال (Cnotinfor وجامعة لشبونة)، السويد (المعهد الملكي للتكنولوجيا)، سلوفاكيا (جامعة كومينيوس)، بلغاريا (جامعة صوفيا)، قبرص (جامعة قبرص)، وإيطاليا (معهد التكنولوجيا التربوية للمجلس الوطني للأبحاث). وكان مصدرًا للاهتمام الأكاديمي أيضًا في السويد، حيث اقترح ميكائيل كيندبورغ تمثيلًا ثابتًا لبرامج ToonTalk، وفي البرتغال، حيث درس ليونيل مورغادو إمكانياته لتمكين الأطفال قبل القراءة من البرمجة الحاسوبية.

تأثرت ToonTalk بلغة برمجة الكمبيوتر Janus ونموذج الممثل. التجريد الرئيسي للتواصل في ToonTalk هو الزوج الطائر / العش. عندما تعطي شيئًا للطائر، يطير إلى عشه ويضع الشيء فيه، ثم يعود. إذا كان أحد الأشياء موجودًا بالفعل في العش، يضع الطائر الجديد تحت الآخرين. برنامج ToonTalk هو متتالية من القواعد، حيث تحتوي كل قاعدة على رأس وذيل. الرأس هو نمط يمكن أن يتم مطابقته مع الوسيطة، التي يجب أن تكون عبارة عن صف. في العرض الخاص بـ ToonTalk، تظهر القاعدة كروبوت، والبرنامج كفريق من الروبوتات، والوسيطة كصندوق يمكن أن يحتوي على أي عدد من الثقوب أو الحجرات التي يمكن وضع الأشياء فيها. يتكون العملية من صندوق مع فريق من الروبوتات يعمل عليه. إذا لم يتم مطابقة أي من الأنماط مع الصندوق، تعلق العملية. وإلا، تنفذ أول قاعدة تطابق، ثم تشتعل. في حالة الدعوة لشيء غير عش فارغ حيث يكون عش فارغا، تعلق العملية حتى يجب أن يضع الطائر شيئًا على العش (عادةً كنتيجة لأفعال عمليات أخرى). العش مع شيء عليه يطابق النمط كما لو أن العش لم يكن هناك، فقط الشيء (الأعلى). تتلاعب الإجراءات في الذيل أيضًا بالشيء بدلاً من العش بأكمله. وبالتالي، يمكن استخدام العش لبرمجة المستقبل. يمكن إعطاء ToonTalk قراءة إما تنفيذية أو اعلانية. إذا تجاهلنا بنية البيانات المعينة التي تهدف إلى تسهيل الإدخال / الإخراج، يمكننا رؤية ToonTalk على أنها لا تحتوي على أي وصول مشترك إلى الذاكرة المتغيرة. يشبه آلية الطائر / العش التواصل في نموذج الممثل، لكن مع القدرة الإضافية على تمرير العش حولها وأن يحتوي العملية على أكثر من عش واحد (وهو صحيح أيضًا في Janus). الفرق بين التواصل في نموذج الممثل وفي ToonTalk هو أن ToonTalk يحتفظ بترتيب الرسائل؛ ومع ذلك، يمكن أيضًا لـ ToonTalk توفير دمج غير محدد لتدفقات الرسائل.