ما هو ال Compiler وما هي وظيفته وفائدته ؟

 

The Compiler

تمت كتابة هذه المقالة لوجود عمليات بحث ذات صلة بنفس الموضوع ومنها , اﻵتي:-

عمليات البحث ذات الصلة

طريقة عمل Compiler
Compiler شرح
Compiler ماهو
برنامج Compiler
تعريف compiler
المترجمات Compilers
شرح مادة compiler بالعربي
المترجمات في الحاسوب
ما هو المترجم Compiler في لغات البرمجة
تحليل وتصميم المترجمات PDF
ما هي المترجمات وانواعها
أنواع المترجمات في الحاسوب


السلام عليكم ورحمة الله وبركاته أعزائي الزُوَّار !
مرحباً بكم من جديد !

مع انتشار التكنولوجيا والتقدم فى الزمان انتشرت اﻵلات اﻹلكترونية وكلما تقدمنا فى الزمن, زاد تطوُّر التكنولوجيا .
فى هذا البحث سنتعرف على أهم أﻷساسيات التكنولوجيِّة و وظائفها والكثير والكثير عنها وهي -من وجهة نظري الخاصة- ال "Compilers".

<<< Compilers >>>

يسمى معالج اللغة البرمجية الذي يقرأ البرنامج المصدر (source code) الكامل المكتوب بلغة عالية (High Level Language) المستوى ككل دفعة واحدة ويترجمها إلى برنامج مكافئ في لغة الآلة باسم المُجَمِّع (Compiler). مثال: C ، C ++ ، C # ، Java.

أو بمعني أصح, في الحوسبة ، المترجم أو المجمع هو برنامج كمبيوتر يقوم بترجمة كود الكمبيوتر المكتوب بلغة برمجة واحدة (لغة المصدر) إلى لغة أخرى (اللغة الهدف) وهي لغة اﻵلة التي تفهمها الآلة , ليس شرطاأ أن تكون هذه اﻵلة عبارة عن كمبيوتر أو لاب توب , يمكن أن تكون هذه اﻵلة عبارة عن إنسان آلى علي سبيل المثال!... البرنامج الذي يترجم من لغة منخفضة المستوى إلى مستوى أعلى هو برنامج فك التحويل البرمجي .
أَي يقوم بعمل de compiling عكس عملية الcompiling .

ماذا يفعل المترجم؟


وظيفة المجمِّع أو المترجم أو الCompiler هو أنِّ المترجم ، برنامج كمبيوتر يقوم بترجمة (تجميع) شفرة المصدر المكتوبة بلغة عالية المستوى (على سبيل المثال ، C++) إلى مجموعة من إرشادات لغة الآلة التي يمكن فهمها بواسطة وحدة المعالجة المركزية للكمبيوتر الرقمي (اﻵلة).
المترجمات هي برامج كبيرة للغاية ، مع التحقق من الأخطاء وقدرات أخرى.

لنتعرف على ميزات المجمعين - Features Of Compilers

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

أنواع المجمعين - Types Of Compilers


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

    مترجمي مرور واحد
    مترجمين اثنين تمرير
    مترجمي Multipass

Single Pass Compiler

Single Pass Compiler

Single Pass Compiler



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

Two Pass Compiler

Two Pass Compiler



ينقسم مترجم اثنان إلى قسمين ، بمعنى.

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

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

Multipass Compilers

Multipass compiler




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

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


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

    يقسم البرنامج المصدر(source code of programming language) إلى أجزاء ويفرض عليه بنية نحوية
    يسمح لك بإنشاء البرنامج المستهدف المطلوب من التمثيل المتوسط ​​وأيضًا إنشاء جدول الرموز
    يجمع كود المصدر ويكشف الأخطاء فيه
    إدارة تخزين جميع المتغيرات والرموز.
    دعم التجميع المنفصل
    قراءة وتحليل البرنامج بأكمله وترجمته إلى مكافئ لغويًا
    ترجمة الكود المصدري إلى كود كائن اعتمادًا على نوع الجهاز

تاريخ المترجم (Compiler)


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

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

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


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

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


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


    المعالج الأولي: يعتبر المعالج الأولي جزءًا من المترجم. إنها أداة تنتج مدخلات للمترجم. إنه يتعامل مع المعالجة الكلية ، والتكبير ، وامتداد اللغة ، إلخ.

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

    المجمع: يترجم كود لغة التجميع إلى لغة مفهومة آليًا. تُعرف نتيجة المُجمِّع بملف الكائن وهو عبارة عن مزيج من تعليمات الآلة بالإضافة إلى البيانات المطلوبة لتخزين هذه التعليمات في الذاكرة.

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

    أداة التحميل: المُحمل هو جزء من نظام التشغيل ، والذي يقوم بمهام تحميل الملفات القابلة للتنفيذ في الذاكرة وتشغيلها. كما أنه يحسب حجم البرنامج الذي يخلق مساحة ذاكرة إضافية.

    
Cross-compiler: يعد برنامج التحويل البرمجي المتقاطع في تصميم المترجم نظامًا أساسيًا يساعدك على إنشاء رمز قابل للتنفيذ (excecutable).


    المترجم من المصدر إلى المصدر: المترجم من المصدر إلى المصدر هو مصطلح يُستخدم عند ترجمة شفرة المصدر لإحدى لغات البرمجة إلى مصدر لغة أخرى.

اﻵن حان الوفت لنتعرف على أدوات بناء المترجم

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

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

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

بعد أن عرفنا كل ذلك, هيا بنا لنعرف لماذا يجب علينا استخدام لمترجم أو المجمع -Compiler-

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


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

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


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

ملخص لما تم سرده فى هذا البحث

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

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

وهنا قد انتهيت من بحثي الخاص بموضوع الCompilers .

شكراً لحُسن قرائتكم :)



 

 

Post a Comment

أحدث أقدم