خلال بحثي عن البرمجة التفرعية وجدت هذا المشروع الجميل والذي يحاول أن يأخذ بيد لغة C إلى مستنقع البرمجة التفرعية. http://supertech.csail.mit.edu/cilk/
اللغة تدعى Cilk وهي تعديل على لغة C لتدعم البرمجة التفرعية بإضافة أربع أو خمس كلمات جديدة. ما رأيكم؟ هل تفضلون تعديل اللغات الحالية لتدعم البرمجة التفرعية؟ أم تفضلون لغات جديدة مبنية من الأساس على البرمجة التفرعية كـ F#?
وفي 24 فبراير 2009 06:18 ص، ظهر شبح ابتسامة على وجه عبد اللطيف حاجي علي وهو يقول:
اللغة تدعى Cilk وهي تعديل على لغة C لتدعم البرمجة التفرعية بإضافة أربع أو خمس كلمات جديدة. ما رأيكم؟ هل تفضلون تعديل اللغات الحالية لتدعم البرمجة التفرعية؟ أم تفضلون لغات جديدة مبنية من الأساس على البرمجة التفرعية كـ F#?
لا أحبذها بصراحة. طريقة البرمجة بـ C و ++C أساساً لا تساعد على البرمجة التفرعية، حيث لا تعلم إن كان للإجراء آثار جانبية أو إن كان قابلاً للنداء من عدة أماكن في نفس الوقت (re-entrant)، ناهيك عن المتغيرات العامة 😖 .
لغة #F بالذات هي حالة فريدة بين بقية اللغات الوظيفية كهاسكل وسكيم وإرلانج. فهي لغة وظيفية أولاً، مع دعم للبرمجة التلقينية كما هو الحال في C و ++C. هذا يعني أنك قادر على التعامل مع الكود الموجود حالياً والمكتوب بلغات C و NET. أو بعبارة أخرى ستربح أحسن العالـَمَين. 😄
نحن حقاً بحاجة إلى لغة تتيح لك التعامل مع الإجراءات كأية كائنات برمجية أخرى كالمتغيرات والكلاسات، حيث تقوم بتركيب الإجراءات مع بعضها البعض وتنفذها على مجموعة بيانات لتحصل على رد محفوظ ببنية محددة، وبطريقة سهلة وسلسة.
من المثير للاهتمام أن المظللات تعتبر بنية برمجية وظيفية هي الأخرى، إلا أن مشكلتها الكبرى هي ضيق مجال عملها. ولعل جمهور المبرمجين بمكتبة كودا (CUDA) قد أحسوا بفائدتها، كما أحسوا بمحدوديتها ☺
لغة مايسترو (Maestro) هي لغة برمجة جديدة قيد التطوير لمعالجة مسائل البرمجة التفرعية أو المتوازية. هناك مقابلة على القناة التاسعة في MSDN لمن يحب التعرف على الموضوع عن كثب:
مايسترو تطور مفهوم البرمجة التلقينية ليستوعب الفصل بين البيانات المشتركة بين خطوط المعالجة (shared state) والبيانات التي يمكن التعامل معها بشكل مستقل لكل خط معالجة. هكذا نتفادى الكثير من المتاعب التي تواجهنا عندما لا يلتزم مبرمج الـ ++C مثلاً بالضوابط الموضوعة لعمل خوارزمية ما على التوازي.
بيئة العمل تعتمد على NET. طبعاً، وهذه نقطة هامة للغة برمجة تنوي غزو الأسواق بسرعة.