لغة 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++ من قبل شركات مثل:
- أنظمة IAR [ 4 ]
- شركة فري سكيل لأشباه الموصلات (شركة منبثقة عن شركة موتورولا في عام 2004 والتي استحوذت على شركة ميترووركس في عام 1999)
- برنامج إدارة المهام، [ 5 ] جزء من شركة ألتيم المحدودة
- برنامج جرين هيلز [ 6 ]
نقد
لم تلقَ لغة EC++ استحسانًا لدى العديد من مبرمجي C++ الخبراء. يقول بيارن ستروستروب تحديدًا : "على حد علمي، انتهى عصر EC++ (عام 2004)، وإن لم يكن كذلك، فينبغي أن ينتهي." [ 7 ] في الواقع، لم يتم تحديث الموقع الرسمي الإنجليزي للغة EC++ منذ عام 2002. ومع ذلك، اعتمدت شركة آبل مجموعة فرعية محدودة من لغة C++ (مبنية على Embedded C++) كلغة برمجة حصرية لإنشاء جميع برامج تشغيل أجهزة I/O Kit لأنظمة تشغيل macOS وiPadOS وiOS الخاصة بمنتجات ماكنتوش وآيفون وآيباد الشهيرة. [ 8 ] رأى مهندسو آبل أن ميزات الاستثناءات، والوراثة المتعددة، والقوالب، ومعلومات نوع وقت التشغيل في لغة C++ القياسية إما غير كافية أو غير فعالة بما يكفي للاستخدام في نواة عالية الأداء ومتعددة الخيوط. [ 9 ]
مراجع
- ↑ "أساسيات EC++" .
- ↑ أسئلة وأجوبة حول EC++
- ↑ "لغة C++ المضمنة والموسعة" . مؤرشف من الأصل في 21 مايو 2013. تم الاطلاع عليه في 9 ديسمبر 2012 .
- ↑ "أنظمة IAR - المترجمات ومصححات الأخطاء" . موقع أنظمة IAR الإلكتروني . مؤرشف من الأصل بتاريخ 2015-01-05 . تم الاطلاع عليه بتاريخ 2011-02-21 .
- ↑ "تقنية مُصرّف لغة C++ المُضمّنة" . موقع Tasking الإلكتروني . مؤرشف من الأصل بتاريخ 2009-01-01.
- ↑ "مترجمات Green Hills المُحسّنة للغات C/C++/EC++" . موقع Green Hills Software الإلكتروني . مؤرشف من الأصل بتاريخ 25-10-2008.
- ↑ "ما رأيك في EC++؟" . الأسئلة الشائعة لبيارن ستروستروب .
- ↑ "ما هو نظام التشغيل ماك أو إس إكس؟" . أميت سينغ . مؤرشف من الأصل بتاريخ 19 أبريل 2019. تم الاطلاع عليه بتاريخ 4 مارس 2015 .
- ↑ "مكتبة libkern C++ Runtime" . إرشادات تصميم برامج تشغيل الأجهزة IOKit .
روابط خارجية
- الموقع الرسمي
- خلفية وأهداف تطوير مواصفات لغة C++ المضمنة
- لغة C++ المضمنة تُنتج كودًا أسرع وأصغر حجمًا ، جون كاربون (Embedded.com)، 19 يونيو 1998
- بناء أنظمة ARM بدون برمجيات باستخدام GNU: الجزء 1 - البدء ، ميرو ساميك، كوانتوم ليبس، 26 يونيو 2007
- تقرير فني حول أداء لغة C++ ، من إعداد المجموعة العاملة 21 التابعة للجنة الفرعية 22 في المنظمة الدولية للمعايير
- عائلة لغات البرمجة C++
- لغات البرمجة القائمة على الفئات
- لغات وصف الأجهزة
- الأنظمة المدمجة
