بوني (لغة برمجة)

بوني (المعروفة أيضًا باسم بوني لانج ) هي لغة برمجة كائنية التوجه ، تعتمد نموذج الممثل ، وتتميز بأمانها العالي وقدراتها المتقدمة. [ 6 ] [ 7 ] تتيح إمكانيات بوني المرجعية إمكانية تمرير البيانات، حتى القابلة للتغيير، بأمان بين الممثلين. يتم جمع البيانات المهملة بشكل متزامن لكل ممثل، مما يلغي الحاجة إلى إيقاف تنفيذ البرنامج مؤقتًا أو إيقاف العالم . [ 8 ] [ 9 ] [ 10 ] سيلفان كليبش هو المبتكر الأصلي للغة. [ 11 ] [ 12 ] ويتولى أعضاء فريق بوني حاليًا صيانتها وتطويرها. [ 13 ] وهي برمجيات مجانية ومفتوحة المصدر، مرخصة بموجب رخصة BSD ثنائية البنود .

تاريخ

ابتكر سيلفان كليبش هذه اللغة أثناء دراسته للدكتوراه في إمبريال كوليدج لندن . وكانت أستاذته آنذاك صوفيا دروسوبولو ، المعروفة أيضاً بإسهاماتها في برمجة الحاسوب، ومحاضراتها. ووفقاً لمطورين تحدثوا مع سيلفان، فقد كان محبطاً لعدم وجود لغة عالية الأداء قادرة على تشغيل التعليمات البرمجية المتزامنة بشكل آمن وبسيط. [ 14 ]

تصميم اللغة

في جوهرها، تُعتبر لغة بوني لغة أنظمة مصممة حول السلامة والأداء.

أمان

أداء

  • بدون أقفال - بفضل تصميمها، تتجنب بوني الحاجة إلى آليات القفل التقليدية، مما يلغي التكاليف الإضافية والنزاعات المرتبطة بالأقفال. [ 14 ]
  • لغة البرمجة الأصلية – بوني هي لغة مُجمّعة مسبقًا . لا يوجد مُفسّر أو آلة افتراضية [ 18 ] [ 16 ]
  • جمع البيانات المهملة المتزامن – يتم جمع بيانات كل عنصر على حدة وبشكل متزامن، مما يغني عن الحاجة إلى "إيقاف العالم" لإجراء عملية جمع البيانات على مستوى النظام. [ 11 ] [ 12 ] [ 21 ]

أمثلة

مرحبا بالعالم

في لغة بوني، بدلاً من الدالة الرئيسية، يوجد ممثل رئيسي . ويُعدّ إنشاء هذا الممثل بمثابة نقطة الدخول إلى برنامج بوني، كما هو الحال في برنامج "مرحباً بالعالم!" هذا . [ 6 ] [ 17 ]

actor Main new create ( env : Env ) => env . out . print ( "Hello, world!" )

لا توجد متغيرات عامة في لغة بوني، مما يعني أن كل شيء يجب أن يكون موجودًا داخل نسخة من فئة أو ممثل. [ 14 ] ولذلك، حتى البيئة التي تسمح بالطباعة إلى المخرج القياسي تُمرر كمعامل. [ 14 ] [ 6 ]

