الانتقال إلى المحتوى

برمجيات النظام

A-Level علوم الحاسوب · الموضوع 5

درس فيديو لهذا الموضوع افتح صفحة الفيديو
21:02

أنظمة التشغيل

لم تره قط، ولن تراه أبداً — ومع ذلك فهو موجود دائماً. خلف كل تطبيق تفتحه، وكل ملف تحفظه، وكل نقرة على الشاشة، يوجد شيء غير مرئي…

سرد باللغة الإنجليزية · ترجمة مدمجة بالإنجليزية + الصينية

5.1

أنظمة التشغيل

المنهج
يجب أن يكون المرشحون قادرين على: ملاحظات وإرشادات
شرح سبب حاجة نظام الحاسوب إلى نظام تشغيل (OS)
شرح المهام الإدارية الرئيسية التي يقوم بها نظام التشغيل بما في ذلك إدارة الذاكرة، إدارة الملفات، إدارة الأمن، إدارة الأجهزة (الإدخال/الإخراج/الأجهزة الطرفية)، إدارة العمليات
إظهار فهم الحاجة إلى برمجيات الأداة المساعدة النموذجية المقدمة مع نظام التشغيل بما في ذلك مشكّل الأقراص، فحص الفيروسات، برمجيات إزالة الت_fragmentation، تحليل محتوى القرص / برمجيات إصلاح القرص، ضغط الملفات، برمجيات النسخ الاحتياطي
إظهار فهم مكتبات البرامج بما في ذلك: • البرمجيات قيد التطوير تُبنى غالباً باستخدام أكواد موجودة من مكتبات البرامج • فوائد مطوّر البرمجيات عند بناء برمجيات باستخدام ملفات المكتبة، بما في ذلك المكتبة الديناميكية المرتبطة (DLL)

المصدر: منهج كامبريدج الدولي

لماذا يحتاج الحاسوب إلى نظام تشغيل

العتاد وحده يمكنه فقط جلب وتنفيذ التعليمات — لا يعلم شيئاً عن الملفات أو البرامج أو الشبكات أو المستخدمين. نظام التشغيل (OS) هو طبقة البرمجيات التي:

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

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

"وصف الغرض من نظام التشغيل" — قائمة خمس درجات. يوفر نظام التشغيل (1) واجهة بين المستخدم والعتاد؛ (2) يختبئ التعقيد العتادي عن المستخدم وبرامج التطبيق؛ (3) يدير موارد العتاد — وقت المعالج، الذاكرة، التخزين، وأجهزة الإدخال/الإخراج — ويشاركها بين البرامج؛ (4) يحمل برامج التطبيق في الذاكرة ويشغلها، مما يمنح كل برنامج نفس المنصة للعمل عليها؛ (5) يسمح لعدة برامج بالعمل في آن واحد (متعدد المهام) مع الحفاظ على سلامتها وبيانات المستخدمين. قدم خمس نقاط مختلفة؛ "إنه يشغل الكمبيوتر" أو "يدير الموارد" وحدها لا تُعطي أي درجة.

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

المهام الإدارية الرئيسية

يحدد المنهج خمسة. كل نقطة أدناه هي شيء يقوم به نظام التشغيل فعلياً، وهو ما تطلبه أسئلة "الوصف".

  • إدارة الذاكرة — تخصص الذاكرة لكل برنامج عند تحميلها، وتبقي ذاكرة كل برنامج منفصلة (حماية الذاكرة) حتى لا يتمكن أحد من الكتابة فوق الآخر، وتحرر الذاكرة عند انتهاء البرنامج، وتقوم بتبديل الصفحات بين الذاكرة العشوائية (RAM) والتخزين الثانوي (القرص) (الذاكرة الافتراضية / تبديل الصفحات) لتتمكن من فتح أكثر من برنامج مما تسمح به الذاكرة الفعلية.
  • إدارة العمليات — البرنامج النشط هو عملية. ينشئ نظام التشغيل العمليات وينهيها، ويقرر أي عملية تحصل على المعالج التالي (جدولة) ولمدة كم (شريحة زمنية)، ويتبديل بينها، ويحل النزاعات عندما يرغب اثنان في نفس المورد، ويمكنه إنهاء واحدة تتوقف عن الاستجابة.
  • إدارة الأجهزة (الإدخال/الإخراج والأجهزة الطرفية) — يتواصل مع كل جهاز عبر تعريف الجهاز، ويضع بيانات الأجهزة البطيئة مثل الطابعة في طابور ومخزن مؤقت، ويستجيب لـ المقاطعات من الأجهزة، ويشارك جهازاً واحداً بين عدة برامج.
  • إدارة الملفات — ينشئ ويطلق أسماء وينسخ وينقل ويمسح الملفات والمجلدات، ويحافظ على بنية المجلد وسجلاً لمكان تخزين كل ملف على القرص، ويخصص مساحة قرص للملفات، ويفرض صلاحيات الوصول (قراءة / كتابة / تنفيذ) لكل مستخدم.
  • إدارة الأمن — حسابات المستخدمين وكلمات المرور (المصادقة)، وصلاحيات الوصول، وتشفير البيانات المخزنة، وجدار الحماية، وتحديثات أمنية تلقائية، وسجل لمن فعل ماذا.
