قواعد الإسناد

قواعد السمات هي طريقة رسمية لتكملة القواعد الرسمية بمعالجة المعلومات الدلالية. تُخزَّن المعلومات الدلالية في سمات مرتبطة بالرموز الطرفية وغير الطرفية للقواعد. وتُستمد قيم السمات من قواعد تقييم السمات المرتبطة بقواعد الإنتاج في القواعد. تسمح السمات بنقل المعلومات من أي مكان في شجرة بناء الجملة المجردة إلى أي مكان آخر، بطريقة مُتحكَّم بها ورسمية. [ 1 ]

تتعامل كل دالة دلالية مع سمات الرموز التي تظهر في قاعدة إنتاج واحدة فقط: فكل من معلمات الدالة الدلالية ونتيجتها تمثل سمات رموز من قاعدة معينة. عندما تُعرّف دالة دلالية قيمة سمة رمز على الجانب الأيسر من القاعدة، تُسمى هذه السمة "مُركّبة" ؛ وإلا تُسمى " موروثة" . [ 2 ] بالتالي، تُستخدم السمات المُركّبة لنقل المعلومات الدلالية إلى أعلى شجرة التحليل، بينما تسمح السمات الموروثة بنقل القيم من العقد الأصلية إلى أسفل شجرة بناء الجملة وعبرها.

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

تاريخ

ابتكر دونالد كنوث وبيتر فيجنر قواعد السمات . [ 3 ] وبينما يُنسب الفضل في المفهوم العام إلى دونالد كنوث، فقد ابتكر بيتر فيجنر السمات الموروثة خلال محادثة مع كنوث. وتعود بعض الأفكار الأولية [ 3 ] إلى عمل إدغار تي. "نيد" آيرونز، [ 4 ] مؤلف كتاب IMP .

مثال

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

تعبير تعبير + حد تعبير حد حد حد * عامل حد عامل عامل " (" تعبير ")" عامل عدد صحيح

يمكن استخدام قواعد السمات التالية لحساب نتيجة تعبير مكتوب بهذه القواعد. لاحظ أن هذه القواعد تستخدم قيمًا مُصنّعة فقط، ولذلك فهي قواعد سمات من النوع S.

التعبير 1التعبير 2 + الحد [ قيمة التعبير 1 = قيمة التعبير 2 + قيمة الحد ] التعبير الحد [ قيمة التعبير = قيمة الحد ] الحد 1الحد 2 * العامل [ قيمة الحد 1 = قيمة الحد 2 * قيمة العامل ] الحد العامل [ قيمة الحد = قيمة العامل ] العامل  "(" التعبير ")" [ قيمة العامل = قيمة التعبير ] العامل عدد صحيح [ قيمة العامل = strToInt( العدد الصحيح .str)]

السمات المركبة

تُحسب السمة المُركّبة من قيم سمات العناصر الفرعية. وبما أنه يجب حساب قيم العناصر الفرعية أولاً، فهذا مثال على الانتشار التصاعدي. [ 5 ] لتعريف السمة المُركّبة تعريفًا رسميًا، لنفترضجي=Vن،Vت،P،S{\displaystyle G=\langle V_{n},V_{t},P,S\rangle }أن تكون قواعد نحوية رسمية، حيث

  • Vن{\displaystyle V_{n}}هي مجموعة الرموز غير الطرفية
  • Vت{\displaystyle V_{t}}هي مجموعة الرموز الطرفية
  • P{\displaystyle P}هي مجموعة الإنتاجات
  • S{\displaystyle S}هو الرمز المميز، أو رمز البداية

ثم، بالنظر إلى سلسلة من الرموز غير الطرفيةأ{\displaystyle A}واسم السمةأ{\displaystyle a}،أ.أ{\displaystyle Aa}تُعتبر سمة مركبة إذا تحققت الشروط الثلاثة التالية:

  • (أα)P{\displaystyle (A\rightarrow \alpha )\in P}(أيأα{\displaystyle A\rightarrow \alpha }(وهي إحدى قواعد النحو)
  • α=α1...αن،أنا،1أنان:αأنا(VنVت){\displaystyle \alpha =\alpha _{1}\ldots \alpha _{n},\forall i,1\leq i\leq n:\alpha _{i}\in (V_{n}\cup V_{t})}(أي أن كل رمز في متن القاعدة إما غير طرفي أو طرفي)
  • أ.أ=و(αج1.أ1،...،αجم.أم){\displaystyle Aa=f(\alpha _{j_{1}}.a_{1},\ldots ,\alpha _{j_{m}}.a_{m})}، أين{αج1،...،αجم}{α1،...،αن}{\displaystyle \{\alpha _{j_{1}},\ldots ,\alpha _{j_{m}}\}\subseteq \{\alpha _{1},\ldots ,\alpha _{n}\}}(أي أن قيمة السمة هي دالة)و{\displaystyle f}(مطبق على بعض القيم من الرموز الموجودة في متن القاعدة)

السمات الموروثة

تُعرَّف السمة الموروثة في عقدةٍ ما في شجرة التحليل باستخدام قيم السمات في العقدة الأب أو العقد الشقيقة. تُعدّ السمات الموروثة ملائمةً للتعبير عن اعتماد بنية لغة البرمجة على السياق الذي تظهر فيه. على سبيل المثال، يُمكننا استخدام سمة موروثة لتتبُّع ما إذا كان مُعرِّفٌ ما يظهر على الجانب الأيسر أو الأيمن من عملية إسناد، وذلك لتحديد ما إذا كان عنوان المُعرِّف أو قيمته هو المطلوب. على عكس السمات المُصنَّعة، يُمكن للسمات الموروثة أن تأخذ قيمًا من العقدة الأب و/أو العقد الشقيقة. كما في المثال التالي،

S → ABC

حيث يمكن لـ A أن تحصل على قيم من S و B و C. ويمكن لـ B أن تأخذ قيمًا من S و A و C. وبالمثل، يمكن لـ C أن تأخذ قيمًا من S و A و B.

أنواع خاصة من قواعد السمات

انظر أيضاً

مراجع

  1. كنوت 1968 ، ص 134.
  2. كنوت 1968 ، ص 132.
  3. 1 2 د. إ. كنوت: نشأة قواعد السمات . وقائع المؤتمر الدولي حول قواعد السمات وتطبيقاتها (1990)، LNCS، المجلد 461 ، 1-12.
  4. "الرئيسي" .
  5. كنوت 1968 ، ص 130.
  • الورقة الأصلية التي تُعرّف بالقواعد النحوية المنسوبة: كنوت، دونالد إي. (1968). "دلالات اللغات الخالية من السياق" (ملف PDF) . نظرية الأنظمة الرياضية . 2 (2): 127-145 . doi : 10.1007/BF01692511 . S2CID 5182310. مؤرشفة من الأصل بتاريخ 19 مايو 2020. تم الاطلاع عليها بتاريخ 23 مارس 2018 . {{cite journal}}: CS1 maint: bot: حالة عنوان URL الأصلي غير معروفة ( رابط ) ,