التحليل المعجمي (المحلل) في تصميم المترجم مع مثال
ما هو التحليل المعجمي؟
التحليل المعجمي هي المرحلة الأولى في تصميم المترجم. يأخذ Lexer كود المصدر المعدل والذي يتم كتابته في شكل جمل. بمعنى آخر، يساعدك على تحويل سلسلة من الأحرف إلى سلسلة من الرموز المميزة. يقوم المحلل المعجمي بتقسيم بناء الجملة هذا إلى سلسلة من الرموز المميزة. فهو يزيل أي مساحة إضافية أو تعليق مكتوب في الكود المصدري.
تسمى البرامج التي تقوم بالتحليل المعجمي في تصميم المترجم بالمحللين المعجميين أو المعجمين. يحتوي المعجم على رمز مميز أو ماسح ضوئي. إذا اكتشف المحلل المعجمي أن الرمز المميز غير صالح، فإنه يولد خطأ. يتمثل دور Lexical Analyzer في تصميم المترجم في قراءة تدفقات الأحرف من الكود المصدري، والتحقق من الرموز القانونية، وتمرير البيانات إلى محلل بناء الجملة عندما يطلب ذلك.
مثال
How Pleasant Is The Weather?
انظر هذا المثال التحليل المعجمي. هنا، يمكننا أن ندرك بسهولة أن هناك خمس كلمات كم هو لطيف، الطقس، هو. وهذا أمر طبيعي جدًا بالنسبة لنا حيث يمكننا التعرف على الفواصل والفراغات ورمز علامات الترقيم.
HowPl easantIs Th ewe ather?
الآن، تحقق من هذا المثال، يمكننا أيضًا قراءة هذا. ومع ذلك، سوف يستغرق الأمر بعض الوقت لأنه يتم وضع الفواصل في الأماكن الفردية. إنه ليس شيئًا يأتي إليك على الفور.
المصطلحات الأساسية
ما هو المعجم؟
المعجم عبارة عن سلسلة من الأحرف المضمنة في البرنامج المصدر وفقًا لنمط المطابقة للرمز المميز. إنه ليس سوى مثال للرمز المميز.
ما هو رمز؟
الرموز المميزة في تصميم المترجم هي تسلسل الأحرف الذي يمثل وحدة المعلومات في البرنامج المصدر.
ما هو النمط؟
النمط هو الوصف الذي يستخدمه الرمز المميز. في حالة استخدام الكلمة الرئيسية كرمز مميز، يكون النمط عبارة عن سلسلة من الأحرف.
محلل معجمي Architecture: كيف يتم التعرف على الرموز المميزة
تتمثل المهمة الرئيسية للتحليل المعجمي في قراءة أحرف الإدخال في الكود وإنتاج الرموز المميزة.
يقوم المحلل المعجمي بمسح الكود المصدري للبرنامج بالكامل. ويحدد كل رمز واحدا تلو الآخر. عادةً ما يتم استخدام الماسحات الضوئية لإنتاج الرموز المميزة فقط عندما يطلبها المحلل اللغوي. إليك كيفية عمل التعرف على الرموز المميزة في تصميم المترجم-
- "الحصول على الرمز المميز التالي" هو أمر يتم إرساله من المحلل اللغوي إلى المحلل المعجمي.
- عند تلقي هذا الأمر، يقوم المحلل المعجمي بمسح الإدخال حتى يجد الرمز المميز التالي.
- يقوم بإرجاع الرمز المميز إلى المحلل اللغوي.
يتخطى Lexical Analyzer المسافات البيضاء والتعليقات أثناء إنشاء هذه الرموز المميزة. في حالة وجود أي خطأ، سيقوم المحلل المعجمي بربط هذا الخطأ بالملف المصدر ورقم السطر.
أدوار المحلل المعجمي
يقوم المحلل المعجمي بتنفيذ المهام المحددة أدناه:
- يساعد على تحديد الرمز المميز في جدول الرموز
- إزالة المسافات البيضاء والتعليقات من البرنامج المصدر
- يربط رسائل الخطأ بالبرنامج المصدر
- يساعدك على توسيع وحدات الماكرو إذا كانت موجودة في البرنامج المصدر
- قراءة أحرف الإدخال من البرنامج المصدر
مثال على التحليل المعجمي، الرموز، غير الرموز
ضع في اعتبارك الكود التالي الذي يتم إدخاله إلى Lexical Analyzer
#include <stdio.h> int maximum(int x, int y) { // This will compare 2 numbers if (x > y) return x; else { return y; } }
أمثلة على الرموز التي تم إنشاؤها
معجم | رمز |
---|---|
مادبا | البحث عن كلمة |
أقصى | تحديد |
( | المُشغل |
مادبا | البحث عن كلمة |
x | تحديد |
, | المُشغل |
مادبا | البحث عن كلمة |
Y | تحديد |
) | المُشغل |
{ | المُشغل |
If | البحث عن كلمة |
أمثلة على غير الرموز
النوع | أمثلة |
---|---|
كيف | //سيتم مقارنة رقمين |
التوجيه المعالج | #يشمل |
التوجيه المعالج | #تعريف الأعداد 8,9 |
الماكرو | نمس |
بيضاء | / ن / ب / ر |
الأخطاء المعجمية
يعد تسلسل الأحرف الذي لا يمكن مسحه ضوئيًا إلى أي رمز مميز صالح بمثابة خطأ معجمي. حقائق مهمة عن الخطأ المعجمي:
- الأخطاء المعجمية ليست شائعة جدًا، ولكن يجب إدارتها بواسطة الماسح الضوئي
- تعتبر الأخطاء الإملائية في المعرفات والعوامل والكلمات الأساسية أخطاء معجمية
- بشكل عام، يحدث الخطأ المعجمي بسبب ظهور بعض الأحرف غير القانونية، غالبًا في بداية الرمز المميز.
استرداد الخطأ في المحلل المعجمي
فيما يلي بعض تقنيات استرداد الأخطاء الأكثر شيوعًا:
- إزالة حرف واحد من الإدخال المتبقي
- في وضع الذعر، يتم دائمًا تجاهل الأحرف المتعاقبة حتى نصل إلى رمز مميز جيد التكوين
- عن طريق إدخال الحرف المفقود في الإدخال المتبقي
- استبدال حرف بحرف آخر
- تبديل حرفين تسلسليين
محلل معجمي مقابل محلل
محلل معجمي | محلل |
---|---|
برنامج مسح الإدخال | إجراء تحليل بناء الجملة |
تحديد الرموز | إنشاء تمثيل مجردة من التعليمات البرمجية |
أدخل الرموز المميزة في جدول الرموز | تحديث إدخالات جدول الرموز |
يولد أخطاء معجمية | يقوم بإنشاء شجرة تحليل للكود المصدري |
لماذا فصل المعجمي والمحلل؟
- بساطة التصميم: فهو يسهل عملية التحليل المعجمي وتحليل بناء الجملة عن طريق إزالة الرموز غير المرغوب فيها
- لتحسين كفاءة المترجم: يساعدك على تحسين كفاءة المترجم
- التخصص: يمكن تطبيق تقنيات متخصصة لتحسين عملية التحليل المعجمي
- قابلية النقل: الماسح الضوئي فقط هو الذي يتطلب التواصل مع العالم الخارجي
- قابلية نقل أعلى: الخصائص الخاصة بجهاز الإدخال تقتصر على المعجم
مزايا التحليل المعجمي
- يتم استخدام طريقة المحلل المعجمي بواسطة برامج مثل المترجمين الذين يمكنهم استخدام البيانات المحللة من كود المبرمج لإنشاء كود ثنائي قابل للتنفيذ
- يتم استخدامه بواسطة متصفحات الويب لتنسيق صفحة الويب وعرضها بمساعدة البيانات التي تم تحليلها من جافا سكريبت، HTML، CSS
- يساعدك محلل معجمي منفصل على إنشاء معالج متخصص وربما أكثر كفاءة لهذه المهمة
مساوئ التحليل المعجمي
- تحتاج إلى قضاء وقت كبير في قراءة البرنامج المصدر وتقسيمه على شكل رموز مميزة
- يصعب فهم بعض التعبيرات العادية مقارنةً بقواعد PEG أو EBNF
- هناك حاجة إلى مزيد من الجهد لتطوير وتصحيح المعجم وأوصاف الرمز المميز الخاص به
- مطلوب حمل إضافي لوقت التشغيل لإنشاء جداول المعجم وإنشاء الرموز المميزة
الملخص
- التحليل المعجمي هو المرحلة الأولى في تصميم المترجم
- المعجم والرموز هي تسلسل الأحرف المضمنة في البرنامج المصدر وفقًا لنمط المطابقة للرمز المميز
- يتم تطبيق المحلل المعجمي لمسح الكود المصدري للبرنامج بالكامل
- يساعد المحلل المعجمي على تحديد الرمز المميز في جدول الرموز
- يعد تسلسل الأحرف الذي لا يمكن مسحه ضوئيًا إلى أي رمز مميز صالح بمثابة خطأ معجمي
- تعد إزالة حرف واحد من الإدخال المتبقي طريقة مفيدة لاستعادة الأخطاء
- يقوم المحلل المعجمي بفحص برنامج الإدخال بينما يقوم المحلل اللغوي بإجراء تحليل بناء الجملة
- إنه يسهل عملية التحليل المعجمي وتحليل بناء الجملة عن طريق إزالة الرموز غير المرغوب فيها
- يتم استخدام المحلل المعجمي بواسطة متصفحات الويب لتنسيق صفحة الويب وعرضها بمساعدة البيانات المحللة من JavsScript وHTML وCSS
- أكبر عيب في استخدام محلل المعجم هو أنه يحتاج إلى وقت تشغيل إضافي مطلوب لإنشاء جداول المعجم وإنشاء الرموز المميزة