رسم توضيحي لمركز الشبكة (Hub) مع نظام التشغيل في المركز مرتبطاً بأذرع بالذاكرة، وإدارة العمليات، والملفات، والأجهزة، والأمان، وواجهة المستخدم
المهام الرئيسية التي يديرها نظام التشغيل
خريطة ذاكرة تحتوي نظام التشغيل وتطبيقات ثلاثة، كل واحد في كتلته الخاصة، مفصولة بعناوين حدود؛ يُسمح بالوصول داخل الكتلة لكن يتم حظر الوصول الذي يتجاوز الحدود
حماية الذاكرة تحفظ كل تطبيق في كتلة ذاكرة خاصة به

كيف تدعم إدارة الذاكرة والعمليات تعدد المهام (مفضلة لأربع درجات).

المقاطعات. تأتي مقاطعة الأجهزة من جهاز: زر مضغوط، نقرة فأرة، نفاد ورق الطابعة، اكتمال نقل القرص، انقطاع الكهرباء. تأتي المقاطعة البرمجية من برنامج: القسمة على صفر، تعليمات غير صالحة، محاولة استخدام ذاكرة لا يملكها، أو طلب خدمة من نظام التشغيل. معالج المقاطعات في نظام التشغيل يحفظ حالة العملية النشطة، ويعالج المقاطعة، ثم يستعيد العملية (تغطي الموضوع 4 تفاصيل جلب-تنفيذ).

البرمجيات المساعدة

البرامج المساعدة هي برمجيات نظام تقوم بالصيانة والإصلاح أو تحسين أداء الكمبيوتر بدلاً من إنجاز مهمة المستخدم؛ يقبل المصحح "إنجاز مهمة صيانة محددة تحسن الأداء أو الأمن". تجمع معظم أنظمة التشغيل هذه:

برامج مساعدة شائعة: مكافحة الفيروسات، النسخ الاحتياطي، ضغط الملفات ومفرق_fragmenter الأقراص
البرامج المساعدة: مكافحة الفيروسات، النسخ الاحتياطي، الضغط، وتعديل الأقراص
  • مُعدّل الأقراص — يُجهّز قرصاً جديداً (أو يُمسح قديماً) للاستخدام: يجهّز نظام الملفات والأقسام، ويحذف أي بيانات موجودة مسبقاً.
  • فاحص الفيروسات (مكافحة الفيروسات) — يفحص الملفات والذاكرة، ويقارن الأكواد بقاعدة بيانات لـ علامات الفيروسات المعروفة ويراقب السلوك المشبوه، ثم يعزل أو يحذف ما يجده؛ يعمل وفق جدول وفي كل تنزيل، ويحتاج لتحديث مع ظهور فيروسات جديدة.
  • برمجيات إزالة التfragmentation (مزيل fragmentation الأقراص) — تخزن القرص الصلب الملف في أي كتل حرة يجدها، وبعد العديد من عمليات الحفظ والحذف يتشتت الملف (fragmented) عبر الأطباق ويجب على رأس القراءة/الكتابة القفز بين الأجزاء. يقوم مزيل fragmentation بنقل أجزاء كل ملف بجوار بعضها وتجميع المساحة الحرة في منطقة واحدة، sehingga التحميل يكون أسرع ولا تتجزأ الملفات الجديدة. غير مطلوب على SSD، حيث لا يوجد رأس متحرك.
  • تحليل محتوى القرص / برمجيات إصلاح الأقراص — تُظهر ما يستهلك مساحة القرص (ملفات كبيرة أو مكررة أو مؤقتة) لإزالتها؛ تكتشف وتصلح القطاعات التالفة والعقد المفقودة وأخطاء نظام الملفات.
  • ضغط الملفات (compression) — يصغر الملفات لتقليل مساحة التخزين speeding up transfer; archiving bundles many files into one.
  • برمجيات النسخ الاحتياطي (backup) — تنسخ الملفات إلى وسيط آخر (قرص خارجي، شبكة، سحاب) وفق جدول زمني لاستعادة البيانات بعد الفقدان أو التلف أو هجمات الفدية؛ يتبع النسخ الكامل نسخ احتياطي_incremental للبيانات المتغيرة فقط.
  • جدار الحماية (فلتر حركة مرور الشبكة حسب القواعد) وأدوات التشفير للأمان؛ ومراقب النظام والتحديثات التلقائية.

دمج هذه الأدوات مع نظام التشغيل يوفر على المستخدم تثبيت كل منها على حدة.

