HeadlinesBriefing HeadlinesBriefing.com

تقليل السلوك غير المحدد في لغة C

Hacker News •
×

نحن سيئون في التسويق — نعترف بذلك. قوتنا تكمن في كتابة نوع المقالات التي يعتمد عليها المطورون ومديرو الأنظمة وداعمو البرمجيات الحرة لمعرفة ما يحدث في عالم لينكس. يرجى الاشتراك اليوم لمساعدتنا على الاستمرار في ذلك، حتى لا نضطر إلى أن نصبح جيدين في التسويق.

بصفتي أستاذاً للهندسة الطبية الحيوية، ربما لا يناسب مارتين أوير صورة المتحدث النموذجي في Kernel Recipes. ومع ذلك، فهو مستخدم لينكس منذ فترة طويلة، ويعمل على برمجيات حرة للتحكم في أجهزة التصوير بالرنين المغناطيسي (MRI). كان في المؤتمر للحديث عن لغة البرمجة C، والمشكلة المحددة للسلوك غير المحدد في C، وما إذا كان يمكن في النهاية جعلها لغة آمنة من حيث الذاكرة.

لماذا العناء بـ C في عام 2026؟ قال إنها لا تزال لغة رائعة. C قابلة للنقل، ومستقرة على المدى الطويل، وتوفر compiling سريعاً، والكود الثنائي الناتج سريع. "ما تراه هو ما تحصل عليه"؛ من السهل النظر إلى كود C والتوصل إلى فكرة عما سيفعله الكمبيوتر فعلياً. هناك الكثير من الأدوات للعمل مع اللغة، وC يتراجع عند الحاجة.

تمتلك C تاريخاً طويلاً، وهذا يؤثر على اللغة كما نراها اليوم، قال. كان معيار C89 يجب أن يتعامل مع مجموعة واسعة من الأجهزة، بما في ذلك آلات بتمثيلات أعداد صحيحة بإشارة-قيمة مطلقة أو بتكملة واحد، وذاكرة مجزأة، وتمثيلات غريبة للمؤشرات، وأحجام مفاجئة للأنواع. بعض آلات Honeywell، على سبيل المثال، كانت تحتوي على بايتات من تسعة بتات. هذا ما أعقد بشكل كبير مهمة كتابة معيار يمكنه تمكين كتابة كود قابل للنقل. النهج الذي تم اتخاذه كان تعريف دلالات اللغة من حيث آلة مجردة. يجب تنفيذ جميع العمليات كما لو كانت قد عملت على تلك الآلة المجردة، والتي قد لا تطابق العتاد الفعلي تماماً. يجب أن يكون السلوك الملحوظ للبرنامج هو ما كانت ستفعله الآلة المجردة.

المصدر: Hacker News · لخّصه HeadlinesBriefing