ملخص
يثبّت هذا الدرس طريقة العمل التي ستتبعها الدورة حتى نهايتها. فهو يصف دورة العمل المؤلفة من التحرير والحفظ والترجمة والتنفيذ والقراءة، ويشرح لماذا يحسن أن يُكتشف الخطأ في أبكر مرحلة ممكنة؛ ويقدّم أمر الترجمة الذي توصي به الدورة وما يفعله كل خيار من خياراته؛ ويبيّن كيف تُنفَّذ دورة العمل من الطرفية وكيف يُضبط Visual Studio Code ليترجم بالخيارات نفسها؛ ويعلّم التمييز في مخرجات المترجم بين الخطأ والتحذير وتحديد السطر الذي يشيران إليه؛ ويقدّم الكواشف، التي توقف البرنامج حين يقع في بعض أنواع السلوك غير المعرَّف وتشير إلى السطر؛ ويترك وحدة التحكم مهيّأة لعرض الحروف العربية عرضًا صحيحًا.
أهداف التعلم
- ترجمة برنامج من الطرفية بخيارات الدورة (
-std=c++23 -Wall -Wextraوسائرها)، وتسمية الملف التنفيذي بالخيار-oوتنفيذه. - ضبط Visual Studio Code ليترجم بالخيارات نفسها التي تُستعمل في الطرفية ويعرض التحذيرات في لوحة المشكلات الخاصة به.
- التمييز في مخرجات المترجم بين الخطأ والتحذير، وتسمية الخيار الذي أنتج كل تحذير، وتحديد السطر الذي يشير إليه.
- تفعيل كاشفي أخطاء الذاكرة والسلوك غير المعرَّف، والتعرّف في تقريرهما على نوع الإخفاق والسطر الذي وقع فيه.
- تشخيص سبب ظهور رموز غريبة في المخرجات بدلًا من الحروف العربية، وضبط المحرر ووحدة التحكم لتظهر الحروف ظهورًا صحيحًا.
دورة العمل
ليست كتابة البرنامج فعلًا واحدًا، بل دورة تتكرر عشرات المرات في الجلسة الواحدة. ولها خمس لحظات: يُحرَّر الكود المصدري؛ ثم يُحفَظ الملف، لأن المترجم يقرأ القرص لا شاشة المحرر؛ ثم يُترجَم، أي يُطلب من المترجم أن يحوّل الملف إلى ملف تنفيذي؛ ثم يُنفَّذ الناتج؛ ثم يُقرأ بانتباه كل ما كتبه المترجم والبرنامج. وما قُرئ يقود إلى تحرير جديد، فتبدأ دورة العمل من جديد.
واللحظة الأخيرة هي الأكثر إهمالًا والأكثر أهمية. والمقدمة بسيطة: كلما تأخر اكتشاف العيب ارتفعت كلفة تصحيحه. فإن أشار إليه المترجم، عُرف السطر وعُرف السبب في أغلب الأحيان؛ وإن ظهر عند التنفيذ، عُرف فقط أن شيئًا ما قد أخفق؛ وإن ظهر بعد أسابيع، مع بيانات أخرى، فقد لا يعرف أحد السبب أبدًا. ويترتب على ذلك أنه يحسن اكتشاف العيوب في أقرب وقت ممكن، وأن المترجم ينبغي أن يُعامَل بوصفه المراجع الأول للبرنامج: قارئًا لا يكلّ، ينبّه، إذا أُحسن ضبطه، إلى ما هو أكثر بكثير من أخطاء الكتابة.
ويضبط هذا الدرس ذلك المراجع على ثلاثة مستويات: الأخطاء، التي تمنع الحصول على الملف التنفيذي؛ وتحذيرات المترجم، التي تسمح به لكنها تشير إلى كود مريب؛ والكواشف (sanitizers)، التي تراقب البرنامج أثناء تنفيذه. ويفترض الدرس أن المترجم والمحرر مثبّتان (الدرس 1.3). وتستعمل الأمثلة متغيرات وتعليمات if، سيأتي شرحها في الدرسين 2.1 و4.1؛ ويكفي هنا أن تُقرأ.
جارٍ تحميل المحتوى…