محرر البنية

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

عادةً ما تُدمج مزايا تحرير النصوص وبنية النصوص في واجهة مستخدم واحدة لأداة هجينة. على سبيل المثال، يُعدّ Emacs في الأساس محرر نصوص، ولكنه يدعم معالجة الكلمات والجمل والفقرات كبنى مُستنتجة من النص. في المقابل، يُعدّ Dreamweaver في الأساس محرر بنية لمستندات الويب المُنسّقة، ولكنه يدعم أيضًا عرض ومعالجة نصوص HTML الخام. وبالمثل، تدعم محررات الجزيئات عادةً كلاً من الإدخال الرسومي والنصي. يسود تحرير البنية عندما يكون المحتوى رسوميًا وتكون التمثيلات النصية غير عملية، مثل أنظمة CAD وبرنامج PowerPoint . بينما يسود تحرير النصوص عندما يكون المحتوى خاليًا إلى حد كبير من البنية، مثل حقول النصوص في نماذج الويب. أما أنظمة معالجة النصوص WYSIWYG مثل Word ، التي تبدو وكأنها تُحرر النص المُنسّق مباشرةً، فهي في الأساس محررات بنية للنص المُنسّق الأساسي.

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

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

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

تتميز كل لغة برمجة عادةً ببنية نحوية محددة جيدًا تُحددها قواعد نحوية خالية من السياق ، وبناءً على ذلك، تتوافق العناصر البنيوية ذات الدلالة في شفرة المصدر المكتوبة بهذه اللغة مع العبارات النحوية في النص. ومن بين محررات شفرة المصدر المبكرة الموجهة بالبنية النحوية Interlisp-D (لبنية Lisp النحوية المحدودة) وEmily [ 1 ] (لبنية PL/I النحوية الغنية).

قد يتعامل محرر النصوص الموجه نحو بناء الجملة مع قواعد النحو إما كقواعد توليدية (مثل تقديم قوالب للمستخدم تتوافق مع خطوة أو أكثر في اشتقاق رسمي لنص البرنامج) أو كقواعد توجيهية (مثل منع نقل عبارة من نوع معين من الكلام إلى سياق يتطلب نوعًا آخر من الكلام) أو كقواعد تحليلية (مثل تحليل التعديلات النصية لإنشاء تمثيل منظم). تُصعّب ميزات تحرير البنية في محررات شفرة المصدر كتابة برامج ذات بناء جملة غير صحيح. قد تفرض المحررات الحساسة للغة صحة بناء الجملة كشرط مطلق (كما فعل برنامج Mentor [ 2 ] )، أو قد تتسامح مع أخطاء بناء الجملة بعد إصدار تحذير (كما فعل برنامج Cornell Program Synthesizer [ 3 ] ). غالبًا ما تُصعّب المحررات المنظمة الصارمة إجراء تعديلات يسهل إجراؤها باستخدام محررات النصوص العادية، وهو أحد العوامل التي تُسهم في عدم اعتماد التحرير المنظم في بعض المجالات، مثل تحرير شفرة المصدر.

تراقب بعض المحررات الموجهة نحو بناء الجملة مدى الالتزام بالقيود السياقية للغة، مثل صحة الأنواع . يمكن تحديد هذه القيود الدلالية الثابتة بشكل إلزامي من خلال الإجراءات (كما في Gandalf [ 4 ] [ 5 ] [ 6 ] )، أو بشكل تصريحي من خلال قواعد نحوية سماتية (كما في Synthesizer Generator [ 7 ] [ 8 ] )، أو من خلال التوحيد في جبر متعدد الأنواع (كما في PSG [ 9 ] )، أو برنامج منطقي (كما في Centaur [ 10 ] وPan [ 11 ] )، مع التحقق من الالتزام بواسطة آلية التحرير الأساسية. تختلف المحررات المهيكلة في مدى سماحها لمستخدميها بإجراء تعديلات تؤدي إلى عدم صحة بناء الجملة أو الدلالة في المستند.

من الشائع في المحررات الحساسة للغة تمثيل المستند كشجرة تحليل نحوي وفقًا لقواعد اللغة، أو كشجرة بناء جملة مجردة (AST). على سبيل المثال، تُعد شجرة DOM في جوهرها شجرة بناء جملة مجردة وفقًا لتعريف نوع المستند (DTD ). غالبًا ما يتم إنشاء العرض النصي لتلك الشجرة الأساسية من خلال تنسيقها بشكل جميل . تشترك المحررات المرتبطة بالبرمجة الموجهة [ 12 ] والبرمجة الموجهة للغة، سواءً للغات العامة أو لغات المجال، في العديد من ميزات المحررات الحساسة للغة، ولكنها تهدف إلى فصل أكبر بين التمثيل الأساسي (النية ) والتمثيل الظاهري (النص بلغة برمجة).