أي أداة تقوم بأي مهمة. الأداء: إزالة fragmentation (وصول أسرع للملفات)، إصلاح الأقراص (القرص الذي به أخطاء بطيء أو يفشل)، تحليل محتوى القرص (تحرير مساحة بحذف الفوضى)، compression (مساحة أكبر على القرص). الأمان: فحص الفيروسات، جدار الحماية، التشفير، والنسخ الاحتياطي (الاسترداد الوحيد من هجمات الفدية). سؤال "ارسم خطاً واحداً" يربط كل أداة بغرض واحد بالضبط — احفظ الأزواج أعلاه واستخدم أسماء المنهج الدراسي.

مثال محلول. اشرح كيف يمكن لإزالة fragmentation تحسين أداء الكمبيوتر (3 علامات).

مع مرور الوقت يُخزن الملف في كتل مشتتة عبر القرص الصلب، لذا يتطلب قراءته تحركات كثيرة لرأس القراءة/الكتابة. يعيد مزيل fragmentation ترتيب الكتل ليتم تخزين كل ملف بشكل متصل وتكون المساحة الحرة مجتمعة. تُقرأ الملفات بعدها بتحركات رأس أقل، فتتحمل أسرع، ويمكن كتابة ملفات جديدة في مساحة متصلة واحدة.

استكشف

حيث يقع نظام التشغيل

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

مفردات تدريب
English العربية
operating system/ˈɒpəreɪtɪŋ ˈsɪstəm/ نظام تشغيل
processor/ˈprəʊsesə/ المعالج
multitasking/ˈmʌltitæskɪŋ/ متعدد المهام
memory management/ˈmeməri ˈmænɪdʒmənt/ إدارة الذاكرة
memory protection/ˈmeməri prəˈtekʃn/ حماية الذاكرة
RAM/ræm/ ذاكرة RAM
secondary storage/ˈsekəndəri ˈstɔːrɪdʒ/ التخزين الثانوي
virtual memory/ˈvɜːtʃuːəl ˈmeməri/ الذاكرة الافتراضية
paging/ˈpeɪdʒɪŋ/ تجزئة
process management/ˈprəʊses ˈmænɪdʒmənt/ إدارة العمليات
process/ˈprəʊses/ عملية
scheduling/ˈʃedjuːlɪŋ/ التخطيط
time slice/taɪm slaɪs/ شريحة زمنية
device driver/dɪˈvaɪs ˈdraɪvə/ تعريف الجهاز
interrupts/ˈɪntərʌpts/ المقاطعات
directory/daɪˈrektəri/ مجلد
access rights/ˈækses raɪts/ حقوق الوصول
authentication/ɔːˌθentɪˈkeɪʃn/ المصادقة
firewall/ˈfaɪəwɔːl/ جدار حماية
hardware interrupt/ˈhɑːdweə ˈɪntərʌpt/ انقطاع عتادي
software interrupt/ˈsɒftweə ˈɪntərʌpt/ انقطاع برمجي
interrupt handler/ˈɪntərʌpt ˈhændlə/ معالج الانقطاعات
utility program/juːˈtɪlɪti ˈprəʊɡræm/ برنامج مفيد
antivirus/ˌæntɪˈvaɪrəs/ مضاد فيروسات
backup/ˈbækʌp/ النسخ الاحتياطي
compression/kəmˈpreʃn/ ضغط
disk defragmenter/dɪsk ˌdiːˈfræɡmentə/ مبرمج القرص
signatures/ˈsɪɡnɪtʃəz/ التواقيع
fragmented/fræɡˈmentɪd/ متقطعة
incremental backups/ˌɪŋkrɪˈmentl ˈbækʌps/ نسخ احتياطية تدريجية
program library/ˈprəʊɡræm ˈlaɪbrəri/ مكتبة البرامج
5.1

مكتبات البرامج

مكتبة البرنامج هي كود مُكتب مسبقاً (subroutines، classes، modules) يعيد استخدامه البرامج بدلاً من كتابته بنفسه — مثل مكتبة رياضيات، مكتبة شبكات، مكتبة رسومات.

برنامج جديد قيد التطوير يعيد استخدام روتين جاهز من مكتبة رياضيات، مكتبة رسومات ومكتبة شبكات
برنامج جديد يعيد استخدام روتين جاهز من المكتبات

الفوائد: وفر وقت (كود جاهز)، موثوق (اختبار جيد، استخدام واسع)، ومعياري (سلوك متناسق).

قائمة فائدة المصحح، للمطور. روتينات المكتبة مكتوبة ومختبرة بالفعل، hence التطوير أسرع وأرخص؛ وهي موثوقة وبما أنها مستخدمة بعديد البرامج فهي خالية من الأخطاء إلى حد كبير؛ لا يحتاج المطور لخبرة في ذلك المجال (رسومات، compression، encryption، path-finding)؛ البرنامج أسهل في الصيانة لأن الكود المشترك موجود في مكان واحد؛ ويمكن لفريق كامل استخدام نفس الروتينات مما يعطي نتائج متناسقة. العيوب: قد لا يقوم الروتين تماماً بما تحتاجه ولا يمكنك تغييره؛ يعتمد برنامجك على توفر المكتبة وصحتها وأمنها — عيب أو ثغرة أمنية في المكتبة تعني عيباً في برنامجك؛ وعليك أن تتعلم كيفية استدعائها.

  • المكتبة الساكنة يتم نسخها داخل الملف التنفيذي عند编译 (تعمل بمفردها، لكنها أكبر وتحتاج إعادة بناء لتحديثها).
  • المكتبة الديناميكية (DLL، Dynamic Link Library; .so) يتم تحميلها وقت التشغيل (ملفات تنفيذية أصغر، مشتركة بين عدة برامج، تُحدّث مرة واحدة للجميع).
