بروغراف

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

تاريخ

بدأ البحث في لغة بروغراف في جامعة أكاديا عام ١٩٨٢ كدراسة عامة للغات تدفق البيانات، مدفوعًا بندوة حول اللغات الوظيفية قدمها مايكل ليفين. استُخدمت الرسوم البيانية لتوضيح النقاش، مما أدى إلى فكرة: "بما أن الرسوم البيانية أوضح من الشفرة البرمجية، فلماذا لا نجعل الرسوم البيانية نفسها قابلة للتنفيذ؟" وهكذا وُلدت بروغراف - البرمجة بالرسومات - كلغة مرئية لتدفق البيانات. قاد هذا العمل الدكتور توماش بيترزيكوفسكي، وشارك في تأليف الأوراق البحثية الأولى ستان ماتوين وتوماس مولدنر. بين عامي ١٩٨٣ و١٩٨٥، بُنيت نماذج أولية بحثية على محطة عمل رسومية من نوع ثري ريفرز بيرك (بلغة باسكال ، حيث عُرضت البيانات على شكل كرات نارية تتحرك عبر روابط البيانات)، وجهاز فاكس مزود بطرفية تيكترونيكس ، كما بُرمج مُترجم تجريبي على جهاز كمبيوتر شخصي من نوع آي بي إم . استمر هذا العمل في جامعة نوفا سكوتيا التقنية على يد بيترزيكوفسكي والدكتور فيليب كوكس، بما في ذلك نسخة مكتوبة بلغة برولوج .

في عام ١٩٨٥، بدأ العمل على نموذج أولي قابل للتسويق على جهاز ماكنتوش، وهو الحاسوب الوحيد المتاح على نطاق واسع وبسعر منخفض مع دعم رسومات عالي المستوى في ذلك الوقت. في أوائل عام ١٩٨٦، استحوذت شركة غوناكارا صن سيستمز (التي أعيد تسميتها لاحقًا إلى تي جي إس سيستمز ) على هذا النموذج الأولي لتسويقه، وكانت تي جي إس سابقًا شركة استشارية أسسها بيترزيكوفسكي في جامعة أكاديا . بالتعاون مع بيترزيكوفسكي وكوكس، قام تيري كيلشو بتعيين وإدارة فريق التطوير الأصلي، وكان جيم لاسكي هو المطور الرئيسي. في عام ١٩٨٧، اقترح مارك زباكوفسكي دمج البرمجة الكائنية مع تدفق البيانات المرئي، مما أدى إلى إنشاء نظام "تدفق الكائنات". بعد ما يقرب من أربع سنوات من التطوير، تم طرح الإصدار التجاري الأول، الإصدار ١.٢، في مؤتمر OOPSLA في نيو أورليانز في أكتوبر ١٩٨٩. وقد فاز هذا المنتج بجائزة اختيار المحررين من مجلة MacUser لعام ١٩٨٩ لأفضل أداة تطوير. أضاف الإصدار 2.0، الذي صدر في يوليو 1990، مترجمًا إلى النظام.

غيّرت شركة TGS اسمها إلى Prograph International (PI) عام 1990. ورغم بطء المبيعات، شرعت الشركة عام 1992 في تطوير نسخة جديدة، Prograph CPX ( امتدادات متعددة المنصات )، بهدف بناء تطبيقات تعمل على منصات متعددة بالكامل. صدرت هذه النسخة عام 1993، وتلاها مباشرةً تطوير إطار عمل لتطبيقات العميل والخادم . وعلى الرغم من ازدياد المبيعات، لم تتمكن الشركة من تغطية تكاليف التشغيل، وبعد محاولة تمويل فاشلة أواخر عام 1994، أُعلنت إفلاسها مطلع عام 1995.

مع استمرار إجراءات الحراسة القضائية، شكّلت إدارة وموظفو شركة PI شركة جديدة باسم Pictorius ، والتي استحوذت على أصول PI. بعد ذلك بوقت قصير، بدأ تطوير نسخة ويندوز من برنامج Prograph CPX. ورغم أنها لم تُصدر رسميًا، إلا أن نسخًا من برنامج Prograph لنظام ويندوز كانت تُتاح بانتظام لعملاء Prograph CPX، وقد قام بعضهم بنقل تطبيقات موجودة مكتوبة بلغة Prograph لنظام ماكنتوش، بنسب نجاح متفاوتة.

بعد تغييرات إدارية في الشركة الجديدة، تحوّل التركيز من تطوير الأدوات إلى البرمجة المخصصة وتطوير تطبيقات الويب . في أبريل 2002، استحوذت مجموعة باراغون للتكنولوجيا في برمودا على قسم تطوير الويب في الشركة، وأُعيد تسميتها إلى باراغون كندا. احتفظت شركة ماكلين واتسون كابيتال، وهي شركة استثمارية مقرها تورنتو، والتي موّلت بيكتوريوس بشكل كبير، باسم بيكتوريوس وحقوق شفرة المصدر لبرنامج بروغراف. ظهرت إشارة إلى بيكتوريوس لفترة وجيزة على صفحة محفظة بيكتوريوس، لكنها اختفت لاحقًا. أُصدرت نسخة ويندوز من برنامج CPX لاحقًا للاستخدام المجاني، وكانت متاحة للتنزيل لفترة من الوقت من بقايا موقع بيكتوريوس الإلكتروني (الرابط أدناه).

