لغة البرمجة Dafny هي لغة برمجة توجيهية تستهدف C# وتدعم المواصفات الرسمية من خلال الشروط الأولية، والشروط اللاحقة، والجوانب الثابتة للحلقات ومتغيرات الحلقة. تجمع اللغة بين أفكار تنتمي في المقام الأول إلى البرمجة الوظيفية والبرمجة الإرشادية، وتتضمن دعمًا محدودًا للبرمجة الشيئية. من بين الميزات المميزة لها الفصول العامة، والتخصيص الديناميكي، وأنواع البيانات التفسيرية، وتقنية منطق الفصل المعروفة باسم الإطارات الديناميكية الضمنية للتفكير في تأثيرات الجانب.
صممت Dafny من قبل Rustan Leino في Microsoft Research بعد عمله السابق في تطوير ESC/Modula-3، وESC/Java، وSpec#. تُستخدم Dafny على نطاق واسع في التدريس وتظهر بانتظام في مسابقات التحقق من البرمجيات. تم تصميم Dafny لتقديم مقدمة بسيطة للمواصفات الرسمية والتحقق منها، وقد تم استخدامها على نطاق واسع في التدريس.
تستمد Dafny من العديد من الأدوات السابقة، بما في ذلك SPARK/Ada، وESC/Java، وSpec#، وWhiley، وWhy3، وFrama-C. هذه الأدوات تعتمد على استخدام الإثبات التلقائي لتفريغ التزامات البرهان بخلاف تلك المبنية على أنواع الاعتماد (مثل Idris، وAgda) التي تتطلب تدخلًا بشريًا أكثر. تعتمد Dafny على لغة Boogie الوسيطة التي تستخدم مبرهن التلقائي Z3 لتفريغ التزامات البرهانية.
لمزيد من المعلومات، يمكنك زيارة المواقع التالية: