مرحلة دورة حياة البرنامج

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

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

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

أمثلة

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

تتضمن مراحل البرنامج الذي يتم تجميعه إلى ملف تنفيذي أصلي خاص بالنظام المضيف عادةً ما يلي:

وقت التصميم (أو وقت التحرير)
عند كتابة شفرة المصدر للبرنامج . يشمل ذلك كتابة الشفرة الأولية بالإضافة إلى إصلاح الأخطاء وإضافة الميزات الجديدة وإعادة هيكلة الشفرة . [ 1 ]
وقت التجميع
عندما يتم تجميع الكود المصدري إلى كود كائن ( كود الآلة بالإضافة إلى معلومات الربط). [ 2 ]
وقت الربط
عند ربط الكود البرمجي والمكتبات الخارجية (دمجها لتكوين ملف تنفيذي) ، يتم ربط الدوال والبيانات من المكتبة إما عبر الربط الثابت (الذي يتم أثناء الربط) أو الربط الديناميكي (الذي يتم أثناء التحميل). [ 3 ]
وقت التوزيع
عندما يتم نقل البرنامج إلى المستخدم (على سبيل المثال، تنزيله من الإنترنت أو عبر وسائط مادية مثل محرك أقراص فلاش USB ).
وقت التركيب
عند تثبيت البرنامج ، يتم تخزين الملف التنفيذي والملفات ذات الصلة بحيث يمكن لجهاز الكمبيوتر المضيف تشغيل البرنامج بسهولة. [ 4 ]
وقت التحميل
عند تحميل البرنامج بما في ذلك نسخ رمز الآلة إلى الذاكرة القابلة للتنفيذ وحل الروابط الديناميكية. [ 5 ] [ 6 ]
مدة التشغيل
عند تشغيل البرنامج ، تقوم وحدة المعالجة المركزية بتنفيذ تعليمات لغة الآلة الخاصة بالبرنامج. [ 7 ] [ 8 ]

يستخدم

وصف وقت التجليد

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

الحوسبة المتوازية

إحدى الوظائف الرئيسية لتطوير الحوسبة المتوازية هي تخصيص الكود لبيئة التشغيل المضيفة. [ 9 ] [ 10 ] لا يمكن إجراء هذا التخصيص قبل معرفة تلك البيئة. إذا كان المطلوب تشغيل الكود نفسه على منصات أجهزة متنوعة، فلا يمكن إجراء هذا التخصيص خلال مرحلتي التحرير أو التجميع. المرحلة الأولى هي مرحلة التوزيع، [ 11 ] حيث يتم إنشاء نظام يجمع معلومات الأجهزة، ثم يختار ملفًا تنفيذيًا مُخصصًا مسبقًا لتلك الأجهزة أو لأجهزة مشابهة لها، أو يُنشئ ملفًا ثنائيًا مُخصصًا أثناء التشغيل. وبالمثل، يمكن إجراء التخصيص عند التحميل، [ 12 ] عن طريق استدعاء أداة إعادة كتابة الملفات الثنائية [ 13 ] بالتزامن مع أداة تستخدم بنية تدفق التحكم لإنشاء شكل مُخصص.

مراجع

  1. فرانشيتي، جان كلود (13 نوفمبر 2024). "4.2 بناء برامج بلغة سي" . مقدمة في علوم الحاسوب . أوبن ستاكس . تم الاطلاع عليه في 12 نوفمبر 2025 .
  2. أهو، ألفريد ف.؛ لام، مونيكا س.؛ سيثي، رافي؛ أولمان، جيفري د. (2006). المترجمات: المبادئ والتقنيات والأدوات (الطبعة الثانية ). أديسون-ويسلي. ISBN  978-0321486813.
  3. ليفين، جون ر. (1999). الوصلات والمحملات . مورغان كوفمان. ISBN 978-1558604964.
  4. "نظرة عامة على برنامج تثبيت ويندوز" . مايكروسوفت ليرن . مايكروسوفت. 7 يناير 2021. تم الاطلاع عليه بتاريخ 12 نوفمبر 2025 .
  5. "ld.so(8) — رابط/محمل ديناميكي" . man7.org صفحات دليل لينكس . مايكل كيريسك . تم الاطلاع عليه بتاريخ 12 نوفمبر 2025 .
  6. "الربط (شرائح محاضرة CS:APP) - الربط الديناميكي أثناء التحميل مقابل الربط الديناميكي أثناء التشغيل" (ملف PDF) . جامعة كارنيجي ميلون . 26 أكتوبر 2023. تم الاطلاع عليه بتاريخ 12 نوفمبر 2025 .
  7. "execve(2) — تنفيذ البرنامج" . man7.org صفحات دليل لينكس . مايكل كيريسك . تم الاطلاع عليه بتاريخ 12 نوفمبر 2025 .
  8. "الربط (شرائح محاضرة CS:APP) - الربط الديناميكي أثناء التشغيل (dlopen)" (ملف PDF) . جامعة كارنيجي ميلون . 26 أكتوبر 2023. تاريخ الاسترجاع: 12 نوفمبر 2025 .
  9. ميدكيف، صموئيل ب. (2012). التوازي التلقائي: نظرة عامة على تقنيات المترجمات الأساسية (ملف PDF) . محاضرات توليفية في هندسة الحاسوب. مورغان وكلايبول. ISBN 978-1608458103تم الاطلاع عليه بتاريخ 12 نوفمبر 2025 .
  10. تورنافيتيس، جورجيوس؛ أوبويل، مايكل (2009). نحو منهج شامل للتوازي التلقائي . ACM. doi : 10.1145/1543135.1542496 . تاريخ الاسترجاع: 12 نوفمبر 2025 .
  11. "استهداف الأجهزة (إصدار تجريبي)" . مطورو أندرويد . جوجل. 21 يوليو 2025. تم الاطلاع عليه بتاريخ 12 نوفمبر 2025 .
  12. "تحسين وقت الربط (LTO)" . دليل GCC الداخلي . مؤسسة البرمجيات الحرة . تم الاطلاع عليه بتاريخ 12 نوفمبر 2025 .
  13. بانشينكو، ماكسيم؛ فيدوروف، أندريه؛ أوتوني، غيلهيرمي؛ كوندون، رودريغو (2019). BOLT: مُحسِّن ثنائي عملي لمراكز البيانات وما بعدها . IEEE. ص 2-14 . doi : 10.1109/CGO.2019.8661187 . تاريخ الاسترجاع: 12 نوفمبر 2025 .