انطلق! (لغة برمجة)
لغة البرمجة Go! هي لغة برمجة قائمة على الوكلاء، وتندرج ضمن تقاليد لغات البرمجة المنطقية مثل Prolog . [ 1 ] وقد طُرحت في ورقة بحثية عام 2003 من قِبل فرانسيس مكابي وكيث كلارك . [ 2 ]
تصميم
يصف مؤلفو لغة Go! هذه اللغة بأنها " لغة برمجة متعددة الأنماط ، موجهة لتلبية احتياجات برمجة تطبيقات آمنة وعالية الجودة وقائمة على الوكلاء. وهي متعددة الخيوط ، ذات كتابة قوية، وذات ترتيب عالٍ (بمعنى البرمجة الوظيفية). تحتوي على تعريفات للعلاقات والدوال وإجراءات العمل. تقوم الخيوط بتنفيذ إجراءات العمل، واستدعاء الدوال، والاستعلام عن العلاقات حسب الحاجة. تتواصل الخيوط في وكلاء مختلفين وتنسق فيما بينها باستخدام رسائل غير متزامنة. كما يمكن للخيوط داخل الوكيل نفسه استخدام علاقات ديناميكية مشتركة تعمل كمخازن بيانات على نمط Linda ." [ 2 ]
ويقترح المؤلفون أيضاً أن اللغة مناسبة لتمثيل الأنطولوجيات نظراً لتكاملها بين أساليب البرمجة المنطقية والوظيفية والإجرائية . [ 3 ]
مثال
يوضح المثال التالي أسلوب النوع والتصريحات "الموجه نحو الأنطولوجيا" في لغة Go!: [ 3 ]
الجنس :: = ذكر | أنثىشخص <~ { يوم الميلاد: [] => اليوم . العمر : [] => عدد صحيح . الجنس : [] => الجنس . الاسم : [] => سلسلة . المنزل : [] => سلسلة . الأرواح : [ سلسلة ] {}}.person :[ string , day , Sex , string ] $ = person .شخص ( اسم العائلة ، تاريخ الميلاد ، الجنس ، الجنس البشري )..{ يوم الميلاد () => تاريخ الميلاد . العمر () => السنوات بين ( الآن ()، تاريخ الميلاد ). الجنس () => الجنس . الاسم () => اسم العائلة . المنزل () => الجنس البشري . يعيش ( الجنس ) :- الجنس البشري = المنزل (). السنوات بين: [ عدد صحيح ، يوم ] => عدد صحيح . السنوات بين (...) => .. }.newPerson: [ string , day , Sex , string ] => person .newPerson ( Nm , Born , Sx , Hm ) => $ person ( Nm , Born , Sx , Hm ).- تحدد القاعدة نوع بيانات جبرية
::=جديد ، وهو نوع بيانات يحتوي فقط على مُنشئات البيانات. - تحدد القاعدة
<~نوع الواجهة - فهي تشير إلى الخصائص المميزة لها،personكما تحدد قيود النوع على هذه الخصائص. وتوثق أنageخاصية وظيفية ذات قيمة عددية صحيحة، وأنlivesعلاقة أحادية على السلاسل النصية، وأنdayOfBirthخاصية وظيفية ذات قيمة كائن من النوعday. - تشير قاعدة
$=النوع إلى وجود تسمية نظرية أيضًا، مع الدالةperson، لنظرية تحدد الخصائص المميزة للنوعperson- تنفذpersonالواجهة - من حيث أربعة معلمات معينة من الأنواعstring،day،Sex، وstring.
تعارض مع جوجل
في نوفمبر 2009، أطلقت جوجل لغة برمجة تحمل اسمًا مشابهًا، وهو Go! (بدون علامة تعجب ). طلب مكابي من جوجل تغيير اسم لغتهم، إذ كان قلقًا من "تفوقهم الساحق علينا". [ 1 ] [ 4 ] حظيت هذه المسألة باهتمام مواقع الأخبار التقنية، ووصف بعضها لغة Go! بأنها "غامضة". [ 5 ] أغلق أحد مطوري جوجل موضوع النقاش الذي فُتح حول هذه المسألة في 12 أكتوبر 2010، ومنحه الحالة "مؤسف"، مع التعليق التالي: "هناك العديد من منتجات وخدمات الحوسبة التي تحمل اسم Go!. خلال الأشهر الـ 11 التي تلت إطلاق لغتنا، كان الالتباس بين اللغتين ضئيلاً للغاية". [ 6 ]
مراجع
- 1 2 3 كلابورن، توماس (11-11-2009). "اسم جوجل 'Go' يثير اتهامات بـ'الشر'"" . InformationWeek . مؤرشف من الأصل بتاريخ 22-07-2010 . تم الاطلاع عليه بتاريخ 14-11-2009 .
- 1 2 كلارك، ك. ل.؛ مكابي، ف. ج. (2003). "انطلق! من أجل وكلاء تداوليين متعددي الخيوط". وقائع المؤتمر الدولي المشترك الثاني حول الوكلاء المستقلين وأنظمة الوكلاء المتعددين . ص 964-965 . CiteSeerX 10.1.1.117.184 . doi : 10.1145/860575.860747 . ISBN 978-1581136838. S2CID 2047545 .
- 1 2 كلارك، ك. ل.؛ مكابي، ف. ج. (2006). "البرمجة الموجهة نحو الأنطولوجيا في لغة جو!". الذكاء التطبيقي . 24 (3): 189-204 . doi : 10.1007/s10489-006-8511-x .
- ↑ "العدد 9 - go - لقد استخدمتُ هذا الاسم بالفعل للغة البرمجة *الخاصة بي*" . 10-11-2009 . تم الاطلاع عليه بتاريخ 14-11-2009 .
- ↑ براونلي، جون (13 نوفمبر 2009). "لم تبحث جوجل عن كلمة "Go" قبل تسمية لغة البرمجة الخاصة بها" . Geek.com. مؤرشف من الأصل في 6 مايو 2012. تم الاطلاع عليه في 18 يناير 2010 .
- ↑ «لقد استخدمتُ هذا الاسم بالفعل للغة البرمجة *الخاصة بي*» · المشكلة رقم 9 · golang/go . GitHub . تم الاطلاع عليه بتاريخ 4 يوليو 2019 .
للمزيد من القراءة
- كلارك، كيه إل؛ مكابي، إف جي (2003). "البرمجة الموجهة نحو الأنطولوجيا في لغة جو!" (ملف PDF) .
- كلارك، ك. ل.؛ مكابي، ف. ج. (2004). "Go! - لغة برمجة متعددة الأنماط لتنفيذ وكلاء متعددين الخيوط" . حوليات الرياضيات والذكاء الاصطناعي . 41 ( 2-4 ): 171-206 . CiteSeerX 10.1.1.133.1069 . doi : 10.1023/B:AMAI.0000031195.87297.d9 . S2CID 6992205 .
- ر. بورديني وآخرون (2006). "دراسة استقصائية للغات البرمجة والمنصات الخاصة بأنظمة الوكلاء المتعددين" . مجلة إنفورماتيكا . 30 : 33-44 . مؤرشف من الأصل بتاريخ 15 نوفمبر 2009.
- م. فيشر وآخرون (2007). "المنطق الحسابي والوكلاء - خارطة طريق للتقنيات الحالية والاتجاهات المستقبلية" . الذكاء الحسابي . 23 (1): 61-91 . CiteSeerX 10.1.1.114.6149 . doi : 10.1111/j.1467-8640.2007.00295.x . S2CID 3393868 .
{{cite journal}}: CS1 maint: deprecated archiveal service ( link ) - مكابي، فرانسيس ج. (7 فبراير 2007). هيا بنا! . دار نشر نتوورك إيجنت. ISBN 978-0-9754449-1-7.
- سي. فاريلا وآخرون (2004). حول نمذجة أنظمة الوكلاء باستخدام إرلانج . ورشة عمل إرلانج التابعة لمؤتمر ACM SIGPLAN لعام 2004. مؤرشف من الأصل بتاريخ 15 نوفمبر 2009. تم الاطلاع عليه بتاريخ 12 نوفمبر 2009 .
روابط خارجية
- لغات البرمجة المتزامنة
- مترجمات مجانية ومفتوحة المصدر
- لغات البرمجة التي تم إنشاؤها في عام 2003
