قواعد رسمية – formal grammar

القواعد الشكلية (Formal Grammar)

Primary Disciplinary Field(s): علوم الحاسوب، اللسانيات النظرية، الرياضيات

1. التعريف الجوهري

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

في جوهرها، تُمثل القواعد الشكلية أداة حاسمة في مجال نظرية اللغات الشكلية (Formal Language Theory)، وهي فرع من فروع الرياضيات وعلوم الحاسوب يدرس الخصائص البنيوية والحسابية للغات. يتم تعريف أي قواعد شكلية بشكل أساسي كأربعية رياضية (V, Σ, P, S)، حيث تمثل هذه المكونات البنية اللازمة لإجراء عملية التوليد أو التحليل (Parsing). هذا الإطار الرياضي يسمح بتطبيقها على نطاق واسع، بدءًا من تصميم لغات البرمجة وتجميعها وصولًا إلى النماذج الحاسوبية للغة البشرية.

إن المفهوم الأساسي للقواعد الشكلية يرتكز على فكرة البدء برمز أولي أو رمزي البداية (Start Symbol) وتطبيق قواعد الإنتاج بشكل متكرر لاستبدال الرموز غير الطرفية (Non-terminal Symbols) برموز طرفية (Terminal Symbols) أو خليط منها، حتى يتم الوصول في النهاية إلى سلسلة مكونة بالكامل من الرموز الطرفية، والتي تُعتبر جملة صالحة في اللغة الموصوفة. هذا التجريد الرياضي هو ما يمنح القواعد الشكلية قوتها التحليلية والحاسوبية.

2. السياق التأديبي والتطور التاريخي

لم يظهر مفهوم القواعد الشكلية في فراغ، بل تطور بشكل كبير بفضل أعمال عالم اللسانيات الأمريكي نعوم تشومسكي (Noam Chomsky) في منتصف الخمسينات من القرن العشرين. قبل تشومسكي، كانت دراسة القواعد النحوية في اللسانيات غالبًا ما تعتمد على الأساليب الوصفية (Descriptive Methods) التي تفتقر إلى الصرامة الرياضية. كان إسهام تشومسكي الأساسي هو محاولة بناء نموذج رياضي للقواعد القادرة على توليد جميع الجمل النحوية الصحيحة في لغة ما ورفض الجمل غير الصحيحة، مما أرسى الأساس لـ اللسانيات التوليدية (Generative Linguistics).

في عام 1956، قدم تشومسكي تصنيفه الشهير الذي عُرف لاحقًا باسم هرمية تشومسكي (Chomsky Hierarchy)، والذي صنف القواعد الشكلية إلى أربعة أنواع رئيسية (من النوع 0 إلى النوع 3) بناءً على قيودها الرياضية وخصائصها التعبيرية. لم يكن هذا التصنيف مجرد أداة لغوية، بل كان له تأثير عميق وفوري على التطور المبكر لعلوم الحاسوب، لا سيما في مجال تصميم المترجمات (Compilers) ولغات البرمجة. فقد أثبت تشومسكي أن اللغات الطبيعية تتطلب قواعد أكثر تعقيدًا من أبسط أنواع القواعد الشكلية، مما فتح الباب أمام دراسة القدرة الحسابية اللازمة لمعالجة اللغة.

أصبح مفهوم القواعد الشكلية، وخاصة القواعد الخالية من السياق (Context-Free Grammars)، الأداة المعيارية لوصف بناء (Syntax) معظم لغات البرمجة الحديثة مثل Algol وPascal وغيرها. وقد وفرت هذه القواعد الإطار النظري اللازم لتطوير أدوات التحليل الآلي (Automatic Parsing Tools) التي تُستخدم لتحويل كود المصدر (Source Code) إلى تعليمات قابلة للتنفيذ بواسطة الحاسوب، مما يوضح التقاطع الحاسم بين الرياضيات، واللسانيات، وعلوم الحاسوب.

3. المكونات الأساسية للقواعد الشكلية