مكتبة ساكنة يتم نسخها داخل الملف التنفيذي عند编译 مما يجعل البرنامج المستقل أكبر؛ ملف مكتبة ديناميكية (.dll or .so) يبقى منفصلاً، يتم تحميله وقت التشغيل، ويُشاركه عدة برامج
ساكنة: يتم نسخ المكتبة داخل الملف التنفيذي. ديناميكية: يتم تحميل ملف مكتبة مشترك وقت التشغيل

ملفات Dynamic Link Library (DLL). الـ DLL هي مكتبة تُحمّل في الذاكرة فقط عندما يستدعيها برنامج، عند وقت التشغيل، وتبقى كملف منفصل بدلاً من نسخها داخل الملف التنفيذي. الفوائد: الملف التنفيذي أصغر؛ عدة برامج تعمل تشترك نسخة واحدة من DLL في الذاكرة؛ يمكن تحديث DLL (إصلاح خطأ، جهاز جديد) بدون recompiling البرامج التي تستخدمها؛ والذاكرة تُستخدم فقط بينما الروتين مطلوب. العيوب: لن يعمل البرنامج إذا كانت DLL مفقودة أو منقولة أو النسخة خاطئة؛ يمكن لـ DLL محدثة أن تكسر برنامجاً اعتمد على السلوك القديم؛ وـ DLL مزيفة يتم وضعها في محلها تعمل بصلاحيات البرنامج.

مثال محلول. فريق يكتب برمجيات روبوت مطعم يستخدم مكتبة برمجيات تتضمن روتيناً لإيجاد أقصر طريق بين الطاولات. اشرح فائدين وعيباً واحداً للفريق.

الفوائد: الروتين مكتوب ومختبر بالفعل، hence الفريق يوفر وقتاً ويستطيع الوثوق بالنتيجة؛ لا يحتاج الفريق لفهم خوارزميات path-finding نفسه ويمكنه قضاء الوقت على ميزات الروبوت الخاصة. العيب: قد لا يتعامل الروتين مع احتياجات المطعم بدقة (تحريك الكراسي، ممرات أحادية الاتجاه) ولا يمكن للفريق تغييره، hence قد يضطرون للتغلب على حدوده.

استكشف

مختبر مفاهيم الحوسبة.

صنّف الأمثلة المحددة حسب الفكرة الحاسوبية التي تمثلها.

مفردات تدريب
English العربية
subroutines/ˈsʌbruːtiːnz/ إجراءات جزئية
library routines/ˈlaɪbrəri ruːˈtiːnz/ إجراءات المكتبة
static library/ˈstætɪk ˈlaɪbrəri/ مكتبة ثابتة
executable/ɪɡˈzekjʊtəbl/ قابل للتنفيذ
dynamic library/daɪˈnæmɪk ˈlaɪbrəri/ مكتبة ديناميكية
translator/trænˈsleɪtə/ مُترجم
machine code/məˈʃiːn kəʊd/ كود الآلة
5.2

مترجم اللغات

المنهج
يجب أن يكون المرشحون قادرين على: ملاحظات وإرشادات
إظهار فهم الحاجة إلى: • برمجيات المُجمِّع لترجمة برنامج بلغة التجميع • المُترجم لترجمة برنامج بلغة عالية المستوى • المفسِّر للترجمة والتنفيذ لبرنامج بلغة عالية المستوى
شرح مزايا وعيوب استخدام المُترجم أو المفسِّر والتبرير لاستخدام كل منهما
إظهار إدراك أن برامج لغات عالية المستوى قد تكون مُترجمة جزئياً ومُفسَّرة جزئياً، مثل Java (وضع الكونسول)
وصف الميزات الموجودة في بيئة تطوير متكاملة نموذجية (IDE) بما في ذلك: للبرمجة، بما في ذلك التلميحات ذات السياق • للكشف الأولي عن الأخطاء، بما في ذلك التحقق النحوي الديناميكي • للتقديم، بما في ذلك تنسيق الكود الجميل، توسيع وتقليص كتل الكود • للت debug، بما في ذلك الخطوة الواحدة، نقاط التوقف، أي المتغيرات، التعبيرات، نافذة التقرير

المصدر: منهج كامبريدج الدولي

تكتب الكود المصدر؛ الجهاز يشغل الكود الآلي. المترجم يحول بينهما.