في أواخر التسعينيات، تشكلت مجموعة من مستخدمي بروغراف ("بروغرافرز") أطلقوا على أنفسهم اسم "مبادرة بروغراف المفتوحة" (OPI)، بهدف الحفاظ على استمرارية بروغراف في مواجهة تطورات أنظمة التشغيل من آبل ومايكروسوفت. وسعت المجموعة لفترة من الزمن إلى إنشاء لغة برمجة مرئية مفتوحة المصدر لتكون خليفة لبروغراف، ولكن مع ظهور بيئة البرمجة المرئية مارتن من أنديسكوتيا، توقفت المشاركة في المجموعة بشكل أساسي.

تدعم بيئة التطوير المتكاملة Marten من شركة Andescotia Software لغة Prograph. [ 1 ]

وصف

منتجات بروغراف. جميع الصور مقدمة من ماك تيك.

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

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

تشغيل قاعدة بيانات Prograph. تنفيذ الأسلوب

في بروغراف، تُمثَّل الطريقة بسلسلة من الرموز، يحتوي كل رمز على تعليمات (أو مجموعة منها). داخل كل طريقة، يُمثَّل تدفق البيانات بخطوط في رسم بياني موجه . تتدفق البيانات في الجزء العلوي من الرسم البياني، وتمر عبر تعليمات مختلفة، ثم تعود في النهاية إلى الجزء السفلي (إن وُجد مُخرَج).

تتضح عدة خصائص لنظام Prograph في هذه الصورة لعملية فرز قاعدة البيانات. يُظهر الشريط العلوي أن هذه الطريقة، concurrent sort، تُمرر كمعامل واحد، A Database Object. ثم يُغذى هذا الكائن، عبر الخطوط، إلى عدة عمليات. تستخرج ثلاث من هذه العمليات فهرسًا مُسمى ( indexAإلخ) من الكائن باستخدام getterالعملية (يُمرر مُخرج المُستجلب غير المُتصل الكائن "بكامله")، ثم تُمرر الفهرس المُستخرج إلى عملية فرز. بعد ذلك، تُمرر مُخرجات عمليات الفرز هذه، بالإضافة إلى مرجع إلى قاعدة البيانات الأصلية، إلى العملية النهائية، update database. يُمثل الشريط السفلي في الصورة مُخرجات هذه الطريقة، وفي هذه الحالة لا توجد اتصالات بها، وبالتالي لا تُرجع هذه الطريقة قيمة. لاحظ أيضًا أنه على الرغم من أن هذه طريقة من فئة ما، إلا أنه لا يوجد self؛ إذا لزم الأمر، فيمكن توفير self كمدخل أو البحث عنه.

مشغلو وأجهزة تحكم بروغراف

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

تُنشأ الحلقات والفروع بتعديل العمليات باستخدام التعليقات التوضيحية. على سبيل المثال، تُنشأ حلقة تستدعي الدالة doitعلى قائمة بيانات مُدخلة عن طريق سحب عامل التشغيل doit أولاً، ثم إضافة مُعدِّل الحلقة، وتوفير القائمة كمدخل للحلقة. يسمح تعليق توضيحي آخر، وهو "injection"، بتوفير الدالة نفسها كمدخل، مما يجعل Prograph لغة ديناميكية إلى حد ما.

تنفيذ

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

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

انظر أيضاً

مراجع

  1. 1 2 "المنتجات  : Marten IDE 1.6" . شركة أنديسكوتيا للبرمجيات . تم الاطلاع عليه بتاريخ 31 مايو 2019 .

للمزيد من القراءة

  • كوكس، بي تي؛ بيترزيكوفسكي، تي (1984)، "أدوات برمجة متقدمة في بروغراف"، التقرير الفني 8408 ، هاليفاكس، نوفا سكوتيا: كلية علوم الحاسوب، جامعة نوفا سكوتيا التقنية.
  • كوكس، بي تي؛ موليجان، آي جيه (1984)، "تجميع لغة البرمجة الرسومية الوظيفية بروغراف"، التقرير الفني 8402 ، هاليفاكس، نوفا سكوتيا: كلية علوم الحاسوب، جامعة نوفا سكوتيا التقنية.
  • ماتوين، س.؛ بيترزيكوفسكي، ت. (1985)، "بروغراف: تقرير أولي"، لغات الحاسوب ، 10 (2): 91-126 ، doi : 10.1016/0096-0551(85)90002-5.
  • كيلشو، تيري (مايو 1991)، "الرسومات الأولية" ، مجلة ماك تك ، 7 (5).
  • كيلشو، تيري (يناير 1992)، "بروغراف 2.5" ، مجلة ماك تك ، 8 (1).
  • كيلشو، تيري (يناير 1993)، "درس مصور للأزرار في بروغراف" ، مجلة ماك تك ، 9 (1).
  • كيلشو، تيري (مارس 1994)، "مراجعة لبرنامج Prograph CPX 1.0" ، مجلة MacTech ، 10 ( 3): 64-74.
  • شموكر، كورت (نوفمبر 1994)، “Prograph CPX – A Tutorial” ، ​​مجلة MacTech ، 10 (11).
  • شمكر، كورت (يناير 1995)، "الأوامر والتراجع في بروغراف سي بي إكس" ، مجلة ماك تك ، 11 (1).
  • كورت شموكر (مارس 1995)، “المرشحات والمناخل في Prograph CPX” ، مجلة MacTech ، 11 (3).
  • شمكر، كورت (مايو 1995)، "MacApp و Prograph CPX - مقارنة" ، مجلة MacTech ، 11 (5).
  • شيفر، دان (1994)، قوة بروغراف CPX ، الولايات المتحدة الأمريكية: شبكة القارئ، ISBN 1-881513-02-5.
  • ستاينمان، إس بي؛ كارفر، كي جي (1995)، البرمجة المرئية باستخدام بروغراف سي بي إكس ، مانينغ، رقم ISBN 978-1-884777-05-9