سؤال

أنا أقوم بإنشاء جزء من البرنامج (مكتوب في C#، سيكون تطبيق Windows) وواجهت هذه المشكلة-

لدي مجموعة من المتغيرات ، وأحتاج إلى السماح للمستخدم بتحديد مجموعة واسعة من الوظائف الرياضية على تلك المتغيرات.

لكن مستخدمي لا يتعين عليهم بالضرورة أن يكون لديهم أي معرفة مسبقة بالبرمجة.

الخيارات التي اعتبرتها هي:

  • إنشاء نوع من واجهة المستخدم الرسومية لتحديد "وظائف" الرياضيات. لكن هذا محدود للغاية.
  • تنفيذ لغة مضمنة بسيطة للغاية ، والتي ستوفر المرونة مع بقاء سهلة الفهم نسبيًا. نظرت إلى لوا ، لكن المشكلة في ذلك هي أنك بحاجة إلى حد كبير إلى معرفة مسبقة في البرمجة. كنت أفكر في شيء أكثر قابلية للقراءة (يشبه إلى حد ما SQL) ، على سبيل المثال "تعيين 3 إلى X ؛"

أفكار أخرى مرحب بها.

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

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

شكرا ، مالكي :)

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

المحلول

ما تريد هو أ لغة محددة المجال. أرى أنك جربت لوا ولم تجد ذلك مقبولًا-سأفترض أن معظم لغات البرمجة النصية التي تم إنشاؤها مسبقًا قد خرجت بعد ذلك.

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

assign 3 to X
show sin(X * 5)

إذا كان هذا أبعد قليلاً عما ترغب في القيام به ، فيمكنك الحصول على بعض المساعدة في التحليل من مكتبة مثل مفارقة; ؛ سيتيح لك ذلك التركيز على استخدام شجرة بناء الجملة المجردة بدلاً من اللعب باستخدام الرمز المميز/lexing لبعض الوقت.

إذا كنت تريد ، يمكنك حتى النظر إلى فر, ، والتي ستواجه وتقييم بعض التعبيرات المعقدة الجميلة خارج البوابة.

نصائح أخرى

Antlr هو محلل كبير إذا كنت تريد أن تصنع لغتك الخاصة

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