قواعد الأسبقية البسيطة
في علم الحاسوب ، تُعرَّف قواعد الأسبقية البسيطة بأنها قواعد نحوية رسمية خالية من السياق ، يمكن تحليلها باستخدام محلل أسبقية بسيط . [ 1 ] طُوِّر هذا المفهوم لأول مرة عام 1964 على يد كلود بير ، [ 2 ] ثم أُعيد اكتشافه لاحقًا، انطلاقًا من أفكار روبرت فلويد ، على يد نيكلاوس ويرث وهيلموت ويبر اللذين نشرا ورقة بحثية بعنوان "أويلر: تعميم للغة ألغول، وتعريفها الرسمي" ، نُشرت عام 1966 في مجلة اتصالات رابطة مكائن الحوسبة . [ 3 ]
التعريف الرسمي
G = ( N , Σ, P , S ) هي قواعد أسبقية بسيطة إذا كانت جميع قواعد الإنتاج في P تتوافق مع القيود التالية:
- لا توجد قواعد للمحو (إنتاجات إبسيلون)
- لا توجد قواعد عديمة الفائدة (رموز لا يمكن الوصول إليها أو قواعد غير منتجة)
- لكل زوج من الرموز X و Y ( X , Y( N ∪ Σ)) هناك علاقة أسبقية واحدة فقط لـ Wirth–Weber .
- G قابلة للانعكاس بشكل فريد
أمثلة
- جدول الأسبقية
محلل أسبقية بسيط
محلل الأسبقية البسيط هو نوع من المحللات التصاعدية لقواعد اللغة الخالية من السياق والتي لا يمكن استخدامها إلا بواسطة قواعد اللغة البسيطة للأسبقية .
يُشابه تنفيذ المحلل النحوي إلى حد كبير المحلل النحوي التصاعدي العام . تُستخدم مكدسة لتخزين بادئة صالحة لصيغة جملة من اشتقاق أقصى اليمين . تُستخدم الرموز ⋖ و ≐ و ⋗ لتحديد المحور ، ولمعرفة متى يتم الإزاحة أو الاختزال .
تطبيق
- احسب جدول علاقات أسبقية ويرث-ويبر لقواعد نحوية ذات رمز ابتدائي S.
- قم بتهيئة مكدس باستخدام علامة البداية $.
- أضف علامة نهاية $ إلى السلسلة التي يتم تحليلها ( المدخلات ).
- حتى يصبح Stack يساوي "$ S" ويصبح Input يساوي "$"
- ابحث في الجدول عن العلاقة بين Top(stack) و NextToken(Input)
- إذا كانت العلاقة ⋖ أو ≐
- يحول :
- دفع (المكدس، العلاقة)
- دفع (المكدس، الرمز التالي (الإدخال))
- RemoveNextToken(Input)
- إذا كانت العلاقة ⋗
- يقلل :
- SearchProductionToReduce(Stack)
- قم بإزالة المحور من المكدس
- ابحث في الجدول عن العلاقة بين الرمز غير الطرفي من قاعدة الإنتاج وأول رمز في المكدس (بدءًا من الأعلى)
- دفع (المكدس، العلاقة)
- دفع (المكدس، غير طرفي)
SearchProductionToReduce (Stack)
- ابحث عن الرمز ⋖ العلوي في المكدس؛ هذا الرمز وجميع الرموز التي تعلوه هي المحور .
- أوجد قاعدة الإنتاج للقواعد النحوية التي يكون فيها المحور هو الجانب الأيمن.
مثال
بافتراض وجود لغة برمجة، يمكنها تحليل التعبيرات الحسابية التي تتضمن عمليات الضرب والجمع:
E --> E + T' | T' تي --> تي ص --> ص * خ | خ F --> ( E' ) | رقم E' --> E
num هو رمز طرفي، ويقوم المحلل اللغوي بتحليل أي عدد صحيح على أنه num ؛ يمثل E تعبيرًا حسابيًا، وT هو حد و F هو عامل.
وجدول التحليل:
| هـ | إي | تي | تي | F | + | * | ( | ) | رقم | دولار | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| هـ | ≐ | ⋗ | |||||||||
| إي | ≐ | ||||||||||
| تي | ⋗ | ≐ | ⋗ | ⋗ | |||||||
| تي | ⋗ | ⋗ | ⋗ | ||||||||
| F | ⋗ | ⋗ | ⋗ | ⋗ | |||||||
| + | ⋖ | ≐ | ⋖ | ⋖ | ⋖ | ||||||
| * | ≐ | ⋖ | ⋖ | ||||||||
| ( | ⋖ | ≐ | ⋖ | ⋖ | ⋖ | ⋖ | ⋖ | ||||
| ) | ⋗ | ⋗ | ⋗ | ⋗ | |||||||
| رقم | ⋗ | ⋗ | ⋗ | ⋗ | |||||||
| دولار | ⋖ | ⋖ | ⋖ | ⋖ | ⋖ | ⋖ |
| كومة | أسبقية | مدخل | فعل |
|---|---|---|---|
| دولار | ⋖ | 2 * ( 1 + 3 )$ | يحول |
| ⋖ 2 دولار | ⋗ | * ( 1 + 3 )$ | REDUCE (F -> num) |
| $ ⋖ F | ⋗ | * ( 1 + 3 )$ | تقليل (صحيح -> خطأ) |
| $ ⋖ T | ≐ | * ( 1 + 3 )$ | يحول |
| $ ⋖ T ≐ * | ⋖ | (1 + 3)$ | يحول |
| $ ⋖ T ≐ * ⋖ ( | ⋖ | 1 + 3 )$ | يحول |
| $ ⋖ T ≐ * ⋖ ( ⋖ 1 | ⋗ | + 3 )$ | REDUCE 4× (F -> num) (T -> F) (T' -> T) (E ->T ') |
| $ ⋖ T ≐ * ⋖ ( ⋖ E | ≐ | + 3 )$ | يحول |
| $ ⋖ T ≐ * ⋖ ( ⋖ E ≐ + | ⋖ | 3)$ | يحول |
| $ ⋖ T ≐ * ⋖ ( ⋖ E ≐ + < 3 | ⋗ | )$ | REDUCE 3× (F -> num) (T -> F) (T' -> T) |
| $ ⋖ T ≐ * ⋖ ( ⋖ E ≐ + ≐ T | ⋗ | )$ | تقليل 2× (E -> E + T) (E' -> E) |
| $ ⋖ T ≐ * ⋖ ( ≐ E' | ≐ | )$ | يحول |
| $ ⋖ T ≐ * ⋖ ( ≐ E' ≐ ) | ⋗ | دولار | REDUCE (F -> ( E' )) |
| $ ⋖ T ≐ * ≐ F | ⋗ | دولار | REDUCE (T -> T * F) |
| $ ⋖ T | ⋗ | دولار | REDUCE 2× (T' -> T) (E -> T') |
| $ ⋖ E | دولار | يقبل |
علاقة الأسبقية بين ويرث وويبر
في علم الحاسوب ، توجد علاقة ويرث-ويبر بين زوج من الرموزمن الضروري تحديد ما إذا كانت القواعد النحوية الرسمية قواعد أسبقية بسيطة . في هذه الحالة، يمكن استخدام محلل الأسبقية البسيط . سُميت هذه العلاقة نسبةً إلى عالمي الحاسوب نيكلاوس ويرث وهيلموت ويبر.
الهدف هو تحديد متى تكون البادئات القابلة للاستخدام هي المحور ، ومتى يجب تقليصها.وهذا يعني أنه تم العثور على نقطة الارتكاز ،هذا يعني أن تحولاً محتملاً قد بدأ، ويعني ذلك أن العلاقة تبقى في نفس المحور .
التعريف الرسمي
خوارزمية حساب علاقات الأسبقية
سنحدد ثلاث مجموعات للرمز:
- Head * ( X ) هي X إذا كان X رمزًا طرفيًا، وإذا كان X رمزًا غير طرفي، فإن Head * ( X ) هي المجموعة التي تضم الرموز الطرفية فقط التي تنتمي إلى Head + ( X ). هذه المجموعة مكافئة للمجموعة الأولى أو Fi( X ) الموصوفة في محلل LL .
- الرأس + ( X ) والذيل + ( X ) يكونان ∅ إذا كان X طرفيًا.
الشفرة الزائفة لحساب العلاقات هي:
- RelationTable := ∅
- لكل إنتاج
- لكل رمزين متجاورين XY في α
- أضف (جدول العلاقات،)
- أضف (جدول العلاقات،)
- أضف (جدول العلاقات،)
- لكل رمزين متجاورين XY في α
- أضف (جدول العلاقات،) حيث S هو الحرف غير الطرفي الأولي للقواعد، و$ هو علامة حد
- أضف (جدول العلاقات،) حيث S هو الحرف غير الطرفي الأولي للقواعد، و$ هو علامة حد
- ويتم استخدامها مع المجموعات بدلاً من العناصر كما تم تعريفها، وفي هذه الحالة يجب عليك إضافة جميع الضرب الديكارتي بين المجموعات/العناصر.
المثال 1
- الرأس + ( أ ) = ∅
- الرأس + ( S ) = { a, c }
- الرأس + ( ب ) = ∅
- الرأس + ( ج ) = ∅
- الذيل + ( أ ) = ∅
- الذيل + ( S ) = { b, c }
- الذيل + ( ب ) = ∅
- الذيل + ( ج ) = ∅
- الرأس * ( أ ) = أ
- Head * ( S ) = { a, c }
- الرأس * ( ب ) = ب
- الرأس * ( ج ) = ج
- أ بجوار S
- S بجوار S
- S بجوار b
- أ بجوار S
- يوجد رمز واحد فقط، لذلك لا تتم إضافة أي علاقة.
- جدول الأسبقية
المثال 2
- الرأس + ( S ) = { a, [ }
- الرأس + ( أ ) = ∅
- الرأس + ( T ) = { b }
- الرأس + ( [ ) = ∅
- الرأس + ( ] ) = ∅
- الرأس + ( ب ) = ∅
- الذيل + ( S ) = { a, T, ], b }
- الذيل + ( أ ) = ∅
- الذيل + ( T ) = { b, T }
- الذيل + ( [ ) = ∅
- الذيل + ( ] ) = ∅
- الذيل + ( ب ) = ∅
- Head * ( S ) = { a, [ }
- الرأس * ( أ ) = أ
- الرأس * ( T ) = { b }
- الرأس * ( [ ) = [
- الرأس * ( ] ) = ]
- الرأس * ( ب ) = ب
- أ بجوار تي
- أ بجوار تي
- [ بجوار S]
- [ بجوار S]
- S بجوار ]
- S بجوار ]
- ب بجوار تي
- ب بجوار تي
- جدول الأسبقية
ملحوظات
- ↑ نظرية التحليل والترجمة والتجميع: التجميع، ألفريد ف. أهو، جيفري د. أولمان، برنتيس هول، 1972.
- ^ كلود بير (1964). “Arbres، أكوام وتجميع”. Revue française de سمة المعلومات .الأشجار، والمجموعات، والتجميع باللغة الإنجليزية
- ↑ الآلات واللغات والحوسبة ، برنتيس هول ، 1978، رقم ISBN 9780135422588قام ويرث
وويبر [1966] بتعميم قواعد الأسبقية لفلويد، وحصلا على قواعد الأسبقية البسيطة.
مراجع
- ألفريد ف. أهو، جيفري د. أولمان (1977). مبادئ تصميم المترجمات . الطبعة الأولى. أديسون-ويسلي.
- ويليام أ. باريت، جون د. كوتش (1979). بناء المترجمات: النظرية والتطبيق . جمعية باحثي العلوم.
- جان بول تريمبلاي، بي جي سورنسون (1985). نظرية وممارسة كتابة المترجمات . ماكجرو هيل.
للمزيد من القراءة
- أهو، ألفريد ف.؛ أولمان، جيفري د.، نظرية التحليل والترجمة والتجميع
روابط خارجية
- "علاقات الأسبقية البسيطة" في جامعة كليمسون
- اللغات الرسمية
