سؤال

أتساءل أين هو الخط الحدودي بين مواصفات القواعد والتحليل الدلالي. ما هو أفضل: استخدام وصف قواعد مفصلة أو ترك التفاصيل للمرحلة الدلالية؟ على سبيل المثال: تخيل بلغة oo مثل C# مع نوع التعداد ، والتي يمكن أن "اشتق" من نوع بدائي

enum X : int { a = 1 }

الآن ، هل يجب أن تكون الصواب (في هذه الحالة: النوع البدائي أو غير المحدد) من نوع الأساس من التعداد موضوعًا للتحقق من القواعد أو التحليل الدلالي؟

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

المحلول

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

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

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

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