المترجم

المُجمِّع (assembler) يترجم لغة التجميع إلى كود الآلة: كل تعليمة(elemetic) (LDD, ADD, JMP) تصبح بالضبط تعليمة واحدة بكود الآلة، وعناوين الرموز والعلامات تستبدلعناوين حقيقية. هو مطلوب لأن المعالج ينفذ فقط كود الآلة، ولغة التجميع تُستخدم عندما يحتاج المبرمج سيطرة مباشرة على العتاد (الأجهزة المدمجة، تعريفات الأجهزة).

المترجم (Compiler)

المُترجم (compiler) يترجم برنامج عالي المستوى إلى كود الآلة مرة واحدة، قبل تشغيله.

  • يبلغ عن كل الأخطاء عند وقت الترجمة؛ بعد أن يكون نظيفاً، ينتج ملفاً قابلاً للتشغيل stand-alone يعمل بدون تثبيت المترجم ويمكن تشغيله مرات عديدة.
  • عادةً أسرع وقت التشغيل (لا يوجد ترجمة أثناء التشغيل)، لكنه مرتبط بمعالج/نظام تشغيل واحد — إعادة الترجمة لكل منصة.

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

المُفسِّر (Interpreter)

المُفسِّر (interpreter) يترجم ويشغل برنامج عالي المستوى سطراً بسطر، ولا ينتج ملفاً قابلاً للتشغيل.

  • يُبلغ عن خطأ عندما يصل إلى ذلك السطر، ثم يتوقف؛ يمكنك إصلاحه والمضي قدماً — مفيد في مرحلة التطوير.
  • يجب تثبيت المترجم لتشغيل البرنامج؛ عادة ما يكون أبطأ (يتم إعادة الترجمة في كل مرة تشغيل)، ولكنه سهل النقل عبر المنصات المختلفة.

الوصف المكون من علامتين: المترجم يقوم بترجمة عبارة واحدة من برنامج اللغة العالية في كل مرة وينفذها فوراً قبل الانتقال إلى التالية؛ لا يتم إنشاء ملف تنفيذي؛ ويتوقف عند أول خطأ يقابله ويبلغ عنه. يجب أن يكون كود المصدر والمترجم موجودين في كل مرة يتم فيها تشغيل البرنامج.

المترجم يترجم المصدر مرة واحدة إلى ملف تنفيذي يعمل مرات عديدة دون وجود مترجم؛ بينما يقوم المترجم بالترجمة والتشغيل سطرًا بسطر، في كل مرة تشغيل *المترجم يترجم مرة واحدة لبرنامج مستقل؛ أما المترجم فيترجم سطرًا بسطر في كل مرة تشغيل

الاختيار بينهما

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

الفوائد والعيوب، كما وردت في مخطط الدرجات.

المترجم المُفسِّر
سرعة التنفيذ سريع — هو بالفعل لغة الآلة أبطأ — يتم ترجمته في كل مرة تشغيل
ما يحتاجه المستخدم الملف التنفيذي فقط؛ لا حاجة للمترجم، ويبقى كود المصدر خاصاً كود المصدر والمترجم التفسيري
اكتشاف الأخطاء تُذكر جميع الأخطاء معاً بعد ترجمة البرنامج بالكامل يُبلغ عن كل خطأ عند السطر الذي يقع فيه أثناء التطوير
تغيير الكود إعادة Compilation للبرنامج بأكمله بعد كل تغيير التعديل والتشغيل مرة أخرى فوراً
قابلية النقل لغة الآلة تعمل على منصة واحدة فقط؛ يجب إعادة Compilation لكل منصة نفس الكود المصدر يعمل أينما يوجد مترجم تفسيرى

مثال محلول. يستخدم مطور البرمجيات المترجم التفسيري أثناء كتابة البرنامج والمترجم عندما ينتهي. اشرح كيفية استخدام كل واحد (4 درجات).

أثناء التطوير، يقوم المترجم التفسيري بتشغيل البرنامج غير المكتمل فوراً دون انتظار الترجمة الكاملة؛ وعند encountering خطأ، يبلغ عنه عند السطر، مما يسمح للمطور بإصلاحه وتشغيله مرة أخرى فوراً — دورة تعديل وتشغيل سريعة تسهل عملية تصحيح الأخطاء. وعندما ينتهي البرنامج، يقوم المترجم بترجمة البرنامج بالكامل إلى ملف تنفيذي يعمل بسرعة، ولا يحتاج إلى مترجم على جهاز المستخدم، ولا يكشف عن كود المصدر، لذا يمكن بيعه للعامة.

الهجين: جافا

يتم ترجمة لغة جافا إلى بايت كود (شكل وسيط مستقل عن المنصة)، الذي تقوم به آلة افتراضية (JVM) بعد ذلك بتفسيره — أو استخدام الترجمة عند الحاجة لتحويل الأجزاء النشطة إلى كود محلي. لذا يتم اكتشاف الأخطاء مبكراً، ويعمل البايت كود في أي مكان مع JVM ("اكتب مرة واحدة، شغّل في أي مكان")، وتصل البرامج طويلة التشغيل إلى سرعة تقارب الكود المحلي. تستخدم C# و Python تصاميم مشابهة.