مراجع

  1. "سيلفان كليبش" . ACM .
  2. "أول إصدار عام" . جيت هاب . 28 أبريل 2015.
  3. "Ponyc/LICENSE at main: ponylang/Ponyc" . GitHub .
  4. دانييلي بونيتا لوكا؛ سويسرا الإيطالية؛ ستيفان مار؛ والتر بيندر (2 نوفمبر 2016). "GEMS: برمجة متوازية للذاكرة المشتركة لـ Node.js" . أوراكل . تم الاسترجاع في 10 مارس 2025. استُلهم تصميم Pony نفسه من نموذج برمجة E.
  5. ليام تونغ. "مايكروسوفت تفتح لغة البرمجة Project Verona المستوحاة من Rust على GitHub" . ZDNet . Project Verona، التي تستعير أيضًا مفاهيم من Cyclone، وهي "لهجة آمنة من لغة C"، وPony، التي تضم مساهمين رئيسيين من قسم أبحاث مايكروسوفت.
  6. 1 2 3 4 ألين 2024 .
  7. "مقدمة في نموذج الممثل" . adabeat . 8 أغسطس 2024. تم الاطلاع عليه في 8 مارس 2025 .
  8. سيلفان كليبش؛ جوليانا فرانكو؛ صوفيا دروسوبولو (12 أكتوبر 2017). "جمع البيانات المهملة القائم على الملكية وحساب المراجع في عالم الممثل" . وقائع مؤتمر ACM للغات البرمجة 1 ( OOPSLA): 72:1–72:28. doi : 10.1145/3133896 . تاريخ الاسترجاع: 24 ديسمبر 2024 .
  9. "مقدمة إلى لغة برمجة بوني" . لينكد إن . سوسايتي 5 سوليوشنز. 15 أكتوبر 2024. تم الاطلاع عليه بتاريخ 28 ديسمبر 2024 .
  10. دانيال كاكامو (2018). "GoA: ممثلون بذاكرة مُدارة محليًا للغة Go" . UWSpace . تم الاسترجاع في 28 ديسمبر 2024 .
  11. 1 2 تشارلز همبل (14 مارس 2016). "استخدام نموذج الممثل للغة بوني في مجال التكنولوجيا المالية" . InfoQ . تم الاطلاع عليه بتاريخ 24 ديسمبر 2024 .
  12. 1 2 صوفيا دروسوبولو (14 سبتمبر 2020). "المهر، الفاعلون، السببية، الأنواع، وجمع القمامة" . InfoQ . تم الاسترجاع في 24 ديسمبر 2024 .
  13. "فريق بوني" . جيت هاب . تم الاطلاع عليه بتاريخ 28 ديسمبر 2024 .
  14. ١ ٢ ٣ ٤ كريستوفر غرونلوند (٢٢ يناير ٢٠١٨). الجميع يحصل على مهر! . أرشيف . مؤتمر لينكس أستراليا ٢٠١٨ (LCA2018) . تم الاطلاع عليه بتاريخ ٢٨ ديسمبر ٢٠١٤ .
  15. جون موم (19 مارس 2019). "مشاركة البيانات بأمان: إمكانيات مرجعية في بوني" . كودموشن . تم الاسترجاع في 28 ديسمبر 2024 .
  16. أنكوش ثاكور (21 ديسمبر 2024). 12 لغة برمجة جديدة يجب أن تعرفها . جيك فلير . تم الاطلاع عليه في 3 يناير 2025 .
  17. 1 2 MCStone 2023 .
  18. 1 2 مولي 2017 .
  19. شون تي ألين (30 مايو 2018). "مقدمة إلى لغة برمجة بوني" . مفتوح المصدر . تم الاطلاع عليه بتاريخ 28 ديسمبر 2024 .
  20. سيلفان كليبش؛ صوفيا دروسوبولو؛ سيباستيان بليسنج؛ آندي ماكنيل (أكتوبر 2015). "حجب القدرات عن الجهات الفاعلة الآمنة والسريعة". في: غونزاليس بوكس، إليسا؛ هالر، فيليب؛ ريتشي، أليساندرو؛ فاريلا، كارلوس (محررون). AGERE! 2015: وقائع ورشة العمل الدولية الخامسة حول البرمجة القائمة على الجهات الفاعلة والوكلاء والتحكم اللامركزي . بيتسبرغ، بنسلفانيا، الولايات المتحدة الأمريكية: رابطة آلات الحوسبة. الصفحات 1-12 . doi : 10.1145/2824815.2824816 . ISBN  9781450339018.
  21. 1 2 جوليانا فرانكو؛ سيلفان كليبش؛ صوفيا دروسوبولو؛ يان فيتيك؛ توبياس ريغستاد (9 مارس 2018). "سلامة جامع متزامن للممثلين" (ملف PDF) . إمبريال . تم الاسترجاع في 8 مارس 2025 .

للمزيد من القراءة

  • مولي، أندرياس (ديسمبر 2017). "تطوير البرامج المتزامنة باستخدام بوني". مجلة لينكس (205). الرقم الدولي الموحد للدوريات 1536-4674 . 
  • إم سي ستون، مافريك (ديسمبر 2023). دليل بوني: إتقان أساسيات البرمجة المتزامنة . منشور ذاتيًا. رقم ISBN 979-8870768175.
  • ألين، كوربي (يوليو 2024). برمجة بوني: الدليل الكامل لبناء تطبيقات عالية الأداء ومتزامنة وآمنة باستخدام بوني . منشور ذاتيًا. رقم ISBN 979-8332662072.