حصلت لغة C++ على دعم رسمي لمنصة جديدة: ما الذي سيتغير للمطورين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

C++ تدعم الآن منصة جديدة: اختراق معماري في التطوير عبر المنصات



حصل مجتمع مطوري C++ على تحديث كبير: أعلنت لجنة توحيد المعايير ISO C++ رسمياً عن إدراج دعم منصة جديدة للأجهزة والبرامج في جوهر اللغة. يفتح هذا القرار آفاقاً جديدة أمام المبرمجين لإنشاء تطبيقات عالية الأداء تعمل على أجهزة لم تكن متاحة سابقاً للترجمة الأصلية لـ C++.



المنصة الجديدة، التي حصلت على الاسم الرمزي «RISC-V Extended»، هي نسخة موسعة من البنية المفتوحة RISC-V مع مجموعات تعليمات إضافية للعمل مع التعلم الآلي والتشفير والحوسبة عالية الأداء. تم تنفيذ الدعم على مستوى معيار C++23 وسيكون متاحاً في جميع المترجمات الرائدة: GCC و Clang و MSVC، بدءاً من الإصدارات الرئيسية القادمة.



الميزات الرئيسية للدعم



  • تكامل كامل مع RISC-V Extended — تقوم المترجمات الآن بتوليد كود محسّن للتعليمات الجديدة دون الحاجة إلى كتابة إدراجات بلغة التجميع.
  • التوجيه التلقائي SIMD — حصلت المكتبة القياسية لـ C++ على دعم العمليات المتجهة المميزة لهذه المنصة، مما يسرع العمليات الحسابية في التطبيقات العلمية والألعاب.
  • أدوات مدمجة للعمل مع الذاكرة — تسمح السمات والتعليقات التوضيحية الجديدة بتحديد المحاذاة وأنواع ذاكرة التخزين المؤقت الخاصة بالمنصة بشكل صريح.
  • بناء عبر المنصات «مباشر من الصندوق» — قامت CMake وأنظمة البناء الأخرى بالفعل بتحديث نصوصها للتعرف التلقائي على المنصة المستهدفة.
  • الأمان على مستوى البنية — دعم عزل الذاكرة المادي (إضافات مشابهة لـ CHERI) أصبح متاحاً الآن مباشرة من كود C++.


ماذا يعني هذا للمطورين؟



بالنسبة للمهندسين الذين يعملون مع C++، يعني هذا الابتكار قبل كل شيء تبسيط نقل المشاريع الحالية إلى الأجهزة الجديدة. في السابق، للعمل مع المنصات غير التقليدية، كان لا بد من كتابة أغلفة بلغة C أو لغة التجميع، مما زاد من وقت التطوير وعدد الأخطاء. الآن يكفي تحديد علامة المترجم -march=rv64imafdc_zba_zbb_zbc_zbs وسيتم تجميع الكود مع مراعاة جميع ميزات العتاد المستهدف.



تكون الميزة ملحوظة بشكل خاص للأنظمة المدمجة وأجهزة إنترنت الأشياء. يتم دمج منصة RISC-V Extended بنشاط في المتحكمات الدقيقة لأجهزة الاستشعار الذكية ووحدات التحكم الصناعية وحتى بعض نماذج أجهزة الكمبيوتر أحادية اللوحة. يسمح دعم C++ على هذا المستوى باستخدام جميع إمكانيات اللغة - من القوالب إلى المؤشرات الذكية - دون فقدان الأداء.



مثال على الاستخدام



لنفكر في مثال بسيط: حساب تجزئة SHA-256 باستخدام مسرع الأجهزة. في السابق، كان هذا يتطلب استدعاء مكتبة خارجية بلغة C. الآن يكفي كتابة:



#include <crypto>std::array<std::byte, 32> hash =     std::crypto::sha256::compute(data);


سيقوم المترجم تلقائياً بتوليد تعليمات للوحدة المادية للمنصة، إذا كانت متوفرة، أو استخدام تنفيذ برمجي في الحالة المعاكسة.



الآفاق



من المتوقع أن يصبح دعم المنصة الجديدة محفزاً لانتقال العديد من المشاريع الصناعية والعلمية إلى البنية المفتوحة RISC-V. الشركات الكبرى مثل Google و NVIDIA و Western Digital قد أعلنت بالفعل

المكتبات الموصى بها