المحول البرمجي

شارك هذه المقالة مع أصدقائك!
Advertisements

يعتبر المحول البرمجي هو مترجم الشفرة للغة الآلة، لغة التجميع، البنك.

المترجم هو برنامج كمبيوتر يحول ملفات المصدر إلى أوامر مباشرة يفهمها الكمبيوتر وينفذها مباشرة لتناسب بنية الكمبيوتر التي يستهدفها البرنامج.

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

المحول البرمجي

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

مما جعل البرمجة المباشرة للكمبيوتر صعبة، وانتشار العديد من هياكل الكمبيوتر (مثل ARM و x64 و x86) جعل من الضروري كتابة البرامج عدة مرات في لغات بعدة مستويات منخفضة للعمل على عدة أجهزة كمبيوتر مختلفة لمواجهة ذلك.

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

بغض النظر عن تعدد الهياكل مع مراعاة بعض التفاصيل الصغيرة عند القيام بذلك وضبطها.

الأسباب الرئيسية للمحول البرمجي

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

غالبًا ما تكون البرامج المكتوبة بلغات عالية المستوى أقصر من البرامج المقابلة المكتوبة بلغة الآلة.

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

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

ومن ثم، فإن بعض البرامج التي تعتبر عامل الوقت والسرعة في التنفيذ مهمة جدًا بالنسبة لها لا تزال مكتوبة بلغة الآلة ومع ذلك.

يمكن للمترجم الجيد الوصول بسرعة إلى البرامج المكتوبة بلغة عالية المستوى بنفس سرعة تنفيذ البرامج المقابلة المكتوبة بلغة الآلة إذا قام بالكثير من التحسينات الجيدة وكانت البرامج المكتوبة باللغة عالية المستوى جيدة مكتوبة ومنظمة.

مراحل المترجم Compiler.

لأن كتابة المترجمين ليست عملية سهلة على الإطلاق، فمن الأفضل تقسيم طريقة بناء المترجم، والطريقة التقليدية للقيام بذلك هي تقسيم عملية الترجمة إلى عدة مراحل.

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

تأخذ كل مرحلة باستثناء المرحلة الأولى مخرجات المرحلة التي تسبقها كمدخلات لها.

من الشائع جعل كل مرحلة كوحدة منفصلة، وبعض هذه الوحدات مكتوبة يدويًا والبعض الآخر يتم إنشاؤها بالمواصفات أو المعايير.

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

التحليل اللغوي للمحول البرمجي

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

على سبيل المثال إذا كان كود المصدر بهذه الطريقة:

بعد المرور بهذه المرحلة، يتم تحويلها إلى هذا النموذج

If ——- كلمة مفتاحية ——- مسافة فارغة (——- رمز a ——- اسم متغير ——- مسافة فارغة == ——- رمز ——- مسافة فارغة b ——- اسم متغير) ——- رمز ——- مسافة فارغة a ——- اسم متغير ++ ——- رمز; ——- رمز.

التحليل النحوي أو النحوي.

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

فحص النوع

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

مرحلة إنتاج الكود الوسيط.

يتم ترجمة البرنامج إلى لغة وسيطة مستقلة عن هيكل الكمبيوتر الداخلي.

حجز المسجلات.

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

إنتاج رمز لغة الآلة.

تُترجم اللغة الوسيطة إلى لغة Smile وهي صيغة نصية للغة الآلة لنوع معين من تركيبة الكمبيوتر (X86 أو Power PC).

التجميع والاتصال.

تتم ترجمة اللغة العربية إلى ترميز ثنائي ويتم تحديد عناوين المتغيرات والوظائف وما إلى ذلك.

تسمى المراحل الثلاث الأولى مجتمعة Front End الواجهة الأمامية للمترجم والمراحل الثلاث الأخرى تسمى الواجهة Backend الخلفية للمترجم.

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

على سبيل المثال نوع المدقق type checker يمكن أن تفترض عدم وجود أخطاء نحوية وتفترض مرحلة إنتاج الشفرة عدم وجود أخطاء في النوع.

يتم تجميعها وربطها بالبرامج التي يوفرها نظام التشغيل وهي ليست جزءًا من المترجم نفسه.

يمكنك معرفة المزيد من خلال قسم التقنية

Advertisements
‫0 تعليق

اترك تعليقاً