عبارة المنهج هي "مُترجمة جزئياً ومُفسَّرة جزئياً": تكتشف مرحلة الترجمة أخطاء الصياغة وتنتج بايت كود قابل للنقل؛ وتسمح مرحلة التفسير لذلك الملف الواحد من البايت كود بالعمل على أي آلة تحتوي على آلة افتراضية، على حساب بعض السرعة. جافا في وضع وحدة التحكم (برنامج نصي يُشغّل من سطر الأوامر) هو المثال في المنهج.

يتم ترجمة مصدر جافا مرة واحدة إلى بايت كود مستقل عن المنصة (.class)، الذي تقوم به JVM على Windows أو macOS أو Linux بعد ذلك بتفسيره أو ترجمته عبر JIT إلى كود محلي
تُترجم جافا إلى بايت كود قابل للنقل تشغله أي JVM — اكتب مرة واحدة، شغّل في أي مكان

مثال محلل. يتم ترجمة مصدر جافا إلى بايت كود، الذي تقوم به JVM بعد ذلك بتفسيره. لماذا استخدام كلاهما بدلاً من الترجمة مباشرة إلى كود الآلة؟ تنتج المترجم كوداً آلياً لـ معالج واحد ونظام تشغيل واحد، لذا لن يعمل برنامج مُترجم على جهاز واحد على جهاز آخر. مترجم جافا يستهدف بدلاً من ذلك آلة افتراضية، لذا يكون البايت كود الذي ينتجه متطابقاً في كل مكان؛ ثم يزوّد كل منصة بـ JVM خاص بها لتفسير ذلك البايت كود إلى تعليماتها المحلية الخاصة. ملف واحد مُترجم يعمل因此在任何地方存在 JVM - "اكتب مرة واحدة، شغّل في أي مكان". الثمن هو السرعة: تفسير البايت كود أبطأ من تشغيل الكود المحلي، ولهذا السبب تستخدم JVM الحقيقية أيضاً JIT للترجمة لتحويل البايت كود الذي يتم تشغيله بشكل متكرر إلى كود محلي أثناء عمل البرنامج. سمّ كلا الجانبين - تُمنح العلامات لإمكانية النقل المشتراه على حساب السرعة.

استكشف

مسار المترجم: من المصدر إلى البرنامج runnable

مرر خطوة بخطوة كيف يعمل المترجم — بترجمة البرنامج بالكامل مرة واحدة قبل تشغيله. وقارنه بالمفسّر الذي يترجم ويشغل سطرًا تلو الآخر.

مفردات تدريب
English العربية
assembler/əˈsemblə/ مبرمج
assembly language/əˈsemblɪ ˈlæŋɡwɪdʒ/ لغة التجميع
compiler/kəmˈpaɪlə/ مُترجم
object code/ˈɒbdʒekt kəʊd/ الكود الهدف
interpreter/ɪnˈtɜːprɪtə/ مُفسِّر
bytecode/ˈbaɪtkəʊd/ bytecode
virtual machine/ˈvɜːtʃuːəl məˈʃiːn/ آلة افتراضية
just-in-time compilation/dʒʌst ɪn taɪm ˌkɒmpɪˈleɪʃn/ تجميع في وقت التشغيل
portable/ˈpɔːtəbl/ قابل للنقل
integrated development environment/ˈɪntɪɡreɪtɪd dɪˈveləpmənt enˈvaɪrənmənt/ بيئة التطوير المدمجة
5.2

بيئة التطوير المتكاملة (IDE)

بيئة التطوير المتكاملة (IDE) تجمع أدوات كتابة الكود واختباره وتصحيح الأخطاء في تطبيق واحد:

تجمع بيئة التطوير المتكاملة محرر الكود وزر التشغيل ومصحح الأخطاء في برنامج واحد
تقوم بيئة التطوير المتكاملة بتجميع المحرر وزر التشغيل ومصحح الأخطاء

