سؤال

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

هل كانت مفيدة؟

المحلول

ويمكنك تضمين DSL داخل لغة برمجة أكثر عمومية. هذا غالبا ما يكون حلا جيدا. (هل يمكن أن نقول أن هذا DSL يأخذ شكل API معين).

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

نصائح أخرى

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

نعم، قد نفذت DSL باعتبارها API، التي وفرت الوظائف التي أشارت إلى مفاهيم معينة في المجال المشكلة، ولكن DSL غير صالحة أيضا عندما مثلت كملف نصي.

مبرمج عملي: من الصانع الماهر لإتقان يحتوي وصفا جيدا لتراخيص اشتراك الجهاز والظروف التي انهم مفيدة، مع أمثلة. موصى به للغاية.

وأنت لا تزال تملك إلا دلالات اللغة المضيف.

وعلى سبيل المثال: البرمجة الوظيفية في اللغة حتمية لا تعمل. ولذلك عليك أضاف DSL وظيفي لهذه اللغة حتمية ...

نعم بالتأكيد - أ مجرد ستعمل واجهة برمجة التطبيقات (API) بشكل جيد باعتبارها DSL إذا كانت اللغة المضيفة تتمتع بالمرونة الكافية لدعمها.

روبي هي لغة جيدة جدًا لمثل هذا، لا سيما في ضوء الأقواس الاختيارية ومواطن المرونة الأخرى.

  • غالبا ما يشار إلى القضبان باسم DSL لكتابة الويب المستند إلى قاعدة البيانات التطبيقات.

  • أشعل النار هو نظام بناء مع DSL ل الكتابة (أكثر ذكاء) makefiles.

خاصتي أوفيل هو إطار عمل يمكنك اعتباره DSL لكتابة تطبيقات قواعد البيانات بلغة C++ - وهو مستوحى من dBase ويستخدم بشكل مكثف التحميل الزائد لمشغل C++ والكائنات المحلية ومصطلحات الدفق.

Forth هي لغة كلاسيكية تطمس الخط الفاصل بين DSL وAPI حيث أن برنامج Forth يتكون من ما يزيد قليلاً عن سلسلة من الكلمات المفصولة بمسافات.ربما يكون المثال الأكثر إثارة للإعجاب لـ Forth DSL هو وفرة - الوفرة هي لغة برمجة أعمال تعتمد على لغة فورث، ومكتوبة بلغة BBL Forth.BBL هو مترجم DOS FORTH 32 بت.وزعت كما هي.انظر التحذيرات.هذا ليس لمن قلبه ضعيف.سيكون هذا أمرًا مثيرًا للاهتمام بشكل أساسي لشخص يقوم بتطوير برامج للعالم الثالث حيث تحتاج إلى تنفيذ سريع على أجهزة الكمبيوتر القديمة klunker XT وAT.يمكنك كتابة بعض برامج إدخال البيانات المتطورة للغاية والتي ستدور حول برامج إدخال البيانات الحديثة.

وبطبيعة الحال، فإن DSL رسومية لا تحتاج إلى تحليل على الإطلاق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top