ما هو تصميم المترجم؟ الأنواع، أدوات البناء، مثال

ما هو المترجم؟

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

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

مترجم

مميزات المترجمين

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

أنواع المترجم

فيما يلي أنواع مختلفة من المترجم:

  • المترجمين تمريرة واحدة
  • اثنين من المترجمين تمرير
  • المجمعين المتعددين

مترجم تمريرة واحدة

مترجم تمريرة واحدة
مترجم تمريرة واحدة

في تمريرة واحدة، يتحول كود مصدر المترجم مباشرة إلى كود الآلة. على سبيل المثال، لغة باسكال.

اثنين من ممر المترجم

اثنين من ممر المترجم
اثنين من ممر المترجم

ينقسم المترجم ذو المرورين إلى قسمين، وهما:

  1. نهاية المقدمة: فهو يعين القانون القانوني في التمثيل الوسيط (IR).
  2. النهاية الخلفية: يقوم بتعيين الأشعة تحت الحمراء على الجهاز المستهدف

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

المجمعين المتعددين

المجمعين المتعددين
المجمعين المتعددين

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

مهام المترجم

المهام الرئيسية التي يؤديها المترجم هي:

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

تاريخ المترجم

المعالم الهامة لتاريخ المترجم هي كما يلي:

  • تم استخدام كلمة "المترجم" لأول مرة في أوائل الخمسينيات من قبل جريس موراي هوبر.
  • تم إنشاء المترجم الأول بواسطة جون باكوم ومجموعته بين عامي 1954 و1957 في IBM.
  • كان كوبول الأول لغة برمجة والتي تم تجميعها على منصات متعددة في عام 1960
  • تمت متابعة دراسة مشكلات المسح والتحليل في الستينيات والسبعينيات من القرن الماضي لتوفير حل كامل.

خطوات أنظمة معالجة اللغة

قبل التعرف على مفهوم المترجمين، عليك أولاً فهم بعض الأدوات الأخرى التي تعمل مع المترجمين.

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

أدوات بناء المترجم

تم تقديم أدوات إنشاء المترجمات مع انتشار التقنيات المرتبطة بالكمبيوتر في جميع أنحاء العالم. وهي تُعرف أيضًا باسم المترجمات-المترجمات أو المولدات-المترجمات أو المترجمات.

تستخدم هذه الأدوات لغة أو خوارزمية محددة لتحديد وتنفيذ مكون المترجم. فيما يلي أمثلة لأدوات إنشاء المترجم.

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

لماذا استخدام المترجم؟

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

تطبيق المجمعين

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

الملخص

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