لغة خالية من السياق

في نظرية اللغة الرسمية ، اللغة الخالية من السياق ( CFL )، والتي تسمى أيضًا لغة تشومسكي من النوع 2 ، هي لغة يتم توليدها بواسطة قواعد نحوية خالية من السياق (CFG).

تتمتع اللغات الخالية من السياق بالعديد من التطبيقات في لغات البرمجة ، وعلى وجه الخصوص، يتم توليد معظم التعبيرات الحسابية بواسطة قواعد اللغة الخالية من السياق.

خلفية

قواعد اللغة الخالية من السياق

يمكن لقواعد نحوية مختلفة خالية من السياق أن تُنتج نفس اللغة الخالية من السياق. ويمكن التمييز بين الخصائص الجوهرية للغة والخصائص الخارجية لقاعدة نحوية معينة من خلال مقارنة قواعد نحوية متعددة تصف تلك اللغة.

الأوتوماتا

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

أمثلة

مثال على لغة خالية من السياق هوL={أنبن:ن1}{\displaystyle L=\{a^{n}b^{n}:n\geq 1\}}لغة جميع السلاسل غير الفارغة ذات الطول الزوجي، والتي يكون نصفها الأول بالكامل من النوع a ، ونصفها الثاني بالكامل من النوع b . يتم توليد L بواسطة القواعد النحويةSأSب | أب{\displaystyle S\to aSb~|~ab}هذه اللغة غير منتظمة. وهي مقبولة بواسطة آلة الدفع لأسفلم=({q0،q1،qو}،{أ،ب}،{أ،z}،دلتا،q0،z،{qو}){\textstyle M=(\{q_{0},q_{1},q_{f}\},\{a,b\},\{a,z\},\delta ,q_{0},z,\{q_{f}\})}أيندلتا{\displaystyle \delta }يُعرَّف على النحو التالي: [ ملاحظة 1 ]

دلتا(q0،أ،z)=(q0،أz)دلتا(q0،أ،أ)=(q0،أأ)دلتا(q0،ب،أ)=(q1،ε)دلتا(q1،ب،أ)=(q1،ε)دلتا(q1،ε،z)=(qو،ε)\begin{aligned}\delta (q_{0},a,z)&=(q_{0},az)\\\delta (q_{0},a,a)&=(q_{0},aa)\\\delta (q_{0},b,a)&=(q_{1},\varepsilon )\\\delta (q_{1},b,a)&=(q_{1},\varepsilon )\\\delta (q_{1},\varepsilon ,z)&=(q_{f},\varepsilon )\end{aligned}}}

تُعدّ اللغات الضبابية غير المبهمة مجموعة فرعية مناسبة من جميع اللغات الضبابية: فهناك لغات ضبابية بطبيعتها مبهمة. ومن أمثلة اللغات الضبابية بطبيعتها المبهمة اتحاد{أنبمجمدن|ن،م>0}{\displaystyle \{a^{n}b^{m}c^{m}d^{n}|n,m>0\}}مع{أنبنجمدم|ن،م>0}{\displaystyle \{a^{n}b^{n}c^{m}d^{m}|n,m>0\}}هذه المجموعة خالية من السياق، لأن اتحاد لغتين خاليتين من السياق ينتج عنه دائمًا لغة خالية من السياق. ولكن لا توجد طريقة لتحليل السلاسل النصية في المجموعة الفرعية (غير الخالية من السياق) بشكل لا لبس فيه.{أنبنجندن|ن>0}{\displaystyle \{a^{n}b^{n}c^{n}d^{n}|n>0\}}وهو ما يمثل نقطة التقاء هاتين اللغتين. [ 1 ]

لغة ديك

يتم توليد لغة جميع الأقواس المتطابقة بشكل صحيح بواسطة القواعد النحويةSSS | (S) | ε{\displaystyle S\to SS~|~(S)~|~\varepsilon }.

ملكيات

التحليل اللغوي الخالي من السياق

إن الطبيعة الخالية من السياق للغة تجعل من السهل تحليلها باستخدام آلة الدفع لأسفل.

تحديد حالة من حالات مشكلة الانتماء ؛ أي بالنظر إلى سلسلة نصيةw{\displaystyle w}، تحديد ما إذاwL(جي){\displaystyle w\in L(G)}أينL{\displaystyle L}هي اللغة التي تولدها قواعد نحوية معينةجي{\displaystyle G}يُعرف أيضًا باسم التعرف . وقد أثبت ليزلي جي. فاليانت أن التعرف الخالي من السياق لقواعد تشومسكي النحوية العادية قابل للاختزال إلى ضرب المصفوفات المنطقية ، وبالتالي يرث حده الأعلى للتعقيد O ( n².3728596 ). [ 2 ] [ ملاحظة 2 ] في المقابل، أثبتت ليليان لي أن ضرب المصفوفات المنطقية O ( - ε ) قابل للاختزال إلى تحليل قواعد اللغة الخالية من السياق O ( - 3ε )، وبالتالي تحديد حد أدنى لهذا الأخير. [ 3 ]

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

