لغة C++ المضمنة

لغة البرمجة المدمجة C++ ( EC++ ) هي لهجة من لغة البرمجة C++ مخصصة للأنظمة المدمجة . وقد طُورت من قِبل مجموعة صناعية بقيادة كبرى الشركات اليابانية المصنعة لوحدات المعالجة المركزية (CPU)، بما في ذلك NEC و Hitachi و Fujitsu و Toshiba ، وذلك لمعالجة أوجه القصور في لغة C++ للتطبيقات المدمجة. يهدف هذا الجهد [ 1 ] إلى الحفاظ على أهم ميزات البرمجة الكائنية في لغة C++ مع تقليل حجم الكود إلى أدنى حد، وزيادة كفاءة التنفيذ إلى أقصى حد، وتبسيط عملية بناء المترجم . ويذكر الموقع الرسمي أن الهدف هو "تزويد مبرمجي الأنظمة المدمجة بمجموعة فرعية من لغة C++ يسهل على مبرمج C العادي فهمها واستخدامها". [ 2 ]

الاختلافات عن لغة C++

يستثني برنامج C++ المضمن بعض ميزات C++.

ميزةISO/ANSI C C++لغة C++ المضمنة
معالجة الاستثناءاتنعملا
الوراثة المتعددةنعملا
mutable، مُحدِّد فئة التخزيننعملا
مساحات الأسماءنعملا
القوالبنعملا
معلومات نوع وقت التشغيل ( typeid)نعملا
تحويلات النمط ( static_cast، dynamic_cast، reinterpret_cast، و const_cast)نعملا
صفوف أساسية افتراضيةنعملا

تسمح بعض المترجمات، مثل تلك التي تنتجها شركتا Green Hills وIAR Systems، بتفعيل بعض ميزات لغة ISO/ANSI C++ في لغة Embedded C++. وتطلق شركة IAR Systems على هذه اللغة اسم "Extended Embedded C++". [ 3 ]

تجميع

يمكن تجميع برنامج EC++ باستخدام أي مُجمِّع C++. ولكن، قد يكون من الأسهل على المُجمِّع المُخصَّص لـ EC++ إجراء عملية التحسين.

يتم توفير برامج الترجمة الخاصة بلغة EC++ من قبل شركات مثل:

نقد

لم تلقَ لغة EC++ استحسانًا لدى العديد من مبرمجي C++ الخبراء. يقول بيارن ستروستروب تحديدًا : "على حد علمي، انتهى عصر EC++ (عام 2004)، وإن لم يكن كذلك، فينبغي أن ينتهي." [ 7 ] في الواقع، لم يتم تحديث الموقع الرسمي الإنجليزي للغة EC++ منذ عام 2002. ومع ذلك، اعتمدت شركة آبل مجموعة فرعية محدودة من لغة C++ (مبنية على Embedded C++) كلغة برمجة حصرية لإنشاء جميع برامج تشغيل أجهزة I/O Kit لأنظمة تشغيل macOS وiPadOS وiOS الخاصة بمنتجات ماكنتوش وآيفون وآيباد الشهيرة. [ 8 ] رأى مهندسو آبل أن ميزات الاستثناءات، والوراثة المتعددة، والقوالب، ومعلومات نوع وقت التشغيل في لغة C++ القياسية إما غير كافية أو غير فعالة بما يكفي للاستخدام في نواة عالية الأداء ومتعددة الخيوط. [ 9 ]

مراجع

  1. "أساسيات EC++" .
  2. أسئلة وأجوبة حول EC++
  3. "لغة C++ المضمنة والموسعة" . مؤرشف من الأصل في 21 مايو 2013. تم الاطلاع عليه في 9 ديسمبر 2012 .
  4. "أنظمة IAR - المترجمات ومصححات الأخطاء" . موقع أنظمة IAR الإلكتروني . مؤرشف من الأصل بتاريخ 2015-01-05 . تم الاطلاع عليه بتاريخ 2011-02-21 .
  5. "تقنية مُصرّف لغة C++ المُضمّنة" . موقع Tasking الإلكتروني . مؤرشف من الأصل بتاريخ 2009-01-01.
  6. "مترجمات Green Hills المُحسّنة للغات C/C++/EC++" . موقع Green Hills Software الإلكتروني . مؤرشف من الأصل بتاريخ 25-10-2008.
  7. "ما رأيك في EC++؟" . الأسئلة الشائعة لبيارن ستروستروب .
  8. "ما هو نظام التشغيل ماك أو إس إكس؟" . أميت سينغ . مؤرشف من الأصل بتاريخ 19 أبريل 2019. تم الاطلاع عليه بتاريخ 4 مارس 2015 .
  9. "مكتبة libkern C++ Runtime" . إرشادات تصميم برامج تشغيل الأجهزة IOKit .