يُصنّف المنهج الميزات إلى أربع فئات. تعلم أي ميزة تنتمي إلى أي فئة، لأن الأسئلة تطلب منك ترتيبها ووصف واحدة من كل مجموعة.

  • للاستخدام البرمجي: الرسائل السياقية الحساسة — عند الكتابة، تظهر بيئة التطوير المتكاملة المعرفات أو الكلمات المفتاحية أو المعاملات المناسبة في تلك النقطة من الكود؛ الاكتمال التلقائي يكمل الاسم لك؛ والتوسيط التلقائي ومطابقة الأقواس يحافظان على التنسيق الصحيح أثناء الكتابة.
  • للكشف الأولي عن الأخطاء: التحقق النحوي الديناميكي — يفحص المحرر النحو أثناء الكتابة ويحدد أو يظلل الخطأ فوراً، قبل ترجمة البرنامج؛ بعد الترجمة، رسائل خطأ مع أرقام الأسطر.
  • لعرض الكود: الطباعة الجمالية (prettyprint) — عرض الكلمات المفتاحية والمعرفات والنصوص والتعليقات بألوان أو خطوط مختلفة (تظليل القواعد) مع توسيط متناسق، بحيث تكون البنية واضحة للعين من أول نظرة؛ توسيع وتقليص كتل الكود — إخفاء جسم حلقة تكرار أو جملة شرطية IF أو دالة فرعية لرؤية الهيكل العام فقط.
  • للتصحيح البرمجي (Debugging): نقاط التوقف (breakpoints) — يتوقف البرنامج عند الوصول إلى سطر مسمى؛ التنفيذ خطوة بخطوة (single stepping) — من نقطة التوقف، تشغيل سطر واحد في كل مرة؛ نافذة تعرض القيم الحالية لـ المتغيرات والتعبيرات أثناء تغيرها؛ ونافذة تقرير تسرد الأخطاء والتحذيرات والمخرجات.

ميزات أخرى: تكامل المترجم (ترجمة أو تشغيل بزر واحد، ظهور الأخطاء في السطر)، مصحح أخطاء يشغل ميزات التصحيح أعلاه، تكامل التحكم في الإصدارات (git)، إدارة المشاريع، نظام المساعدة، أدوات إعادة الهيكلة (refactoring) (إعادة التسمية الآمنة) وتكامل اختبارات الوحدة (unit test).

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

تسرّع بيئة التطوير المتكاملة عملية التطوير بوضع الكتابة → التشغيل → تصحيح الأخطاء → الإصلاح خلف واجهة واحدة. أمثلة شائعة: Visual Studio، PyCharm، Eclipse، VS Code.

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

مثال محلول. الدالة Calculate() تُرجع قيمة غير متوقعة عند تشغيل البرنامج. صف كيف تساعد ميزات التصحيح البرمجي في بيئة التطوير المتكاملة النموذجية في إيجاد السبب (4 درجات).

ضع نقطة توقف على السطر الأول من Calculate()، حتى يتوقف البرنامج هناك بدلاً من الاستمرار في التشغيل. ثم نفّذ خطوة بخطوة عبر الدالة سطرًا تلو الآخر. بعد كل خطوة، اقرأ قيم المتغيرات وأي تعبير طلبت من بيئة التطوير المتكاملة راقبته، وقارنها بالقيم التي كنت تتوقعها؛ السطر الأول الذي تصبح فيه القيمة خاطئة هو مكان الخطأ المنطقي. تُظهر نافذة التقرير أي رسالة خطأ وقت التشغيل والمخرجات المنتجة حتى الآن.

مثال محلول. ضع كل ميزة في مجموعتها في المنهج: الطباعة الجمالية، الرسالة السياقية الحساسة، التحقق النحوي الديناميكي، نقطة التوقف، توسيع/تقليص كتل الكود، نافذة التقرير.

الاستخدام البرمجي: الرسالة السياقية الحساسة. الكشف الأولي عن الأخطاء: التحقق النحوي الديناميكي. العرض: الطباعة الجمالية، توسيع/تقليص كتل الكود. التصحيح البرمجي: نقطة التوقف، نافذة التقرير.

مفردات تدريب
English العربية
debugger/ˈdiːbʌɡə/ مصحح الأخطاء
context-sensitive prompts/ˈkɒntekst ˈsensɪtɪv prɒmpts/ رسائل توجيه حساسة للسياق
auto-complete/ˈɔːtəʊ kəmˈpliːt/ الاقتراح التلقائي
dynamic syntax checks/daɪˈnæmɪk ˈsɪntæks tʃeks/ فحوصات نحوية ديناميكية
prettyprint/ˈpretɪprɪnt/ تنسيق الجمالية للنص
syntax highlighting/ˈsɪntæks ˈhaɪlaɪtɪŋ/ تمييز بناء الجملة
breakpoints/ˈbreɪkpɔɪnts/ علامات توقف
single stepping/ˈsɪŋɡl ˈstepɪŋ/ التنفيذ خطوة بخطوة
report window/rɪˈpɔːt ˈwɪndəʊ/ نافذة التقارير
version control/ˈvɜːʃn kənˈtrəʊl/ التحكم في الإصدار
refactoring/rɪˈfæktərɪŋ/ إعادة هيكلة
unit test/ˈjuːnɪt test/ اختبار الوحدة
5.2

التعريفات التي يقبلها المصحح

تُصنّف أسئلة التعريف بناءً على صياغة ثابتة. احفظ هذه التعريفات بدقة، وقدم إجابة واحدة فقط.

