لغة مخصصة النطاق

اللغة مخصصة النطاق (بالإنجليزية: domain-specific language)‏ اختصاراً DSL، هي لغة برمجة متخصصة في تطبيق مجال هندسة البرمجيات.[1][2][3] هذا على النقيض من لغة عامة الأغراض ، والتي تنطبق على نطاق واسع عبر المجالات. هناك مجموعة واسعة من دسل، تتراوح بين اللغات المستخدمة على نطاق واسع للنطاقات المشتركة، مثل لغة ترميز النص الفائق لصفحات الويب، وصولا إلى اللغات المستخدمة من قبل واحد فقط أو بضع قطع من البرامج، مثل إماكس ليسب لإيماكس و زيماكس. يمكن تقسيم دسل إلى مزيد من التقسيم حسب نوع اللغة، وتشمل لغة محددة ماركوب لانغواجيس، وذات نطاق خاص بلغة نمذجة (بشكل عام، لغة المواصفات )، والمجال الخاص بالبرمجة. لغات الكمبيوتر خاصة الغرض كانت موجودة دائما في عصر الكمبيوتر، ولكن مصطلح «لغة خاصة بالنطاق» أصبح أكثر شعبية بسبب صعود نمذجة خاصة بالنطاق. أما أبسط دسل، وخاصة تلك التي يستخدمها طلب واحد، فيسمى أحيانا بشكل غير رسمي 'ميني-لانغواجيس' .

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

استخدام[عدل]

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

نظرة عامة[عدل]

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

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

لغة خاصة بالنطاق هي في مكان ما بين لغة برمجة صغيرة و [لغة البرمجة]، وغالبا ما تستخدم بطريقة مماثلة ل مكتبة البرمجة. إن الحدود بين هذه المفاهيم ضبابية تماما، مثل الحدود بين لغات البرمجة واللغات العامة الغرض.

التصميم والتنفيذ[عدل]

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

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

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

مراجع[عدل]

  1. ^ "معلومات عن لغة مجال محدد على موقع britannica.com". britannica.com. مؤرشف من الأصل في 2016-04-05.
  2. ^ "معلومات عن لغة مجال محدد على موقع id.loc.gov". id.loc.gov. مؤرشف من الأصل في 2010-05-28.
  3. ^ "معلومات عن لغة مجال محدد على موقع babelnet.org". babelnet.org. مؤرشف من الأصل في 2019-12-14.