تُعرف القواعد الشكلية رياضيًا كأربعية (G = (V, Σ, P, S))، حيث يلعب كل عنصر دورًا محددًا في عملية توليد اللغة:

  • مجموعة الرموز غير الطرفية (V – Non-terminal Symbols): وتُسمى أيضًا المتغيرات النحوية. هي رموز تمثل فئات تجريدية أو مفاهيم نحوية داخل اللغة (مثل <جملة>، <فعل>، <تعبير>). هذه الرموز لا تظهر في السلسلة النهائية المولدة.
  • مجموعة الرموز الطرفية (Σ – Terminal Symbols): هي الأبجدية الفعلية للغة، وهي الرموز التي تشكل السلاسل النهائية. في لغات البرمجة، قد تكون هذه الرموز هي الكلمات المفتاحية، أو المُعَرِّفات، أو الفواصل. في اللغات الطبيعية، قد تكون هي الكلمات الفعلية.
  • مجموعة قواعد الإنتاج (P – Production Rules): هي قلب القواعد الشكلية. كل قاعدة تحدد كيفية استبدال رمز غير طرفي (أو مجموعة من الرموز) بسلسلة أخرى من الرموز (طرفية أو غير طرفية). تُكتب القواعد عادةً على شكل (A → β)، حيث A هو رمز غير طرفي (أو سلسلة من الرموز في الأنواع الأكثر تعقيدًا) و β هي السلسلة البديلة.
  • رمز البداية (S – Start Symbol): وهو رمز غير طرفي واحد ينتمي إلى V، والذي تبدأ منه عملية التوليد في كل اشتقاق.

تُعرف اللغة (L) المولدة بواسطة القواعد G بأنها مجموعة جميع السلاسل المكونة حصريًا من الرموز الطرفية (Σ*) والتي يمكن اشتقاقها من رمز البداية S من خلال تطبيق متكرر لقواعد الإنتاج P. ويُطلق على عملية تطبيق القواعد لتوليد سلسلة اسم الاشتقاق (Derivation).

4. هرمية تشومسكي وأنواع القواعد

قدمت هرمية تشومسكي إطارًا لتصنيف القواعد الشكلية بناءً على شكل قواعد الإنتاج (P)، مما يحدد القوة التعبيرية والتعقيد الحسابي اللازم لتحليل اللغة المولدة:

  1. النوع 0: القواعد غير المقيدة (Recursively Enumerable Grammars): هذه هي القواعد الأقل تقييدًا. لا توجد قيود على شكل قواعد الإنتاج (α → β)، حيث α و β هما سلاسل من رموز V و Σ. هذه القواعد تولد اللغات التي يمكن قبولها بواسطة آلة تورينج (Turing Machine) العامة، وهي الأكثر تعقيدًا من الناحية الحسابية.
  2. النوع 1: القواعد الحساسة للسياق (Context-Sensitive Grammars – CSG): في هذه القواعد، يجب أن يكون طول سلسلة الإخراج (β) أكبر من أو يساوي طول سلسلة الإدخال (α) في قاعدة الإنتاج (α → β). تُستخدم هذه القواعد لوصف اللغات التي تتطلب أن يعتمد استبدال رمز غير طرفي على الرموز المحيطة به (السياق). تتطلب هذه اللغات آلة تورينج مقيدة خطيًا لمعالجتها.
  3. النوع 2: القواعد الخالية من السياق (Context-Free Grammars – CFG): هذا هو النوع الأكثر شيوعًا في علوم الحاسوب. يجب أن يكون الجانب الأيسر من قاعدة الإنتاج رمزًا غير طرفي واحدًا فقط (A → β)، حيث A ∈ V. لا يعتمد استبدال A على الرموز المحيطة به. تُستخدم قواعد CFG بشكل أساسي لوصف بناء الجمل في لغات البرمجة ويمكن تحليلها بكفاءة باستخدام آلات دفع المكدس (Pushdown Automata).
  4. النوع 3: القواعد المنتظمة (Regular Grammars – RG): وهي القواعد الأكثر تقييدًا وبساطة. يجب أن تكون قواعد الإنتاج إما من الشكل (A → aB) أو (A → a)، حيث A و B رموز غير طرفية و a رمز طرفي واحد. هذه القواعد تولد اللغات المنتظمة، والتي يمكن قبولها بواسطة الآلات ذات الحالات المحدودة (Finite State Automata). تُستخدم بشكل أساسي لوصف المفردات والتعبيرات المنتظمة (Regular Expressions).

5. تطبيقات القواعد الخالية من السياق في علوم الحاسوب

تمثل القواعد الخالية من السياق (CFG) حجر الزاوية في نظرية المترجمات (Compiler Theory) وهندسة البرمجيات. السبب الرئيسي لشعبيتها هو أنها قوية بما يكفي لوصف البنية الهرمية المعقدة لتعابير البرمجة (مثل التداخل بين الأقواس، أو بناء الدوال والكتل البرمجية)، ولكنها بسيطة بما يكفي للسماح بإنشاء خوارزميات تحليل فعالة (Parsing Algorithms).

