ما وراء التركيب

الميتا -سينتاكس هو بناء جملة يُستخدم لتعريف بناء جملة لغة برمجة أو لغة رسمية . وهو يصف البنية والتركيب المسموح بهما للعبارات والجمل في لغة ميتا-سينتاكس ، والتي تُستخدم لوصف إما لغة طبيعية أو لغة برمجة حاسوبية . [ 1 ] من بين لغات الميتا-سينتاكس الرسمية الشائعة الاستخدام للغات الحاسوب: صيغة باكوس-ناور (BNF)، وصيغة باكوس-ناور الموسعة (EBNF)، وتدوين بناء جملة ويرث (WSN)، وصيغة باكوس-ناور المُعززة (ABNF).

تتميز اللغات الوصفية ببنية نحوية خاصة بها، تتألف كل منها من رموز طرفية ، ورموز غير طرفية ، ورموز وصفية . الرمز الطرفي، كالكلمة أو الرمز المميز، هو بنية مستقلة في اللغة قيد التعريف. أما الرمز غير الطرفي فيمثل فئة نحوية ، تُعرّف بنية جملة أو عبارة صحيحة واحدة أو أكثر، تتكون من مجموعة فرعية من n عنصر. توفر الرموز الوصفية معلومات نحوية لأغراض دلالية في بنية نحوية معينة. لا تنطبق الرموز الطرفية وغير الطرفية والرموز الوصفية على جميع اللغات الوصفية.

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

عنصر من عناصر ما وراء التركيب

  • المحطات الطرفية: بنية نحوية مستقلة. يمكن الإشارة إلى المحطات الطرفية بوضع اسم المحطة الطرفية بين علامتي اقتباس مزدوجتين.
على سبيل المثال "else"، "if"، "then"،"while"
  • الرموز غير النهائية: تمثيل رمزي يُعرّف مجموعة من البنى النحوية المسموح بها، ويتألف من مجموعة فرعية من العناصر. ويمكن الإشارة إلى الرموز غير النهائية بوضع اسمها بين قوسين زاويين.
على سبيل المثال <int>،<char><boolean>
  • الرمز الميتا: تمثيل رمزي يدل على المعلومات النحوية.
على سبيل المثال :=، |، ، {}، ()، []،*

طرق إنهاء العبارة

  • التناقض: على سبيل المثالA B
  • التناوب: على سبيل المثالA|B
  • التكرار: على سبيل المثال{A B}
  • عبارة اختيارية: على سبيل المثال[A B]
  • التجميع: على سبيل المثال(A|B)

اصطلاحات نحوية محددة

الاتفاقية القياسية

  • يُشير " صيغة باكوس-ناور " إلى الرموز غير الطرفية بوضع اسم الفئة النحوية بين قوسين زاويين ، بينما يُشير إلى الرموز الطرفية بوضع الكلمات الطرفية بين علامتي اقتباس مزدوجتين. لا يمكن أن تظهر الرموز الطرفية على الجانب الأيسر من الرمز الفوقي ::=في قاعدة الاشتقاق . قد يتكون متن التعريف على الجانب الأيمن من عدة صيغ بديلة، حيث يفصل الرمز الفوقي بين كل بنية نحوية بديلة |. يمكن أن تكون كل بنية من هذه البنى البديلة طرفية أو غير طرفية.
  • تستخدم صيغة باكوس-ناور الموسعة جميع إمكانيات صيغة باكوس-ناور ، وتُضيف رمزين إضافيين لخصائص أخرى. يُستخدم أحد هذين الرمزين للدلالة على عبارة اختيارية في جملة، وذلك بوضعها بين قوسين مربعين. أما الرمز الثاني، فيُستخدم للدلالة على عبارة تُكرر صفرًا أو أكثر، وذلك بوضعها بين قوسين معقوفين.
  • تستخدم صيغة ويرث جميع إمكانيات صيغة EBNF باستثناء أن الرموز غير الطرفية لا تُحاط بالضرورة بأقواس زاوية، بل تُعرَّف دائمًا على الجانب الأيمن من =قاعدة الإنتاج. كما أنها لا تتطلب تعريف كل رمز غير طرفي بشكل صريح. تُعرَّف الرموز غير الطرفية مثل <text>و ضمنيًا كحرف ASCII ومسافة بيضاء اختيارية على التوالي.<opt-whitespace>
  • يشير " صيغة باكوس-ناور المُعززة " إلى الرموز غير الطرفية ببدء اسم من كلمة واحدة باسم أبجدي للفئة النحوية. لا حاجة للأقواس الزاوية. تُشار إلى الرموز الطرفية إما بكلمات بين علامتي اقتباس مزدوجتين أو بالبنية العددية التالية: a %، متبوعًا بـ bأو xأو d، متبوعًا بقيمة عددية أو سلسلة من القيم العددية مفصولة بـ .. -يوضع الرمز الفوقي بين قيمتين عدديتين للدلالة على نطاق القيمة . وكما هو الحال في صيغة باكوس-ناور العادية، لا تظهر الرموز الطرفية في صيغة باكوس-ناور المُعززة أبدًا على الجانب الأيسر من الرمز الفوقي =في قاعدة الاشتقاق. /يشير الرمز الفوقي إلى التناوب . تُستخدم المسافات البيضاء لفصل العناصر في متن التعريف. يتخذ التركيب النحوي للتكرار في صيغة باكوس-ناور المُعززة عدة أشكال. *يشير الرمز a الذي يسبق عنصرًا إلى العنصر المراد تكراره صفرًا أو أكثر من المرات. تشير القيمة العددية n1 متبوعةً *بالقيمة العددية n2 متبوعةً بعنصر إلى تكرار هذا العنصر من n1 إلى n2 مرة على الأكثر . وتشير القيمة العددية n المفردة التي تسبق عنصرًا إلى تكرار هذا العنصر n مرة. يمكن كتابة التعليقات; بعد الرمز الوصفي . وكما هو الحال في EBNF، فإن وضع عبارة بين قوسين مربعين يشير إلى أن هذه العبارة اختيارية .

الاختلافات

لم يتم بعد وضع اصطلاحات بناء الجملة الوصفية لهذه اللغات الوصفية الرسمية. توجد العديد من الاختلافات أو التوسعات في بناء الجملة الوصفية في دليل المراجع للغات برمجة الحاسوب المختلفة. يتمثل أحد الاختلافات في الاصطلاح القياسي للدلالة على الرموز غير الطرفية والطرفية في إزالة الرموز الوصفية مثل الأقواس الزاوية وعلامات الاقتباس، وتطبيق أنواع خطوط محددة على الكلمات المقصودة. في لغة آدا ، على سبيل المثال، تُحدد الفئات النحوية باستخدام خط sans-serif صغير على الكلمات أو الرموز المقصودة. تتكون جميع الكلمات أو الرموز الطرفية في آدا من أحرف ذات موضع ترميز بين 16#20# و 16#7E# (شاملة). يُشار إلى تعريف كل مجموعة أحرف في المعيار الدولي ISO/IEC 10646:2003. في لغتي C وجافا ، تُحدد الفئات النحوية باستخدام خط مائل، بينما تُحدد الرموز الطرفية باستخدام خط قوطي . في لغة J ، لا تستخدم قواعدها النحوية رموزًا وصفية لوصف تركيبها النحوي على الإطلاق. بل تُقدَّم جميع الشروحات النحوية بلغة وصفية شديدة الشبه باللغة الإنجليزية تُسمى القاموس، وهي موثقة بشكل فريد للغة J.

ميزة الإضافات

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

انظر أيضاً

مراجع

  1. سيلينك، أليكس، وكريس فيرهوف. " تطوير وتقييم وإعادة هندسة أوصاف اللغة ".صيانة البرمجيات وإعادة هندستها، 2000. وقائع المؤتمر الأوروبي الرابع. معهد مهندسي الكهرباء والإلكترونيات، 2000.