مراحل ترجمة وتنفيذ البرنامج - كتاب هندسة البرمجيات - الصف 12 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: مراحل ترجمة وتنفيذ البرنامج

📚 معلومات الصفحة

الكتاب: كتاب هندسة البرمجيات - الصف 12 - الفصل 1 | المادة: هندسة البرمجيات | المرحلة: الصف 12 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

مستوى الصعوبة: متوسط

📝 ملخص الصفحة

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

يتم عرض شكل 1.11 الذي يوضح مراحل ترجمة وربط البرنامج، حيث يتحول البرنامج المصدري (مثل `if a

كما يوضح شكل 1.12 عملية تجميع وتنفيذ برنامج باستخدام المفسر، مثل برنامج بايثون مع أوامر مثل `x = 10` و `print(y)`. يقوم المفسر بتحليل كل أمر للتحقق من الأخطاء ثم إرساله للتنفيذ بشكل تسلسلي، مما يظهر الفرق بين الترجمة والتفسير في معالجة البرامج.

📄 النص الكامل للصفحة

تقوم المترجمات والمفسرات الفورية بالمهمة ذاتها، وهي تحويل البرنامج المكتوب بلغة البرمجة عالية المستوى إلى لغة الآلة، ولكن تعمل كل منهما بطريقة مختلفة. وزارة التعليم 35 Ministry of Education 2025 - 1447 --- VISUAL CONTEXT --- **DIAGRAM**: شكل 1.11: مراحل ترجمة وربط البرنامج Description: A flowchart illustrating the stages of program translation and linking. It shows the transformation from a source program to an executable program via a compiler and a linker, incorporating library files. The process starts with the 'Source Program' (البرنامج المصدري) which contains high-level code and library references. This is fed into the 'Compiler' (المترجم), which outputs an 'Object Program' (برنامج الكائن) containing machine code and library references. The 'Linker' (الرابط) then combines the object program with 'Library Files' (ملفات المكتبة) to produce the final 'Executable Program' (برنامج قابل للتنفيذ). Arrows indicate the flow between these components. Key Values: البرنامج المصدري, if a<b, Lib ref, do while, z=x-y, Lib ref, المترجم, برنامج الكائن, 11011001, Lib ref, 00010111, 10101011, Lib ref, الرابط, برنامج قابل للتنفيذ, 11011001, 01000100, 00010111, 10101011, 11111100, ملفات المكتبة, 11011001, 01000100, 00010111, 10101011, 11111100 Context: This diagram explains the role of compilers and linkers in converting human-readable source code into machine-executable code, including the integration of external library functions, as part of the software development process. **DIAGRAM**: شكل 1.12: عملية تجميع وتنفيذ برنامج باستخدام المفسر Description: A flowchart illustrating the execution of a Python program using an interpreter. The 'Python Source Program' (برنامج البايثون المصدري) is shown with sequential commands: 'x = 10', 'y = x + 2', and 'print(y)'. Each command is sent to the 'Interpreter' (المفسر), which performs 'Analysis - Check for errors' (التحليل - التحقق من وجود أخطاء) and then 'Sends the command for execution' (إرسال الأمر للتنفيذ) sequentially for the first, second, and nth commands. Arrows indicate the flow of commands from the source program to the interpreter and its internal processing steps. Key Values: برنامج البايثون المصدري, x = 10, y = x + 2, print(y), المفسر, التحليل - التحقق من وجود أخطاء, إرسال الأمر الأول للتنفيذ, إرسال الأمر الثاني للتنفيذ, إرسال الأمر n للتنفيذ Context: This diagram demonstrates how an interpreter executes a program line by line, performing real-time analysis and execution, contrasting with the compilation and linking process shown in Figure 1.11.

✅ حلول أسئلة الكتاب الرسمية

عدد الأسئلة: 2

سؤال مربع-1: ملاحظة على مربع "برنامج قابل للتنفيذ" في شكل 1.11: مراحل ترجمة وربط البرنامج.

الإجابة: اختياري

خطوات الحل:

  1. **الشرح:** لنفهم هذا السؤال، يجب أن ننظر إلى الشكل 1.11 الذي يوضح مراحل ترجمة وربط البرنامج. المربع المسمى "برنامج قابل للتنفيذ" يمثل المرحلة النهائية أو الناتج من هذه العملية. الفكرة هنا هي أن البرنامج الذي نكتبه بلغة عالية المستوى (مثل C++ أو Python) لا يستطيع الحاسوب فهمه مباشرة. لذلك، يمر بمراحل متعددة تشمل الترجمة (Compilation) والربط (Linking) لتحويله إلى شكل يفهمه المعالج، وهو ما نسميه البرنامج القابل للتنفيذ (Executable Program). إذن، ملاحظتنا على هذا المربع هي أنه يمثل **الملف النهائي الجاهز للتشغيل** على الحاسوب، بعد اكتمال جميع عمليات التحويل والربط للمكتبات والوظائف الضرورية.

سؤال مربع-2: ملاحظة على قسم "المفسر" في شكل 1.12: عملية تجميع وتنفيذ برنامج باستخدام المفسر.

الإجابة: اختياري

خطوات الحل:

  1. **الشرح:** لننظر إلى الشكل 1.12 الذي يشرح عملية تجميع وتنفيذ برنامج باستخدام المفسر. القسم المسمى "المفسر" (Interpreter) يلعب دوراً محورياً في هذه العملية. الفكرة هنا هي أن المفسر يختلف عن المترجم (Compiler). بدلاً من ترجمة البرنامج كله مرة واحدة إلى لغة الآلة وإنشاء ملف قابل للتنفيذ، يعمل المفسر سطراً سطراً. يقرأ سطر الكود المصدري، يترجمه فوراً إلى أوامر يفهمها الحاسوب، ثم ينفذه مباشرة، ثم ينتقل إلى السطر التالي. إذن، ملاحظتنا على هذا القسم هي أنه يوضح **آلية التنفيذ المباشر سطراً بسطر** دون الحاجة إلى إنشاء ملف تنفيذي منفصل مسبقاً، مما يجعل عملية التصحيح أسرع ولكنه قد يكون أبطأ في التنفيذ مقارنة بالبرامج المترجمة.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 4 بطاقة لهذه الصفحة

ما هي المهمة الأساسية المشتركة بين المترجمات والمفسرات الفورية؟

الإجابة: تحويل البرنامج المكتوب بلغة البرمجة عالية المستوى إلى لغة الآلة.

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

تلميح: فكر في الوظيفة النهائية التي تؤديها كلتا الأداتين في عملية تطوير البرمجيات.

التصنيف: مفهوم جوهري | المستوى: سهل

ما الفرق الأساسي بين طريقة عمل المترجم (Compiler) والمفسر (Interpreter)؟

الإجابة: يعمل المترجم على تحويل البرنامج المصدري كاملاً إلى برنامج كائن (لغة الآلة) مرة واحدة قبل التنفيذ، بينما يعمل المفسر على تحليل وتنفيذ أوامر البرنامج المصدري سطراً سطراً أثناء التشغيل.

الشرح: يظهر هذا الاختلاف بوضوح في الشكلين 1.11 و1.12، حيث يوضح الأول عملية تحويل كاملة قبل التنفيذ، والثاني عملية تحليل وتنفيذ سطراً بسطر.

تلميح: ركز على توقيت التحويل إلى لغة الآلة وطريقة معالجة الأوامر.

التصنيف: فرق بين مفهومين | المستوى: متوسط

ما هو دور الرابط (Linker) في عملية تطوير البرمجيات؟

الإجابة: دور الرابط هو دمج برنامج الكائن (الذي أنتجه المترجم) مع ملفات المكتبة (Library Files) اللازمة لإنشاء البرنامج القابل للتنفيذ النهائي.

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

تلميح: فكر في المرحلة التي تلي تحويل الكود إلى لغة الآلة مباشرة.

التصنيف: مفهوم جوهري | المستوى: متوسط

ما هو المكون الذي يحتوي على كود لغة الآلة (مثل 11011001) بعد عملية الترجمة مباشرة وقبل عملية الربط؟

الإجابة: برنامج الكائن (Object Program).

الشرح: برنامج الكائن هو تمثيل وسيط للبرنامج بلغة الآلة، ولكنه غير مكتمل التشغيل لأنه لا يزال يحتاج إلى ربط مع مكتبات النظام.

تلميح: هذا المكون هو الناتج المباشر من عمل المترجم قبل أن يدمج مع المكتبات.

التصنيف: تعريف | المستوى: سهل