بصورة رسمية، فإن مجموعة جميع اللغات الخالية من السياق هي نفسها مجموعة اللغات التي تقبلها آلات الدفع لأسفل (PDA). تشمل خوارزميات التحليل اللغوي للغات الخالية من السياق خوارزمية CYK وخوارزمية إيرلي .

تُعتبر اللغات الخالية من السياق الحتمية فئة فرعية خاصة من اللغات الخالية من السياق ، وهي تُعرف بأنها مجموعة اللغات التي يقبلها جهاز دفع حتمي ويمكن تحليلها بواسطة محلل LR(k) . [ 4 ]

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

خصائص الإغلاق

تُعتبر فئة اللغات الخالية من السياق مغلقةً تحت العمليات التالية. أي، إذا كانت اللغتان L و P خاليتين من السياق، فإن اللغات التالية خالية من السياق أيضاً:

عدم الانغلاق تحت التقاطع، والمكمل، والفرق

اللغات الخالية من السياق ليست مغلقة تحت التقاطع. ويمكن ملاحظة ذلك من خلال أخذ اللغاتأ={أنبنجم|م،ن0}{\displaystyle A=\{a^{n}b^{n}c^{m}\mid m,n\geq 0\}}وب={أمبنجن|م،ن0}{\displaystyle B=\{a^{m}b^{n}c^{n}\mid m,n\geq 0\}}وكلاهما خالٍ من السياق. [ ملاحظة 3 ] تقاطعهما هوأب={أنبنجن|ن0}{\displaystyle A\cap B=\{a^{n}b^{n}c^{n}\mid n\geq 0\}}ويمكن إثبات أن هذه اللغة غير خالية من السياق باستخدام مبرهنة الضخ للغات الخالية من السياق . ونتيجة لذلك، لا يمكن إغلاق اللغات الخالية من السياق تحت عملية التتميم، لأنه بالنسبة لأي لغتين A و B ، يمكن التعبير عن تقاطعهما بالاتحاد والتتميم. أب=أ¯ب¯¯{\displaystyle A\cap B={\overline {{\overline {A}}\cup {\overline {B}}}}}. على وجه الخصوص، لا يمكن إغلاق اللغة الخالية من السياق تحت الفرق، حيث يمكن التعبير عن المكمل بالفرق:L¯=Σ*L{\displaystyle {\overline {L}}=\Sigma ^{*}\setminus L}[ 12 ]

لكن إذا كانت L لغة خالية من السياق و D لغة منتظمة، فإن تقاطعهماLد{\displaystyle L\cap D}واختلافهماLد{\displaystyle L\setminus D}هي لغات خالية من السياق. [ 13 ]

قرر

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

المسائل التالية غير قابلة للحل بالنسبة لقواعد اللغة الخالية من السياق المعطاة بشكل تعسفي A و B:

  • التكافؤ: هوL(أ)=L(ب){\displaystyle L(A)=L(B)}؟ [ 14 ]
  • الانفصال: هوL(أ)L(ب)={\displaystyle L(A)\cap L(B)=\emptyset } ? [ 15 ] ومع ذلك، فإن تقاطع لغة خالية من السياق ولغة منتظمة هو لغة خالية من السياق، [ 16 ] [ 17 ] وبالتالي فإن متغير المشكلة حيث B هي قواعد منتظمة قابل للتقرير (انظر "الفراغ" أدناه).
  • الاحتواء: هوL(أ)L(ب){\displaystyle L(A)\subseteq L(B)} [ 18 ] مرة أخرى، يمكن حل صيغة المشكلة التي تكون فيها B قواعد منتظمة، بينما لا يمكن حل الصيغة التي تكون فيها A قواعد منتظمة بشكل عام . [ 19 ]
  • العالمية: هيL(أ)=Σ*{\displaystyle L(A)=\Sigma ^{*}}؟ [ 20 ]
  • الانتظام: هوL(أ){\displaystyle L(A)}لغة منتظمة؟ [ 21 ]
  • الغموض: هل كل قواعد اللغة لـL(أ){\displaystyle L(A)}غامض؟ [ 22 ]

