مترجم (حوسبة)
المترجم أو معالج لغة البرمجة هو برنامج حاسوبي يحوّل تعليمات البرمجة المكتوبة بصيغة سهلة الفهم إلى رموز لغة الآلة التي تفهمها الحواسيب وتعالجها. وهو مصطلح عام يشمل المترجم ، والمجمع ، والمفسر - أي شيء يحوّل الشفرة من لغة برمجة إلى أخرى. [ 1 ] [ 2 ] وتشمل هذه الترجمات الترجمات بين لغات البرمجة عالية المستوى سهلة القراءة مثل C++ وجافا ، واللغات متوسطة المستوى مثل بايت كود جافا ، واللغات منخفضة المستوى مثل لغة التجميع ولغة الآلة ، وبين مستويات اللغة المتشابهة على منصات حوسبة مختلفة ، وكذلك من أيٍّ من هذه اللغات إلى أيٍّ منها. [ 1 ]
يُستخدم هذا المصطلح أيضًا للإشارة إلى المترجمين بين تطبيقات البرامج وتطبيقات الأجهزة/ الرقائق الدقيقة ASIC لنفس البرنامج، ومن أوصاف البرامج للرقاقة الدقيقة إلى البوابات المنطقية اللازمة لبنائها.
معالجات لغات البرمجة
تختلف عملية تطوير البرمجيات بشكل ملحوظ باختلاف نوع المترجم الذي يستخدمه المطور، وهذا يختلف بطبيعة الحال من مترجم لآخر. تشمل مراحل عملية التطوير التي تتأثر بالمترجم مرحلة البرمجة الأولية، ومرحلة تصحيح الأخطاء ، والأهم من ذلك، مرحلة التنفيذ. تشمل العوامل المتأثرة خلال هذه المراحل أداء الكود، وسرعة استجابة عملية تصحيح الأخطاء، وخصائص اللغة، واستقلالية النظام الأساسي. من أبرز معالجات لغات البرمجة المستخدمة لترجمة الكود: المترجمات ، والمفسرات ، والمجمعات . [ 3 ]
المترجمون
يتفاعل برنامج المُترجم مع الشفرة المصدرية بتحويلها، عادةً من لغة برمجة عالية المستوى، إلى شفرة كائنية يمكن تنفيذها لاحقًا بواسطة وحدة المعالجة المركزية (CPU) في الحاسوب . [ 4 ] تتكون الشفرة الكائنية التي يُنشئها المُترجم من شفرة قابلة للقراءة آليًا، يمكن للحاسوب معالجتها. تُعرف هذه المرحلة من عملية الحوسبة بالترجمة. يؤدي استخدام المُترجم إلى فصل عملية الترجمة عن عملية التنفيذ. بعد الترجمة، تُحفظ الشفرة الكائنية الجديدة بشكل منفصل عن الشفرة المصدرية، مما يجعل الشفرة المصدرية غير مطلوبة لعملية التنفيذ. مع برامج المُترجم، تُصبح الترجمة عملية لمرة واحدة، مما ينتج عنه شفرة فعالة يمكن تنفيذها بسرعة عددًا غير محدود من المرات. [ 4 ]
توجد فوائد واضحة عند ترجمة التعليمات البرمجية عالية المستوى باستخدام المترجم. [ 5 ]
- تؤدي عملية الترجمة إلى تسريع وقت تشغيل البرنامج. وبما أن الكود يُترجم قبل التنفيذ، فإن نتائجه تكون مُحسّنة وسريعة.
- تعتبر المترجمات أكثر مثالية عند حماية التعليمات البرمجية من الانتحال ومنع استخدام التعليمات البرمجية المصدرية من قبل طرف غير مصرح له.
- لا يلزم إنشاء رمز الكائن إلا مرة واحدة عند تجميع التعليمات البرمجية المصدرية.
توجد عيوب واضحة عند ترجمة التعليمات البرمجية عالية المستوى باستخدام المترجم. [ 5 ]

