التحكم في المستخدم الديناميكي على المتغيرات (لغة مضمنة؟)
-
26-09-2019 - |
سؤال
أنا أقوم بإنشاء جزء من البرنامج (مكتوب في C#، سيكون تطبيق Windows) وواجهت هذه المشكلة-
لدي مجموعة من المتغيرات ، وأحتاج إلى السماح للمستخدم بتحديد مجموعة واسعة من الوظائف الرياضية على تلك المتغيرات.
لكن مستخدمي لا يتعين عليهم بالضرورة أن يكون لديهم أي معرفة مسبقة بالبرمجة.
الخيارات التي اعتبرتها هي:
- إنشاء نوع من واجهة المستخدم الرسومية لتحديد "وظائف" الرياضيات. لكن هذا محدود للغاية.
- تنفيذ لغة مضمنة بسيطة للغاية ، والتي ستوفر المرونة مع بقاء سهلة الفهم نسبيًا. نظرت إلى لوا ، لكن المشكلة في ذلك هي أنك بحاجة إلى حد كبير إلى معرفة مسبقة في البرمجة. كنت أفكر في شيء أكثر قابلية للقراءة (يشبه إلى حد ما SQL) ، على سبيل المثال "تعيين 3 إلى X ؛"
أفكار أخرى مرحب بها.
أنا أبحث بشكل أساسي عن أفضل طريقة للذهاب إلى هنا ، على افتراض أن مستخدمي ليس لديهم أي معرفة في البرمجة.
ومع ذلك ، لاحظ أن هذه ليست هي الميزة الرئيسية لبرنامجي ، لذلك أفترض أنه إذا أراد المستخدم/يحتاج إلى استخدام هذه الميزة ، فسوف يستغرق وقتًا للنظر في الدليل لبضع دقائق ويتعلم كيفية القيام به لذلك ، طالما أنها ليست معقدة للغاية.
شكرا ، مالكي :)
المحلول
ما تريد هو أ لغة محددة المجال. أرى أنك جربت لوا ولم تجد ذلك مقبولًا-سأفترض أن معظم لغات البرمجة النصية التي تم إنشاؤها مسبقًا قد خرجت بعد ذلك.
اعتمادًا على تعقيد وظيفتك المتوقعة ، أوصي بإعطاء لقطة لتنفيذ صغير محلل في سن العودية بحيث يمكنك بالضبط حدد لغتك. بهذه الطريقة يمكنك إدراك شيء مثل:
assign 3 to X
show sin(X * 5)
إذا كان هذا أبعد قليلاً عما ترغب في القيام به ، فيمكنك الحصول على بعض المساعدة في التحليل من مكتبة مثل مفارقة; ؛ سيتيح لك ذلك التركيز على استخدام شجرة بناء الجملة المجردة بدلاً من اللعب باستخدام الرمز المميز/lexing لبعض الوقت.
إذا كنت تريد ، يمكنك حتى النظر إلى فر, ، والتي ستواجه وتقييم بعض التعبيرات المعقدة الجميلة خارج البوابة.
نصائح أخرى
Antlr هو محلل كبير إذا كنت تريد أن تصنع لغتك الخاصة