لغات البرمجة

لغة برمجة Ease: نظرة شاملة

لغة البرمجة “Ease” هي لغة برمجة موازية غرضية عامة، تم تصميمها بواسطة Steven Ericsson-Zenith، الذي كان باحثًا في جامعة ييل، ومعهد العلوم والهندسة المتقدمة في وادي السيليكون بكاليفورنيا، ومدرسة المناجم الوطنية العليا في باريس، وجامعة بيير وماري كوري، القسم العلمي في السوربون. يُعتبر كتاب “Process Interaction Models” مواصفات لغة Ease. تجمع لغة Ease بين بنى العمليات لعمليات التسلسل التواصلي (CSP) مع هياكل بيانات مشتركة منطقيا تُسمى السياقات. تعتبر السياقات أنواع بيانات موازية يتم بناؤها بواسطة العمليات وتوفير وسيلة لتفاعل العمليات. تتضمن اللغة عاملين لإنشاء العمليات. يشمل التعاون مزامنة حاجزية صريحة ويكتب على النحو التالي:

parallel P() || Q();

إذا انتهت عملية واحدة قبل الأخرى، فسوف تنتظر حتى تنتهي العمليات الأخرى. تنشئ الاستعانة عملية تشترك في السياقات التي تكون موجودة عند الإنشاء وتنتهي عند الاكتمال (لا تنتظر العمليات الأخرى) ويكتب على النحو التالي:

// P();

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

parallel {i} for n: P(i);

عملياتٍ متزامنة يتم إنشاؤها بشكلٍ تزامني مع كل ثابت محلي i. العمليات لا يمكن أن تشترك في المتغيرات المحلية والتعاون في بناء السياقات المشتركة. يضمن أنواع السياقات البعض، المعروفة باسم الموارد، الدلالة على الاستدعاء والرد. هناك أربع وظائف على السياقات: read (context, variable)، write (context, expression)، put (context, name)، و get (context, name). أنواع السياقات هي Singletons و Bags أو Streams ويمكن أن تكون مصفوفاتٍ فرعية. تحتوي لغة Ease على تعريف دلالي. يعني ذلك أنها تأخذ في الاعتبار تأثير اللغة على المبرمج وكيفية تطويره للخوارزميات. تم تصميم اللغة لتسهيل تطوير البرامج الموازية.