سؤال
هل يمكن لأي شخص تزويدني بأمثلة عمل بسيطة توضح استخدام Pragmas في ADA 2005؟ أنا أفهم أن Pragmas معتاد على عمليات الأولويات ، فقط أنني لم أجد أمثلة عمل!
مقدر جدا !
المحلول
بحث عن comp.lang.ada
للمناقشات الأخيرة حول priorities
لديه العديد من الأمثلة المثيرة للاهتمام. هذا يبدو بشكل خاص apropos على سؤالك.
إضافة: مصدران مثاليان آخران هما الأساس المنطقي لـ ADA 95 و الأساس المنطقي لـ ADA 2005
نصائح أخرى
ADA Pragma هي ميزة لغة تتيح ضبط أو ضبط سلوك برنامج ADA. يتم تعريف عدد من pragmas من خلال معيار لغة ADA ، ولكن يمكن للبائعين التحويل البرمجي أيضًا تحديدهم.
يغطى موضوع Pragmas أكثر بكثير من مجرد أولويات [المهام] ، إليك أ قائمة من pragmas القياسية والبائع التي قدمها البائع للتحقق.
ما الذي تحاول القيام به بالضبط بمساعدة Pragmas؟ حدد أول أولويات المهمة؟
-- Not compile checked:
with System; use System;
task Prioritized_Task is
pragma Priority(System.Default_Priority + 1);
entry Start;
end Prioritized_Task;
كما هو الحال مع الكثير من ADA ، أعتقد أن أفضل إجابة هنا هي حقًا استشر LRM. ال قسم عن إدارة أولويات المهمة هو في الواقع قابلة للقراءة للغاية ، للحصول على تعريف قياسي اللغة على أي حال.
لاحظ أنه يمكنك أيضًا حدد أولوية المهمة في وقت التشغيل دون استخدام براغما. هذا يستخدم الحزمة Ada.Dynamic_Priorities
. هذا هو ما أقوم به عادة هذه الأيام ، إلا لسبب غريب ، فإن الأولوية المرغوبة معروفة في وقت الترجمة ، ولا أمانع في الترميز الشديد.
أقترح بشدة أن المستخدمين المتقدمين مثلك يتفوقون على LRM لمعرفة ما توفره لك كل اللغة. إيلاء اهتمام خاص للملحقات (الأقسام التي تبدأ بحرف) ، حيث يتم توثيق معظم الأشياء الجيدة. في حالتك ، من المحتمل أن تكون مهتمًا بشكل خاص بملحق الوقت الفعلي (الملحق D).
نعم ، أرى أن هذا يستخدم في كثير من الأحيان لإغلاق المترجم حول المتغيرات غير المرجعية في الإجراء:
pragma Unreferenced(Variable);