أمثلة

انظر أيضاً

مراجع

  1. هانسن، ويلفريد ج. (1971). "مبادئ هندسة المستخدم للأنظمة التفاعلية". وقائع المؤتمر المشترك للخريف للحاسوب FJCC 39. AFIPS. الصفحات 5623-532 . 
  2. دونزو غوج، ف.؛ هويه، ج.؛ كان، ج.؛ لانغ، ب. (يوليو 1980). "بيئات البرمجة القائمة على المحررات المهيكلة: تجربة مينتور" (ملف PDF) . تقرير بحثي رقم 26 صادر عن المعهد الوطني للبحوث في علوم الحاسوب والتحكم الآلي (INRIA ) .
  3. تيتلبوم، ت.؛ تي. ريبس (سبتمبر 1981). "مُركِّب برامج كورنيل: بيئة برمجة موجهة نحو بناء الجملة" . اتصالات رابطة آلات الحوسبة . 24 (9): 563-573 . doi : 10.1145/358746.358755 .
  4. ^ هابرمان، أ. نيكو؛ نوتكين، ديفيد (1986). “غاندالف: بيئات تطوير البرمجيات” (PDF) . IEEE ترانس. سوفت دبليو. م . 12 (12): 1117– 1127. بيب كود : 1986ITSEn..12.1117H . دوى : 10.1109/TSE.1986.6313007 . S2CID 11474349 . 
  5. ميدينا مورا، راؤول (1982). التحرير الموجه بالبنية النحوية - نحو دمج بيئات البرمجة . بيتسبرغ، بنسلفانيا: جامعة كارنيجي ميلون (أطروحة دكتوراه).
  6. كايزر، غيل إيلين (1985). دلالات بيئات تحرير البنية . بيتسبرغ، بنسلفانيا: جامعة كارنيجي ميلون (أطروحة دكتوراه).
  7. ريبس، ت. (1984). توليد بيئات قائمة على اللغة . كامبريدج، ماساتشوستس: مطبعة معهد ماساتشوستس للتكنولوجيا. (حصل على جائزة أطروحة الدكتوراه من جمعية آلات الحوسبة لعام 1983 ).
  8. ريبس، توماس دبليو .؛ تيتلبوم، تيم (1988). مولد المُركِّب: نظام لبناء محررات قائمة على اللغة . كامبريدج، ماساتشوستس: سبرينغر-فيرلاغ.
  9. سنيلتينغ، غريغور؛ هينهابل، وولفغانغ (1986). "التوحيد في الجبر متعدد الأنواع كأداة للتحليل الدلالي التدريجي". وقائع الندوة الثالثة عشرة لجمعية ACM SIGACT-SIGPLAN حول مبادئ لغات البرمجة (POPL) . نيويورك، نيويورك: مطبعة ACM. الصفحات 229-235 . 
  10. بوراس، ب.؛ كليمنت، د.؛ ديسبيروز، ث.؛ إنسيربي، ج.؛ كان، ج.؛ لانغ، ب.؛ باسكوال، ف. (1989). "سنتور: النظام". "وقائع ندوة ACM SIGSOFT/SIGPLAN لهندسة البرمجيات حول بيئات تطوير البرمجيات العملية (PSDE) . المجلد 24. نيويورك، نيويورك: مطبعة ACM. الصفحات 14-24 .  
  11. بالانس، روبرت أ.؛ غراهام، سوزان ل.؛ فان دي فانتر، مايكل ل. (1990). "نظام تحرير قائم على لغة بان للتطوير المتكامل". SDE 4: وقائع الندوة الرابعة لجمعية ACM SIGSOFT حول بيئات تطوير البرمجيات . إرفاين، كاليفورنيا: مطبعة ACM. الصفحات 77-93 . 
  12. تشارنيكي، كريستوف وإيزينيكر، أولريش (يونيو 2000). البرمجة التوليدية: الأساليب والأدوات والتطبيقات، الفصل 11 (البرمجة المقصودة) . ريدينغ، ماساتشوستس: أديسون-ويسلي.