بسم الله الرحمن الرحيم

بعد ان ناقشنا في الدروس السابقة العديد من المواضيع المختلفة في اساسيات البرمجة 
حيث ناقشنا في الدروس السابقة :
الدرس الأول مفهوم البرمجة و فكرة عمل البرمجة والأهداف من تعلمها ونماذج البرمجة ويمكن الإطلاع عليه من هنا
الدرس الثاني احد نماذج البرمجة وهو البرمجة المنظمة ويمكن الإطلاع عليه من هنا 
الدرس الثالث انتقلنا الي نموذج البرمجة الإجرائية وناقشنا فيه المتغيرات والمصفوفات والقواميس ومتغيرات خالية القيمة وكيفية التعامل معها الإطلاع عليه من هنا 
الدرس الرابع تحدثنا فيه عن الشروط والحلقات التكرارية والتي تتبع لمبدا البرمجة الإجرائية للإطلاع عليه اضغط هنا 
الدرس الخامس تحدثنا فيه البرمجة المعتمدة علي الأحداث و ايضا نموذج البرمجة الكائنية او بمعني  oop ويمكن الإطلاع عليه من هنا


Lecture 6:
سنناقش في هذا الدرس موضوع قصير ويعد هذا الدرس اخر درس في سلسلة اساسيات البرمجة 
سنتحدث اليوم عن موضوع مهم كيف يقوم البرنامج من تحويل الكود الي لغة الآلة 
او بمعني كيف يقوم البرنامج بتنفيذ الكود الخاص بنا
في البداية هناك مفهوم اساسي يسمي compiler او المترجم الغرض من هذا المترجم هو عمل تحويل للكود من لغة يفهمها البشر للغة الآلة
سنختص في هذا الموضوع gnu compiler وكيف يقوم البرنامج بتحويل كود C الي برنامج
عند الضغط علي زر تنفيذ الكود تحدث عدة خطوات 
تبدا ب 
PRE-processor
Compiler
Assembler
Linker
حيث يعد compiler مجموعة من 4 modules مختلفة وتؤدي كل module وظيفة محددة 
في البداية يذهب كود C الي الخطوة الأولي وهي 
PRE-processor
الغرض من هذه الخطوة القيام بعدة مهام 
اولا يقوم بحذف اي تعليقات موجودة في الكود
يقوم بعمل text replace لكل الماكرو الموجود
الماكرو في الجانب هو بمثابة متغير لكن لايأخذ مكان ميموري 
ويقوم ايضا بعمل اضافة لملفات header داخل الكود الخاص بنا 

ثم يستلم compiler الكود بعد التعديل 
ويقوم بتحويل الكود الي لغة assembly 
ثم يقوم assembler بأخذ كود الأسمبلي وتحويله الي لغة الآلة 
ثم يذهب في الأخير الكود الي linker
حيث يقوم هذا الموديول بعمل دمج بين الكود الخاص بنا وبالمكتبات الخارجية وعمل export لناتج العمل في صيغة ملف exe
لتنفيذ البرنامج
وهكذا يعمل البرنامج لكي يقوم بتنفيذ الكود

وهذا اخر درس في هذه السلسلة المتكونة من 6 دروس اساسية لأساسات البرمجة 
ماذا بعد ذلك : اذهب لتعلم لغة برمجة 
هذه الدورة تعطيك الجانب النظري من البرمجة 
تعطيك نظرة عامة  للبرمجة ولكن هذا لايكفي
انت الأن مهيأ للذهاب الي اي لغة وتعلمها 
سنشرح مقدما لغة c بتعمق شديد 

تصميم : بلال حسان
تعليقات