كاربون (لغة برمجة)

كاربون هي لغة برمجة تجريبية مصممة للتوافق مع لغة C++ . [ 2 ] المشروع مفتوح المصدر، وقد بدأ العمل عليه في جوجل . قدّم مهندس جوجل، تشاندلر كاروث، كاربون لأول مرة في مؤتمر CppNorth في تورنتو في يوليو 2022. وذكر أن كاربون صُممت لتكون خليفةً للغة C++. [ 3 ] [ 1 ] [ 4 ] من المتوقع أن يكون للغة إصدار تجريبي محدود قابل للتطبيق (MVP) بنسخة 0.1 في أواخر عام 2026 كأقرب تقدير، وإصدار جاهز للاستخدام في بيئات الإنتاج بنسخة 1.0 بعد عام 2028. [ 5 ]

تهدف هذه اللغة إلى معالجة العديد من أوجه القصور الملحوظة في لغة C++ [ 6 ] ، مع توفير مجموعة ميزات مشابهة. تتمثل الأهداف الرئيسية للغة في سهولة القراءة و"التوافق ثنائي الاتجاه" (الذي يسمح للمستخدم بتضمين كود C++ في ملف Carbon)، على عكس استخدام لغة جديدة مثل Rust ، التي، على الرغم من تأثرها بلغة C++، إلا أنها غير متوافقة ثنائياً مع برامج C++. سيتم اتخاذ قرارات التغييرات على اللغة من قبل قادة Carbon. [ 7 ] [ 8 ] [ 9 ] [ 10 ] وتهدف إلى البناء على بيئة C++ بنفس دور TypeScript في JavaScript ، أو Kotlin في Java . [ 2 ]

تُستضاف وثائق Carbon وتصميمها وتنفيذها وأدواتها ذات الصلة على GitHub بموجب ترخيص Apache 2.0 مع استثناءات LLVM . [ 11 ]

مثال

يوضح ما يلي كيفية كتابة برنامج باستخدام Carbon و C++: [ 12 ]

الكربونلغة سي++
حزمة الهندسة ؛استيراد الرياضيات ؛class Circle { var radius : f32 ; }fn PrintTotalArea ( circles : [ Circle ]) { var area : f32 = 0 ; for ( circ : Circle in circles ) { area + = Math.Pi * circ.radius * circ.radius ; } Print ( " المساحة الكلية : {0} " , area ) ; }fn Run () -> i32 { // مصفوفة ذات حجم ديناميكي، مثل `std::vector`. var circles : array [ Circle ] = ({. radius = 1.0 }, {. radius = 2.0 }); // تُنشئ ضمنيًا شريحة من المصفوفة. PrintTotalArea ( circles ); return 0 ; }
استيراد std ؛باستخدام std :: span ؛ باستخدام std :: vector ؛struct Circle { float radius ; };void printTotalArea ( span <Circle> circles ) { float area = 0.0f ; for ( const Circle & circ : circles ) { area += std :: numbers :: pi * circ.radius * circ.radius ; } std :: println ( " المساحة الإجمالية: { } " , area ) ; }int main ( int argc , char * argv []) { vector < Circle > circles {{. radius = 1.0f }, {. radius = 2.0f }}; // Implicitly converts `vector` to `span`.printTotalArea ( circles ); return 0 ; }

انظر أيضاً

مراجع

  1. 1 2 "لغة كاربون: خليفة تجريبية للغة سي++ - تشاندلر كاروث - مؤتمر سي بي بي نورث 2022" . سي بي بي نورث. 22 يوليو 2022 - عبر يوتيوب .
  2. 1 2 "Readme" . GitHub . تم الاطلاع عليه في 6 سبتمبر 2023. تم تصميمه مع مراعاة التوافق مع لغة C++ بالإضافة إلى اعتماده على نطاق واسع وترحيله لقواعد بيانات C++ الحالية والمطورين .
  3. "الفعاليات المقررة ليوم الثلاثاء 19 يوليو، من الساعة 9:00 إلى 10:30 صباحًا" . مؤتمر CppNorth الكندي للغة C++، 17-20 يوليو 2022. CppNorth . تم الاطلاع عليه بتاريخ 21 يوليو 2022 عبر موقع Sched.com.
  4. برادشو، كايل (19 يوليو 2022). "كاربون، لغة برمجة جديدة من جوجل، تهدف إلى أن تكون خليفة لغة سي++" . 9to5Google .
  5. لغة الكربون: خارطة الطريق ، carbon-language، 11 يناير 2024 ، تم الاطلاع عليه في 18 يناير 2024
  6. "صعوبات تحسين لغة C++" . مستودع carbon-language/carbon-lang . جوجل . 21 يوليو 2022 عبر GitHub .
  7. كاروث، تشاندلر؛ روس-بيركنز، جون؛ رايلي، ماثيو؛ هومرت، سيدني (23 يوليو 2022). "التطور والحوكمة" . مستودع carbon-language/carbon-lang . جوجل - عبر جيت هاب .
  8. إيليدج، مايلز (21 يوليو 2022). "لغة برمجة كاربون من جوجل تهدف إلى استبدال لغة سي++" . ماي برودباند .
  9. جاكسون، جواب (20 يوليو 2022). "جوجل تطلق كاربون، بديل تجريبي للغة سي++" . ذا نيو ستاك .
  10. مصطفى، أونسا (20 يوليو 2022). "كاربون، لغة برمجة جديدة من جوجل كخليفة للغة سي++" . فون وورلد .
  11. "carbon-lang/LICENSE" . GitHub . 16 يونيو 2020. تم الاطلاع عليه بتاريخ 24 يوليو 2022 .
  12. "carbon-lang/docs/images/snippets.md at trunk · carbon-language/carbon-lang" . GitHub . تم الاطلاع عليه بتاريخ 16 ديسمبر 2023 .