Subtext (لغة برمجة)

جداول تخطيطية. نسخة تجريبية أولية من بيئة Subtext، توضح "الشروط متعددة الأشكال" الفريدة الموجودة في بيئة التطوير المتكاملة.

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

تم إنشاء Subtext بواسطة جوناثان إدواردز الذي قدم ورقة بحثية حول اللغة إلى OOPSLA . وقد تم قبولها كجزء من مؤتمر عام 2005.

بيئة

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

تم إصدار معاينات الفيديو المبكرة لبيئة Subtext حوالي عام 2006، [ 1 ] والتي أظهرت دلالات برامج Subtext، والتكامل الوثيق مع بيئة Subtex ووقت التشغيل.

تُعرَّف برامج Subtext وتُعالَج (أو تُغيَّر) بإضافة عناصر من أنواع مختلفة وربطها بشجرة بناء الجملة، وإدخال القيم أو الأسماء حسب الحاجة، بدلاً من كتابة البرامج النصية. وبفضل تصميم لغة Subtext وبيئتها، لا يوجد فرق بين تمثيل البرنامج وتنفيذه. فمثل جداول البيانات، تُنفَّذ برامج Subtext مباشرةً ضمن بيئة ووقت تشغيل، والبرمجة هي معالجة مباشرة لهذه العمليات عبر بيئة رسومية . وعلى عكس لغات البرمجة الوظيفية التقليدية ، تتميز Subtext بدلالات بسيطة، وهي قابلة للتطبيق بسهولة على الأنظمة التفاعلية التي تتطلب حالة قابلة للتغيير، وإدخال/إخراج، وتزامن، وفقًا لنموذج يُعرف باسم " البرمجة التفاعلية ". [ 2 ] ويمكن استخدام مدخلات وحدة التحكم ("الاستدعاءات") عبر تدفق البيانات داخل برنامج Subtext، مما يسمح للمستخدمين بمعالجة القيم بشكل تفاعلي.

التماسك

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

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

شعار لغة البرمجة Coherence

تُؤدي تغييرات الحالة إلى أحداث تُسمى ردود الفعل، والتي بدورها تُغير حالات أخرى. يُعرَّف ترتيب التنفيذ المتسق بأنه الترتيب الذي يُنفَّذ فيه كل رد فعل قبل أي ردود فعل أخرى تتأثر بتغييراته. يُكتشف الترتيب المتسق بشكل تكراري من خلال رصد حالات عدم الاتساق عند حدوثها وتتبع آثارها. تُعدّ الشجرة القابلة للتغيير ذات النوع الديناميكي اللبنة الأساسية للاتساق. أما آلية التجريد الأساسية فهي الشجرة الافتراضية، التي تُحسب قيمتها عند الحاجة، ويُنتج سلوكها من خلال ردود الفعل المتسقة. [ 4 ]

مراجع

  • البرمجة المتمحورة حول المثال، بقلم جوناثان إدواردز. نُشر في مؤتمر OOPSLA، أكتوبر 2004. يصف هذا المقال تحسينات بيئة التطوير المتكاملة (IDE) باستخدام تقنيات واجهة المستخدم المتقدمة لعرض نتائج البرنامج أثناء التطوير، بدلاً من قيام المبرمج بتفسير كود البرنامج ذهنياً. توضح لقطات الشاشة من نموذج أولي لبيئة تطوير متكاملة باستخدام Eclipse هذه التقنيات من خلال أمثلة عملية.
  • النص الفرعي: الكشف عن بساطة البرمجة، بقلم جوناثان إدواردز. في مؤتمر OOPSLA أكتوبر 2005: وقائع المؤتمر السنوي العشرين لجمعية ACM SIGPLAN حول البرمجة الكائنية والأنظمة واللغات والتطبيقات.
  • نسخ ولصق من الدرجة الأولى لجوناثان إدواردز. مسودة ورقة بحثية لمختبر علوم الحاسوب والذكاء الاصطناعي في معهد ماساتشوستس للتكنولوجيا في مارس 2006. وصف تفصيلي ورسوم توضيحية لعناصر البرمجة الوظيفية المختلفة داخل بيئة Subtext الأولى، بما في ذلك تدفق البيانات، والتعيينات، واستدعاء "الإجراء"، وحالة البيانات الحالية والافتراضية، والمعاملات المتزامنة، وتشغيل وكيل وحدة التحكم.
  • رد الفعل المتماسك، جوناثان إدواردز. في مؤتمر OOPSLA Onward '09. يوثق بدايات لغة برمجة تجريبية تستند بشكل فضفاض إلى Subtext، والتي تستخدم "رد الفعل المتماسك"، وهو نموذج جديد للحوسبة القائمة على التغيير لتنسيق تأثيرات البرامج وآثارها الجانبية تلقائيًا. (تقرير)
تم الاستشهاد به
  1. مقدمة إلى Subtext، الإدخال/الإخراج، والحالة القابلة للتغيير ، أول عرض توضيحي لبيئة Subtext
  2. نسخ ولصق من الدرجة الأولى ، مسودة ورقة بحثية من معهد ماساتشوستس للتكنولوجيا CSAIL بقلم جوناثان إدواردز في عام 2006.
  3. الصفحة الرئيسية لـ Coherence ، تُشير إلى استمرار Subtext
  4. DSpace@MIT  : رد فعل متماسك ، الأرشيف الرقمي لمختبر علوم الحاسوب والذكاء الاصطناعي، التقارير الفنية