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

لماذا تحتاج إلى محلل بناء الجملة؟
- تحقق مما إذا كان الرمز صالحًا نحويًا
- يساعدك المحلل النحوي على تطبيق القواعد على الكود
- يساعدك على التأكد من أن كل قوس افتتاحي له رصيد إغلاق مطابق
- كل إعلان له نوع ويجب أن يكون النوع موجودا
مصطلحات محلل بناء الجملة الهامة
المصطلحات الهامة المستخدمة في عملية تحليل بناء الجملة:
- جملة او حكم على: الجملة عبارة عن مجموعة من الأحرف فوق بعض الحروف الأبجدية.
- ليكسيم: المعجم هو الوحدة النحوية ذات المستوى الأدنى في اللغة (على سبيل المثال، الإجمالي، البداية).
- رمز: الرمز المميز هو مجرد فئة من المعجمات.
- الكلمات الرئيسية والكلمات المحجوزة - هو معرف يستخدم كجزء ثابت من بناء جملة البيان. إنها كلمة محجوزة ولا يمكنك استخدامها كاسم أو معرف متغير.
- كلمات الضوضاء - الكلمات الضوضاء اختيارية والتي يتم إدراجها في عبارة لتعزيز سهولة قراءة الجملة.
- التعليقات - إنه جزء مهم جدًا من التوثيق. يتم عرضه في الغالب حسب، /* */، أو // فارغ (مسافات)
- المحددات - هو عنصر نحوي يمثل بداية أو نهاية بعض الوحدات النحوية. مثل عبارة أو تعبير، "تبدأ"..."نهاية"، أو {}.
- مجموعة الأحرف - أسكي، يونيكود
- معرفات – وهي قيود على الطول مما يساعدك على تقليل سهولة قراءة الجملة.
- Operaرموز تور – + و – ينفذان عمليتين حسابيتين أساسيتين.
- العناصر النحوية للغة
لماذا نحتاج إلى التحليل؟
يتحقق التحليل أيضًا من أن سلسلة الإدخال جيدة التكوين، وإذا لم تكن كذلك، فسيتم رفضها.
فيما يلي المهام الهامة التي يقوم بها المحلل في تصميم المترجم:
- يساعدك على اكتشاف جميع أنواع الأخطاء النحوية
- ابحث عن الموضع الذي حدث فيه الخطأ
- وصف واضح ودقيق للخطأ.
- التعافي من الخطأ للمتابعة والعثور على المزيد من الأخطاء في الكود.
- لا ينبغي أن يؤثر على تجميع البرامج "الصحيحة".
- يجب أن يرفض التحليل النصوص غير الصالحة عن طريق الإبلاغ عن الأخطاء النحوية
تقنيات التحليل
تنقسم تقنيات التحليل إلى مجموعتين مختلفتين:
- تحليل من أعلى إلى أسفل,
- الاعراب التصاعدي
تحليل من أعلى إلى أسفل
في عملية التحليل من أعلى إلى أسفل، يبدأ بناء شجرة التحليل من الجذر ثم يستمر نحو الأوراق.
هناك نوعان من التحليل من أعلى إلى أسفل هما:
- التحليل التنبؤي:
يمكن للتحليل التنبئي التنبؤ بالإنتاج الذي يجب استخدامه لاستبدال سلسلة الإدخال المحددة. يستخدم المحلل التنبؤي نقطة النظر إلى الأمام، والتي تشير إلى رموز الإدخال التالية. التراجع ليس مشكلة في تقنية التحليل هذه. ومن المعروف باسم محلل LL (1).
- تحليل النسب العودية:
تقوم تقنية التحليل هذه بتحليل المدخلات بشكل متكرر لإنشاء شجرة تسبيح. وهو يتألف من عدة وظائف صغيرة، واحدة لكل غير طرفية في القواعد.
الاعراب التصاعدي
في التحليل من الأسفل إلى الأعلى في تصميم المترجم، يبدأ بناء شجرة التحليل بالجزء المتبقي، ثم يتم معالجتها باتجاه جذرها. ويطلق عليه أيضًا التحليل بالتحويل والاختزال. يتم إنشاء هذا النوع من التحليل في تصميم المترجم بمساعدة استخدام بعض أدوات البرمجيات.
خطأ – طرق الاسترداد
الأخطاء الشائعة التي تحدث أثناء التحليل في برامج النظام
- معجمي: اسم معرف مكتوب بشكل غير صحيح
- نحوي: قوس غير متوازن أو فاصلة منقوطة مفقودة
- دلالي: تعيين قيمة غير متوافقة
- منطقي: حلقة لا نهائية ورمز غير قابل للوصول
يجب أن يكون المحلل قادرًا على اكتشاف أي خطأ موجود في البرنامج والإبلاغ عنه. لذا، كلما حدث خطأ، يجب أن يكون المحلل قادرًا على التعامل معه ومواصلة تحليل المدخلات المتبقية. يمكن أن يحتوي البرنامج على الأنواع التالية من الأخطاء في مراحل مختلفة من عملية التجميع. هناك خمس طرق شائعة لاستعادة الأخطاء يمكن تنفيذها في المحلل
استعادة وضع البيان
- في حالة مواجهة المحلل لخطأ، فإنه يساعدك على اتخاذ الخطوات التصحيحية. وهذا يسمح لبقية المدخلات والحالات بالتحليل للأمام.
- على سبيل المثال، تأتي إضافة فاصلة منقوطة مفقودة في طريقة الاسترداد في وضع البيان. ومع ذلك، يجب على مصمم التحليل أن يكون حذرًا أثناء إجراء هذه التغييرات، لأن التصحيح الخاطئ قد يؤدي إلى حلقة لا نهائية.
انتعاش وضع الذعر
- في حالة مواجهة المحلل لخطأ، يتجاهل هذا الوضع بقية العبارة ولا يعالج الإدخال من الإدخال الخاطئ إلى الفاصل، مثل الفاصلة المنقوطة. هذه طريقة بسيطة لاسترداد الخطأ.
- في هذا النوع من طرق الاسترداد، يرفض المحلل رموز الإدخال واحدًا تلو الآخر حتى يتم العثور على مجموعة واحدة محددة من رموز المزامنة. تستخدم رموز المزامنة عادةً فواصل مثل أو.
استعادة مستوى العبارة
- يقوم المترجم بتصحيح البرنامج عن طريق إدراج الرموز المميزة أو حذفها. وهذا يسمح لها بمتابعة التحليل من حيث كانت. يقوم بإجراء التصحيح على المدخلات المتبقية. يمكنه استبدال بادئة الإدخال المتبقي ببعض السلاسل مما يساعد المحلل اللغوي على مواصلة العملية.
إنتاج الأخطاء
- يعمل استرداد إنتاج الأخطاء على توسيع قواعد اللغة التي تولد التراكيب الخاطئة. ثم يقوم المحلل بإجراء تشخيص للأخطاء حول هذا التراكيب.
التصحيح العالمي
- يجب على المترجم إجراء أقل عدد ممكن من التغييرات أثناء معالجة سلسلة إدخال غير صحيحة. نظرًا لسلسلة الإدخال غير الصحيحة a والقواعد النحوية c، ستبحث الخوارزميات عن شجرة تحليل لسلسلة ذات صلة b. مثل بعض عمليات الإدراج والحذف والتعديل التي يتم إجراؤها على الرموز المطلوبة لتحويل a إلى b، فإن ذلك يكون بأقل قدر ممكن.
قواعد
القواعد هي مجموعة من القواعد الهيكلية التي تصف اللغة. تحدد القواعد البنية لأي جملة. ويشير هذا المصطلح أيضًا إلى دراسة هذه القواعد، ويشمل هذا الملف الصرف وعلم الأصوات والنحو. وهو قادر على وصف العديد من تركيب الجملة لغات البرمجة.
قواعد النحو النحوي
- يجب أن يظهر الرمز غير الطرفي على يسار إنتاج واحد على الأقل
- لا ينبغي أبدًا عرض رمز الهدف على يمين::= لأي إنتاج
- تكون القاعدة متكررة إذا ظهرت LHS في RHS الخاصة بها
الاتفاقيات التوضيحية
يمكن الإشارة إلى رمز الاتفاقيات التدوينية عن طريق وضع العنصر بين قوسين مربعين. وهو عبارة عن تسلسل عشوائي من حالات العنصر والتي يمكن الإشارة إليها عن طريق وضع العنصر بين قوسين متبوعين برمز النجمة، { … }*.
وهو اختيار البديل الذي قد يستخدم الرمز ضمن القاعدة الواحدة. ويمكن وضعها بين قوسين ([،]) عند الحاجة.
هناك نوعان من الاتفاقيات الترميزية في المنطقة الطرفية وغير الطرفية
1- المحطات النهائية:
- الحروف الصغيرة في الأبجدية مثل a، b، c،
- Operaرموز تور مثل +،-، *، إلخ.
- رموز علامات الترقيم مثل الأقواس، والتجزئة، والفاصلة
- 0، 1، …، 9 أرقام
- سلاسل عريضة مثل id أو if، أي شيء يمثل رمزًا طرفيًا واحدًا
2.المحطات غير الطرفية:
- الحروف الكبيرة مثل A، B، C
- الأسماء المائلة الصغيرة: التعبير أو بعضه
سياق القواعد الحرة
CFG عبارة عن قواعد نحوية عودية يسارية تحتوي على إنتاج واحد على الأقل من النوع. القواعد في القواعد النحوية الخالية من السياق تكون متكررة بشكل أساسي. يقوم محلل بناء الجملة بالتحقق من أن برنامجًا معينًا يلبي جميع قواعد القواعد النحوية الخالية من السياق أم لا. إذا استوفيت هذه القواعد، فقد يقوم محللو بناء الجملة بإنشاء شجرة تحليل لهذا البرنامج.
expression -> expression -+ term expression -> expression – term expression-> term term -> term * factor term -> expression/ factor term -> factor factor factor -> ( expression ) factor -> id
الاشتقاق النحوي
الاشتقاق النحوي هو سلسلة من القواعد النحوية التي تحول رمز البداية إلى سلسلة. يثبت الاشتقاق أن السلسلة تنتمي إلى لغة القواعد.
أقصى اليسار الاشتقاق
عندما يتم مسح النموذج الجملي للإدخال واستبداله بالتسلسل من اليسار إلى اليمين، فإنه يُعرف باسم الاشتقاق في أقصى اليسار. تسمى الصيغة الجملية المشتقة من الاشتقاق الموجود في أقصى اليسار بصيغة الجملة اليسرى.
أقصى اليمين الاشتقاق
قم بمسح الاشتقاق الموجود في أقصى اليمين واستبدال المدخلات بقواعد الإنتاج، من اليمين إلى اليسار، بالتسلسل. يُعرف باسم الاشتقاق في أقصى اليمين. تُعرف الصيغة الجملية المشتقة من الاشتقاق الموجود في أقصى اليمين بصيغة الجملة اليمنى.
بناء الجملة مقابل محلل معجمي
محلل بناء الجملة | محلل معجمي |
---|---|
يتعامل محلل بناء الجملة بشكل أساسي مع التركيبات العودية للغة. | المحلل المعجمي يسهل مهمة محلل بناء الجملة. |
يعمل محلل بناء الجملة على الرموز المميزة في البرنامج المصدر للتعرف على الهياكل ذات المعنى في لغة البرمجة. | يتعرف المحلل المعجمي على الرمز المميز في البرنامج المصدر. |
يتلقى المدخلات، في شكل الرموز، من المحللين المعجميين. | وهي مسؤولة عن صلاحية الرمز المميز المقدم من قبل
محلل بناء الجملة |
عيوب استخدام محللي بناء الجملة
- لن يتم تحديد ما إذا كان الرمز المميز صالحًا أم لا
- لا يساعدك في تحديد ما إذا كانت العملية التي تم إجراؤها على نوع الرمز صالحة أم لا
- لا يمكنك أن تقرر الإعلان عن الرمز المميز وتهيئته قبل استخدامه
الملخص
- تحليل بناء الجملة هو المرحلة الثانية من عملية تصميم المترجم الذي يأتي بعد التحليل المعجمي
- يساعدك المحلل النحوي على تطبيق القواعد على الكود
- الجملة، المعجم، الرمز المميز، الكلمات الرئيسية والكلمات المحجوزة، كلمات الضوضاء، التعليقات، المحددات، مجموعة الأحرف، المعرفات هي بعض المصطلحات المهمة المستخدمة في تحليل بناء الجملة في بناء المترجم
- يتحقق التحليل من أن سلسلة الإدخال جيدة التكوين، وإذا لم تكن كذلك، قم برفضها
- تنقسم تقنيات التحليل إلى مجموعتين مختلفتين: التحليل من أعلى إلى أسفل، والتحليل من أسفل إلى أعلى
- المعجمية والنحوية والدلالية والمنطقية هي بعض الأخطاء الشائعة التي تحدث أثناء طريقة التحليل
- القواعد هي مجموعة من القواعد الهيكلية التي تصف اللغة
- يمكن الإشارة إلى رمز الاتفاقيات التدوينية عن طريق وضع العنصر بين قوسين مربعين
- CFG عبارة عن قواعد نحوية عودية يسارية تحتوي على إنتاج واحد على الأقل من النوع
- الاشتقاق النحوي هو سلسلة من القواعد النحوية التي تحول رمز البداية إلى سلسلة
- يتعامل محلل بناء الجملة بشكل أساسي مع التركيبات العودية للغة بينما يقوم المحلل المعجمي بتسهيل مهمة محلل بناء الجملة في DBMS
- عيب طريقة محلل بناء الجملة هو أنها لن تحدد أبدًا ما إذا كان الرمز المميز صالحًا أم لا