مصطلح تعريف
نظام تشغيل برمجيات تدير عتاد الكمبيوتر وموارده وتوفر واجهة بين المستخدم وبرامج التطبيق والعتاد
برمجيات مساعدة برمجيات نظام تقوم بمهمة محددة للصيانة أو التحسين أو حماية الكمبيوتر، مثل فاحض الفيروسات أو أداة إزالة الت fragmentation
مكتبة برامج مجموعة من الروتينات المكتوبة والمختبرة مسبقاً (دوال فرعية، فئات، وحدات) يمكن للبرنامج استخدامها بدلاً من كتابتها بنفسه
مكتبة الروابط الديناميكية (DLL) مكتبة برامج تكون فيها الروتينات محملة في الذاكرة فقط عندما يستدعيها البرنامج وقت التشغيل، وتكون مشتركة بين البرامج
مترجم لغة التجميع مترجم يحول برنامج لغة التجميع إلى كود الآلة، تعليمة لكل تعليمة
مُترجم (Compiler) مترجم يحول كامل برنامج بلغة عالية المستوى إلى كود الآلة قبل تشغيله، منتجاً ملفاً قابلاً للتنفيذ
مُفسِّر (Interpreter) مترجم يترجم وينفذ برنامج بلغة عالية المستوى تعليمة تلو الأخرى
بيئة التطوير المتكاملة تطبيق واحد يوفر أدوات كتابة وترجمة وتشغيل وتصحيح أخطاء برنامج
الرسالة السياقية الحساسة رسالة منبثقة تقترح معرفات أو كلمات مفتاحية أو معاملات مناسبة للنقطة الحالية في الكود
التحقق النحوي الديناميكي فحص نحوية الكود أثناء كتابته وإشارة إلى وجود خطأ قبل ترجمة البرنامج
الطباعة الجمالية عرض الكود بكلمات مفتاحية ومعرفات وتعليقات بألوان أو خطوط مختلفة وبتوسيط متناسق
نقطة التوقف سطر مسمى يتوقف عنده البرنامج النشط لتفحص المتغيرات
التنفيذ خطوة بخطوة تشغيل برنامج متوقف تعليمة تلو الأخرى تحت سيطرة المبرمج
5.2

نصائح للامتحان

  • اذكر مهام نظام التشغيل حسب أسماء المنهج (إدارة الذاكرة، إدارة العمليات، الأجهزة، الملفات والأمان) ووضح ماذا يفعل كل منها — "إدارة الموارد" وحدها غير كافية لأنها غامضة.
  • قارن بين المترجم الثابت والمفسر والجمع: ماذا يترجم كل واحد منهما، ومتى يترجمه، وكيف يتم الإبلاغ عن الأخطاء.
  • اشرح ما يوفره بيئة التطوير المتكاملة باستخدام مجموعات المنهج: البرمجة، الكشف الأولي عن الأخطاء، العرض، وتصحيح الأخطاء.
  • إجابة "الفائدة للمطور" تسمى توفير المطور: الوقت، التكلفة، الخبرة، الموثوقية أو الصيانة. أما "العيب" فيسمى الاعتمادية: التوفر، الإصدار، الملاءمة، أو الأمان.
  • بالنسبة لـ "وصف عمل" المترجم، قدم ثلاث نقاط: ما يتم ترجمته (البرنامج بأكمله أو جملة واحدة)، متى (قبل التشغيل أو أثناء التشغيل)، وكيفية الإبلاغ عن الأخطاء (كلها معاً أو عند أول خطأ).

أخطاء شائعة

  • كتابة "نظام التحكم في الحاسوب" أو "إدارة الموارد" دون مثال عملي. كل علامة تمثل مهمة محددة مذكورة مع توضيح ما تفعله.
  • قول إن المفسر "يترجم سطراً بسطر". المفسر يقوم بالترجمة والتنفيذ لكل جملة؛ ولا ينتج أبداً ملفاً قابلاً للتنفيذ.
  • قول إن المترجم الثابت يشغل البرنامج. هو فقط يترجم؛ الملف القابل للتنفيذ يُشغل لاحقاً، بدون وجود المترجم الثابت.
  • وضع مكتبة DLL "داخل" الملف التنفيذي. هذا يمثل مكتبة ثابتة؛ بينما تظل DLL ملفاً منفصلاً يتم تحميله وقت التشغيل.
  • قول إن إزالة الت Fragmentation "تحذف" أو "يضغط" الملفات، أو أنها ضرورية على وحدة تخزين SSD. هي فقط تحرك الكتل بحيث تُخزن كل ملف بشكل متتابع.
  • تصنيف prettyprint أو طي الكتل تحت "تصحيح الأخطاء". هذه ميزات عرض؛ أما تصحيح الأخطاء فهو يشمل نقاط التوقف، التنفيذ خطوة بخطوة، مراقبة المتغيرات ونافذة التقارير.

دروس تفاعلية حول هذا الموضوع

ا-working عليه خطوة بخطوة، مع تمارين تحقق فوري.

أوراق الامتحانات السابقة

المزيد من المواضيع في A-Level علوم الحاسوب

تسجيل الدخول أو إنشاء حساب

IGCSE, A-Level & AP