يمكن حل المشكلات التالية للغات الخالية من السياق بشكل عشوائي:

  • الفراغ: بالنظر إلى قواعد نحوية خالية من السياق A ، يكونL(أ)={\displaystyle L(A)=\emptyset } ؟ [ 23 ]
  • التناهي: بالنظر إلى قواعد نحوية خالية من السياق A ، هلL(أ){\displaystyle L(A)}محدود؟ [ 24 ]
  • العضوية: بالنظر إلى قواعد نحوية خالية من السياق G ، وكلمةw{\displaystyle w}، يفعلwL(جي){\displaystyle w\in L(G)} تُعد خوارزمية CYK وخوارزمية إيرلي من الخوارزميات الفعالة ذات الوقت متعدد الحدود لحل مشكلة العضوية .

وفقًا لهوبكروفت ، وموتواني ، وأولمان (2006)، [ 25 ] فقد تم عرض العديد من خصائص الإغلاق الأساسية وعدم قابلية الحسم للغات الخالية من السياق في ورقة بار-هيلل ، وبيرلز، وشامير عام 1961. [ 26 ]

اللغات التي لا تعتمد على السياق

المجموعة{أنبنجندن|ن>0}{\displaystyle \{a^{n}b^{n}c^{n}d^{n}|n>0\}}هي لغة حساسة للسياق ، ولكن لا توجد قواعد نحوية خالية من السياق تولد هذه اللغة. [ 27 ] لذا، توجد لغات حساسة للسياق ليست خالية من السياق. لإثبات أن لغة معينة ليست خالية من السياق، يمكن استخدام مبرهنة الضخ للغات الخالية من السياق [ 26 ] أو عدد من الطرق الأخرى، مثل مبرهنة أوجدن أو نظرية باريك . [ 28 ]

ملحوظات

  1. معنىدلتا{\displaystyle \delta }حجج ونتائج:دلتا(sتأتهـ1،رهـأد،صoص)=(sتأتهـ2،صusح){\displaystyle \delta (\mathrm {state} _{1},\mathrm {read} ,\mathrm {pop} )=(\mathrm {state} _{2},\mathrm {push} )}
  2. في ورقة فاليانت، كان O ( n 2.81 ) هو الحد الأعلى الأفضل المعروف آنذاك. انظر ضرب المصفوفات#التعقيد الحسابي للاطلاع على تحسينات الحدود منذ ذلك الحين.
  3. تُعطىقواعد اللغة الخالية من السياق للغة A بقواعد الإنتاج التالية، مع اعتبار S رمز البداية: S Sc | aTb | ε ; T aTb | ε . قواعد اللغة B مماثلة.

مراجع

  1. هوبكروفت وأولمان 1979 ، ص. 100، النظرية 4.7.
  2. فاليانت 1975 .
  3. لي 2002 .
  4. كنوت 1965 .
  5. 1 2 3 Hopcroft & Ullman 1979 ، ص. 131 ، نتيجة النظرية 6.1.
  6. هوبكروفت وأولمان 1979 ، ص 142، التمرين 6.4د.
  7. هوبكروفت وأولمان 1979 ، ص 131-132، نتيجة النظرية 6.2.
  8. هوبكروفت وأولمان 1979 ، ص 132، النظرية 6.3.
  9. هوبكروفت وأولمان 1979 ، ص 142-144، التمرين 6.4 ج.
  10. هوبكروفت وأولمان 1979 ، ص 142، التمرين 6.4ب.
  11. هوبكروفت وأولمان 1979 ، ص 142، التمرين 6.4أ.
  12. شاينبرغ 1960 .
  13. بيجل وجاسارش .
  14. Hopcroft & Ullman 1979 ، ص. 203 ، النظرية 8.12 (1).
  15. هوبكروفت وأولمان 1979 ، ص. 202، النظرية 8.10.
  16. ^ سالوما 1973 ، ص. 59، نظرية 6.7.
  17. هوبكروفت وأولمان 1979 ، ص 135، النظرية 6.5.
  18. Hopcroft & Ullman 1979 ، ص. 203 ، النظرية 8.12 (2).
  19. هوبكروفت وأولمان 1979 ، ص. 203، النظرية 8.12(4).
  20. هوبكروفت وأولمان 1979 ، ص 203، النظرية 8.11.
  21. هوبكروفت وأولمان 1979 ، ص 205، النظرية 8.15.
  22. هوبكروفت وأولمان 1979 ، ص 206، النظرية 8.16.
  23. هوبكروفت وأولمان 1979 ، ص. 137، النظرية 6.6 (أ).
  24. هوبكروفت وأولمان 1979 ، ص. 137، النظرية 6.6 (ب).
  25. 1 2 بار هليل، بيرلس وشامير 1961 .
  26. هوبكروفت وأولمان 1979 .
  27. موقع Stack Exchange. "كيف تثبت أن اللغة ليست خالية من السياق؟ "

المراجع

للمزيد من القراءة