- يُعدّ الكود البرمجي الناتج أثناء عملية الترجمة خاصًا ببنية مجموعة تعليمات الجهاز (ISA). وينتج عن ذلك كود برمجي يعتمد على نوع محدد من الأجهزة لكي يعمل.
- لا يمكن بدء مرحلة تصحيح الأخطاء في عملية التطوير إلا بعد اكتمال تجميع البرنامج. ولا يمكن رؤية الأخطاء إلا بعد التجميع.
- يجب إعادة تجميع أي كود مصدر يتم تعديله بالكامل ليتم تنفيذه مرة أخرى.
تتضمن بعض لغات البرمجة البارزة التي تستخدم المترجمات ما يلي: [ 6 ]
مترجمون فوريون
تعمل برامج المفسر عن طريق ترجمة التعليمات البرمجية عالية المستوى إلى تعليمات قابلة للقراءة بواسطة الآلة، مع تنفيذ التعليمات سطرًا بسطر في الوقت نفسه. على عكس المترجمات، لا يحتاج المفسر إلى ترجمة التعليمات البرمجية قبل تنفيذها. تتم عملية الترجمة والتنفيذ بشكل متزامن، وتتوقف في حال حدوث خطأ في البرنامج. يتيح استخدام المفسر للمطورين اختبار التعليمات البرمجية وتعديلها في الوقت الفعلي، مما يُسهّل عملية تصحيح الأخطاء ويُساعد في كتابة تعليمات برمجية أكثر كفاءة. ونظرًا لأن عملية الترجمة والتنفيذ تتم بشكل متزامن، فإن وقت تنفيذ برامج المفسر طويل نسبيًا. [ 3 ]
توجد فوائد واضحة عند ترجمة التعليمات البرمجية عالية المستوى باستخدام مترجم.
- بما أن الكود البرمجي لا يتم إنشاؤه في عملية التفسير، فإن الذاكرة المطلوبة لهذا الكود تكون أقل. [ 3 ]
- لا تُنشئ لغات الترجمة الفورية شفرة خاصة بالجهاز، ويمكن تنفيذها على أي نوع من الأجهزة. [ 5 ]
- تتميز عملية التطوير والتصحيح عادةً بأنها أسرع نظرًا لقلة التعقيد، كما أنها تتمتع بمرونة أكبر. [ 5 ]
توجد عيوب واضحة عند ترجمة التعليمات البرمجية عالية المستوى باستخدام مترجم. [ 5 ]
- تتطلب البرامج تثبيت مترجم على الجهاز لتشغيلها وتفسيرها.
- وقت تنفيذ البرنامج أبطأ من وقت تنفيذ المترجم.
تتضمن بعض لغات البرمجة البارزة التي تستخدم المترجمات ما يلي: [ 3 ]
المجمّعون
يعمل برنامج التجميع عن طريق تحويل كود التجميع منخفض المستوى إلى كود آلة تقليدي يمكن لوحدة المعالجة المركزية قراءته. والغرض من لغة التجميع، مثل لغات البرمجة الأخرى، هو جعل عملية البرمجة أكثر سهولة للمستخدم من البرمجة بلغة الآلة. تستخدم لغات التجميع رموزًا مختصرة وعناوين رمزية للتمييز بين رمز العملية، والمعاملات، وعناوين الذاكرة المحددة. يصعب على البشر قراءة العديد من هذه المكونات، ولذلك فإن الرموز المختصرة والرموز والتسميات تجعل الكود قابلاً للفهم. يعمل المُجمِّع عن طريق معالجة الكود سطرًا سطرًا ثم ينتقل إلى التعليمات التالية. ولتجنب المشكلات التي تحدث بسبب عناوين المواقع، تتم عملية الترجمة المعروفة باسم التجميع عادةً على مرحلتين. تُجرى المرحلة الأولى من التجميع لتحديد العناوين الثنائية التي تتوافق مع الأسماء الرمزية. وهذا ضروري لتوجيه المرحلة الثانية، وهي الترجمة سطرًا بسطر إلى لغة الآلة. [ 7 ]
تشمل أدوات التجميع الشائعة الاستخدام ما يلي:
- لغات التجميع x86 (المستخدمة في معالجات Intel و AMD) [ 8 ]
- لغة التجميع ARM (المستخدمة في الأجهزة المحمولة) [ 8 ]
- لغة التجميع MIPS (المستخدمة في أجهزة ألعاب الفيديو) [ 8 ]
- لغة التجميع PowerPC [ 8 ]
- لغة التجميع LC-3 (تستخدم بشكل أساسي في التعليم لبرمجة جهاز الكمبيوتر LC-3) [ 7 ]
انظر أيضاً
- مترجم ثنائي (ثنائي إلى ثنائي، عادةً ما يكون رمزًا)
- مترجم لغة التجميع (من المصدر إلى المصدر، الكود)
- مترجم من المصدر إلى المصدر (ترجمة عالية المستوى من المصدر إلى المصدر، شفرة برمجية)
- إعادة كتابة الكود (من المصدر إلى المصدر، عادةً الكود البرمجي)
- مُنسِّق الشفرة المصدرية (من مصدر إلى مصدر، عادةً ما تكون شفرة)
- محول الملفات (ثنائي إلى ثنائي، عادةً ما يكون للبيانات)
- مُحوِّل الترميز (ثنائي إلى ثنائي، بيانات)
مراجع
- 1 2 ثورنتون، سكوت (17 فبراير 2017). "ما هي المترجمات، والمترجمات الفورية، والمفسرات، والمجمعات؟" . نصائح حول المتحكمات الدقيقة . مؤرشف من الأصل في 19 يوليو 2019. تم الاسترجاع في 2 فبراير 2020 .
- ↑ "المترجمات والأدوات المساعدة لتطوير البرامج". دليل البرمجيات (PDF) . شركة إنتل . 1984 [1983]. ص 3-1. 230786-001. مؤرشف (PDF) من الأصل بتاريخ 29-01-2020 . تم الاطلاع عليه بتاريخ 29-01-2020 .
- 1 2 3 4 "معالجات اللغات: المُجمِّع، والمُترجم، والمُفسِّر" . GeeksforGeeks . 2018-08-09 . تم الاطلاع عليه بتاريخ 2024-03-15 .
- 1 2 "CSE 5317/4305: تصميم وبناء المترجمات" . lambda.uta.edu . تم الاطلاع عليه بتاريخ 15-03-2024 .
- 1 2 3 4 5 "أنواع المترجمات" . علوم الحاسوب بلغة آدا . 15-03-2024 . تم الاطلاع عليه بتاريخ 15-03-2024 .
- ↑ "اللغات المترجمة مقابل اللغات المفسرة" . www.ibm.com . تاريخ الاسترجاع: 15 مارس 2024 .
- 1 2 بات، ييل؛ باتيل، سانجاي (15 أغسطس 2019). مقدمة في أنظمة الحوسبة: من البتات والبوابات إلى لغة C/C++ وما بعدها (الطبعة الثالثة ). نيويورك، نيويورك: ماكجرو هيل. الصفحات 231-243 . ISBN 978-1260150537.
- 1 2 3 4 ستوكو، ويليام (2024-05-06). "بنية لغة الإشارة" . المراجعة السنوية لعلم الإنسان . 9 : 365-390 . doi : 10.1146/annurev.an.09.100180.002053 . تاريخ الاسترجاع: 2024-03-15 .
للمزيد من القراءة
- كالينجارت، بيتر (1979) [1978-11-05]. كُتب في جامعة نورث كارولينا في تشابل هيل . هورويتز، إليس (محرر). المُجمِّعات، والمُترجمات، وترجمة البرامج . سلسلة هندسة برمجيات الحاسوب (الطبعة الأولى، الطبعة الأولى). بوتوماك، ماريلاند، الولايات المتحدة الأمريكية: دار نشر علوم الحاسوب. رقم ISBN 0-914894-23-4ISSN 0888-2088 . LCCN 78-21905 . مؤرشف من الأصل بتاريخ 20 مارس 2020. تم الاطلاع عليه بتاريخ 20 مارس 2020 . (صفحتان + 14 صفحة + 270 صفحة + 6 صفحات)
- برينغ-ميل، ديفيد (4 مارس 2018). "لماذا لم يتقن الذكاء الاصطناعي ترجمة اللغات؟" . مركز سينغولاريتي . جامعة سينغولاريتي . مؤرشف من الأصل بتاريخ 29 ديسمبر 2019. تم الاطلاع عليه بتاريخ 2 فبراير 2020 .
- إدواردز، ستيفن أ. (خريف 2013). "معالجات اللغة" (ملف PDF) . جامعة كولومبيا . مؤرشف (ملف PDF) من الأصل بتاريخ 24 يونيو 2019. تم الاطلاع عليه بتاريخ 2 فبراير 2020 .
- تاكر، ألين؛ بيلفورد، جنيف ج. "علوم الحاسوب" . موسوعة بريتانيكا . مؤرشف من الأصل في 23 يوليو 2019. تم الاطلاع عليه في 2 فبراير 2020 .
- تنفيذ لغة البرمجة
