لغة برمجة متزامنة

لغة البرمجة المتزامنة هي لغة برمجة حاسوبية مُحسَّنة لبرمجة الأنظمة التفاعلية .

يمكن تصنيف أنظمة الحاسوب إلى ثلاث فئات رئيسية:

  1. تستقبل الأنظمة التحويلية بعض المدخلات، وتعالجها، وتُخرج مخرجاتها، ثم تُنهي تنفيذها. ومن الأمثلة النموذجية على ذلك المُترجم البرمجي.
  2. تتفاعل الأنظمة التفاعلية باستمرار مع بيئتها، وبسرعتها الخاصة. ومن الأمثلة النموذجية على ذلك شبكة الإنترنت.
  3. تتفاعل الأنظمة التفاعلية باستمرار مع بيئتها، بسرعة تحددها البيئة. ومن الأمثلة النموذجية على ذلك نظام التحكم الآلي في الطيران للطائرات الحديثة. ولذلك، يجب على الأنظمة التفاعلية الاستجابة للمؤثرات البيئية ضمن حدود زمنية دقيقة. ولهذا السبب، تُسمى غالبًا بالأنظمة الآنية ، وتُستخدم بكثرة في الأنظمة المدمجة .

البرمجة المتزامنة ، وتُسمى أيضًا البرمجة التفاعلية المتزامنة ( SRP )، هي نموذج برمجة حاسوبية تدعمه لغات البرمجة المتزامنة. يقوم مبدأ SRP على تطبيق نفس التجريد المتزامن في الدوائر الرقمية على لغات البرمجة. تُصمم الدوائر المتزامنة بمستوى عالٍ من التجريد، حيث تُهمل خصائص التوقيت للترانزستورات الإلكترونية. يُفترض أن كل بوابة في الدائرة (أو، و، ...) تُحسب نتيجتها لحظيًا، وأن كل سلك ينقل إشارته لحظيًا. تُضبط الدائرة المتزامنة بنبضة ساعة، وفي كل نبضة، تُحسب قيم خرجها وقيم خلايا الذاكرة (المثبتات) الجديدة لحظيًا من قيم دخلها وقيم خلايا الذاكرة الحالية. بعبارة أخرى، تتصرف الدائرة كما لو كانت الإلكترونات تتدفق بسرعة لا نهائية. ظهرت أولى لغات البرمجة المتزامنة في فرنسا في ثمانينيات القرن العشرين: Esterel و Lustre و SIGNAL . ومنذ ذلك الحين، ظهرت العديد من اللغات المتزامنة الأخرى.

يُسهّل التجريد المتزامن فهمَ الوقت في البرامج المتزامنة، بفضل مفهوم النبضات المنطقية : إذ يتفاعل البرنامج المتزامن مع بيئته في سلسلة من النبضات، وتُفترض العمليات الحسابية داخل النبضة الواحدة فورية، أي كما لو كان المعالج الذي يُنفذها سريعًا للغاية. ولذلك، تُجرّد العبارة "a||b" على أنها الحزمة "ab" حيث "a" و"b" متزامنتان. على سبيل المثال، تُحدد عبارة Esterel "'every 60 second emit minute'" أن الإشارة "minute" متزامنة تمامًا مع الظهور الستين للإشارة "second". على مستوى أكثر جوهرية، يُزيل التجريد المتزامن عدم الحتمية الناتجة عن تداخل السلوكيات المتزامنة. وهذا يسمح بدلالات حتمية ، مما يجعل البرامج المتزامنة قابلة للتحليل الرسمي والتحقق وتوليد التعليمات البرمجية المعتمدة، وقابلة للاستخدام كصيغ رسمية للمواصفات .

في المقابل، في نموذج الحوسبة غير المتزامن، على معالج تسلسلي، يمكن تنفيذ العبارة "a||b" إما كـ "a;b" أو كـ "b;a". يُعرف هذا باللا حتمية القائمة على التداخل . يكمن عيب النموذج غير المتزامن في أنه يمنع بطبيعته الدلالات الحتمية (مثل حالات التزامن المتنافس)، مما يجعل الاستدلال الرسمي، كالتحليل والتحقق، أكثر تعقيدًا. مع ذلك، تُعدّ النماذج الرسمية غير المتزامنة مفيدة جدًا لنمذجة وتصميم والتحقق من الأنظمة الموزعة، لأنها غير متزامنة بطبيعتها.

وعلى النقيض من ذلك، توجد أنظمة ذات عمليات تتفاعل بشكل متزامن أساسًا . ومن الأمثلة على ذلك الأنظمة القائمة على نموذج العمليات المتسلسلة المتصلة (CSP) ، والذي يسمح بالاختيار الحتمي (الخارجي) وغير الحتمي (الداخلي).

اللغات المتزامنة

انظر أيضاً

مراجع

  1. جي. بيري وجي. غونتييه. لغة البرمجة المتزامنة إستيريل: التصميم، والدلالات، والتنفيذ. علم برمجة الحاسوب ، 19(2)، 1992.