سؤال

هل يمكن لأي شخص تزويدني بأمثلة عمل بسيطة توضح استخدام 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);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top