logo

عملية التجميع في ج

ما هو التجميع؟

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

عملية التجميع في ج

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

عدد صحيح لسلسلة Java

يأخذ المعالج المسبق كود المصدر كمدخل، ويقوم بإزالة جميع التعليقات من كود المصدر. يأخذ المعالج توجيهات المعالج ويفسرها. على سبيل المثال، إذا , التوجيه متاح في البرنامج، ثم يقوم المعالج المسبق بتفسير التوجيه واستبدال هذا التوجيه بمحتوى التوجيه 'stdio.h' ملف.

وفيما يلي المراحل التي يمر بها برنامجنا قبل أن يتحول إلى صيغة قابلة للتنفيذ:

    المعالج مترجم المجمع رابط
عملية التجميع في ج

المعالج

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

مترجم

يتم تمرير التعليمات البرمجية التي يتم توسيعها بواسطة المعالج المسبق إلى المترجم. يقوم المترجم بتحويل هذا الرمز إلى رمز التجميع. أو يمكننا القول أن مترجم C يحول التعليمات البرمجية المعالجة مسبقًا إلى كود التجميع.

استبدال جافا

المجمع

يتم تحويل رمز التجميع إلى رمز الكائن باستخدام المجمع. اسم ملف الكائن الذي تم إنشاؤه بواسطة المجمّع هو نفس الملف المصدر. امتداد ملف الكائن في DOS هو '.obj'، وفي UNIX، يكون الامتداد 'o'. إذا كان اسم الملف المصدر هو 'مرحبا.ج'، فإن اسم ملف الكائن سيكون 'hello.obj'.

رابط

بشكل رئيسي، جميع البرامج المكتوبة بلغة C تستخدم وظائف المكتبة. يتم تجميع وظائف المكتبة هذه مسبقًا، ويتم تخزين كود الكائن لملفات المكتبة هذه بامتداد '.lib' (أو '.a'). يتمثل العمل الرئيسي للرابط في دمج رمز الكائن لملفات المكتبة مع رمز الكائن لبرنامجنا. في بعض الأحيان ينشأ الموقف عندما يشير برنامجنا إلى الوظائف المحددة في ملفات أخرى؛ ثم يلعب الرابط دورًا مهمًا جدًا في هذا. فهو يربط رمز الكائن لهذه الملفات ببرنامجنا. لذلك، نستنتج أن وظيفة الرابط هي ربط كود الكائن الخاص ببرنامجنا مع كود الكائن الخاص بملفات المكتبة والملفات الأخرى. إخراج الرابط هو الملف القابل للتنفيذ. اسم الملف القابل للتنفيذ هو نفس اسم الملف المصدر ولكنه يختلف فقط في امتداداته. في DOS، امتداد الملف القابل للتنفيذ هو '.exe'، وفي UNIX، يمكن تسمية الملف القابل للتنفيذ باسم 'a.out'. على سبيل المثال، إذا كنا نستخدم وظيفة printf() في برنامج ما، فإن الرابط يضيف الكود المرتبط به في ملف الإخراج.

دعونا نفهم من خلال مثال.

مرحبا.ج

 #include int main() { printf('Hello javaTpoint'); return 0; } 

الآن سنقوم بإنشاء مخطط تدفق للبرنامج أعلاه:

المسلسل في postgres
عملية التجميع في ج

في الرسم البياني أعلاه، يتم اتخاذ الخطوات التالية لتنفيذ البرنامج:

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