في عملية تجميع لغة برمجة، يتم استخدام قواعد CFG في مرحلة التحليل النحوي (Syntactic Analysis) أو التحليل التركيبي. يقوم المحلل (Parser) بأخذ تدفق الرموز الطرفية (Tokens) الناتجة عن مرحلة التحليل المعجمي (Lexical Analysis) ويحاول بناء شجرة اشتقاق (Parse Tree) أو شجرة بناء مجردة (Abstract Syntax Tree – AST) باستخدام قواعد CFG المحددة للغة. إذا نجح المحلل في بناء الشجرة، فهذا يعني أن الكود المصدر صحيح نحويًا وفقًا لتعريف اللغة.

تُستخدم قواعد CFG أيضًا على نطاق واسع في مجالات أخرى، مثل معالجة لغة الترميز، حيث تُستخدم لغات مثل XML و JSON جزئيًا بواسطة قواعد CFG لضمان صحة البنية الهرمية للبيانات. كما أنها أساسية في تطوير خوارزميات مطابقة الأنماط المعقدة (Complex Pattern Matching) وفي تصميم واجهات المستخدم التي تتطلب تسلسلات محددة من الإدخالات.

6. القواعد الشكلية واللسانيات الطبيعية

على الرغم من أن القواعد الشكلية نشأت في الأصل لدراسة اللغات الطبيعية، إلا أن العلاقة بينهما معقدة. لقد أظهر تشومسكي أن اللغات الطبيعية، مثل الإنجليزية أو العربية، تتطلب قوة تعبيرية تفوق قوة القواعد الخالية من السياق (النوع 2). فبسبب ظواهر مثل الاعتماد المتبادل البعيد المدى (Long-distance Dependencies) أو ظواهر النسخ (Copying Phenomena) في بعض اللغات، يُعتقد أن اللغات الطبيعية تنتمي على الأقل إلى فئة القواعد الحساسة للسياق (النوع 1)، وربما تتطلب نماذج أكثر قوة.

أدت هذه الملاحظة إلى تطوير نماذج نحوية أكثر تعقيدًا في اللسانيات النظرية، مثل القواعد الشجرية المجاورة (Tree-Adjoining Grammars – TAG) أو القواعد المعجمية الوظيفية (Lexical Functional Grammar – LFG)، والتي تُعد امتدادات للقواعد الشكلية التقليدية. تهدف هذه النماذج إلى تحقيق التوازن بين القدرة التعبيرية (اللازمة لوصف تعقيد اللغات البشرية) والقيود الحسابية (اللازمة لجعل المعالجة ممكنة ومحدودة).

كما أن استخدام القواعد الشكلية يساهم في فهم آليات الاكتساب اللغوي (Language Acquisition)، حيث يُفترض أن العقل البشري يمتلك آليات فطرية لمعالجة القواعد النحوية، والتي يمكن نمذجتها باستخدام مفاهيم رياضية مستمدة من نظرية القواعد الشكلية. هذا الربط بين الشكلية الرياضية والبنية العقلية للغة هو أحد أهم إسهامات هذا المفهوم.

7. القيود والمناقشات النظرية

تواجه القواعد الشكلية، وخاصة الأنواع الأبسط مثل CFG، قيودًا واضحة عند نمذجة اللغة المعقدة:

  • التعامل مع الدلالات (Semantics): تركز القواعد الشكلية بشكل حصري تقريبًا على البنية (Syntax) ولا تعالج المعنى أو الدلالات. الجملة التي تكون صحيحة نحويًا وفقًا لقواعد CFG قد تكون بلا معنى تمامًا (مثل جملة تشومسكي الشهيرة: “الأفكار الخضراء عديمة اللون تنام بغضب”).
  • الغموض (Ambiguity): قد تسمح قواعد شكلية معينة باشتقاق نفس السلسلة النهائية (الجملة) بأكثر من طريقة، مما يؤدي إلى وجود أكثر من شجرة تحليل واحدة. هذا الغموض هو تحدٍ كبير في كل من اللغات الطبيعية ولغات البرمجة، ويتطلب آليات إضافية (مثل قواعد السياق أو تحليل الدلالات) لحله.
  • القيود على القوة التعبيرية: كما ذكرنا، لا تستطيع القواعد الخالية من السياق وصف الظواهر اللغوية التي تتطلب تتبع التبعيات عبر سلاسل طويلة، مما يحد من قابليتها للتطبيق المباشر على جميع جوانب اللغات الطبيعية دون تعديلات أو إضافات.

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

Further Reading