ميسا (لغة برمجة)

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

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

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

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

كان لـ Mesa و Cedar تأثير كبير على تصميم لغات مهمة أخرى، مثل Modula-2 و Java ، وكانت وسيلة مهمة لتطوير ونشر أساسيات واجهات المستخدم الرسومية ، والبيئات الشبكية، والتقدمات الأخرى التي ساهمت بها Xerox في مجال علوم الكمبيوتر .

تاريخ

صُممت ميسا في الأصل في مختبر أنظمة الحاسوب (CSL)، وهو فرع من مركز أبحاث زيروكس بالو ألتو، لجهاز ألتو ، وهو محطة عمل تجريبية تعمل بنظام برمجة دقيقة. في البداية، اقتصر انتشارها على مركز أبحاث بالو ألتو وعدد قليل من الجامعات التي تبرعت لها زيروكس ببعض أجهزة ألتو.

تم اعتماد لغة Mesa لاحقًا كلغة برمجة أنظمة لمحطات العمل التجارية لشركة Xerox مثل Xerox 8010 (Xerox Star, Dandelion) و Xerox 6085 (Daybreak) ، وخاصة لنظام التشغيل Pilot .

سمحت بيئة تطوير ثانوية، تُسمى بيئة تطوير زيروكس (XDE)، للمطورين بتصحيح أخطاء نظام التشغيل Pilot وتطبيقات واجهة المستخدم الرسومية ViewPoint باستخدام آلية تبديل العالم. سمح هذا بتبديل "حالة" العالم بالكامل، وتصحيح أخطاء أعطال النظام منخفضة المستوى التي كانت تُشلّ النظام بأكمله. لم تكن هذه التقنية فعّالة مع صور التطبيقات الكبيرة (عدة ميغابايتات)، ولذلك تخلّت بيئة Pilot/Mesa في الإصدارات اللاحقة عن عرض تبديل العالم عندما تمّ إيقاف تشغيل الأجهزة ذات التعليمات البرمجية الدقيقة لصالح محطات عمل SPARC وأجهزة الكمبيوتر الشخصية من Intel التي تعمل بمحاكي Mesa PrincOps لمجموعة تعليمات الأجهزة الأساسية.

تمت ترجمة لغة ميسا إلى لغة آلة مكدس، يُزعم أنها حققت أعلى كثافة برمجية على الإطلاق (حوالي 4 بايت لكل عبارة في لغة عالية المستوى). وقد تم الترويج لهذا في ورقة بحثية نُشرت عام 1981، حيث قام مطورو قسم تطوير أنظمة زيروكس (الذي كان آنذاك الذراع التطويري لمركز أبحاث بالو ألتو) بتحسين مجموعة التعليمات ونشروا ورقة بحثية حول كثافة التعليمات البرمجية الناتجة. [ 5 ]

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

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

الميزات الرئيسية

علم الدلالة

كانت لغة ميسا لغة برمجة ذات كتابة قوية مع فحص للأنواع عبر حدود الوحدات، ولكن مع مرونة كافية في نظام الأنواع الخاص بها بحيث يمكن كتابة مخصصات الذاكرة الديناميكية بلغة ميسا. [ 6 ]

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

كانت لغة ميسا تتمتع بإمكانيات غنية لمعالجة الاستثناءات ، مع أربعة أنواع منها. كما كانت تدعم مزامنة الخيوط عبر المراقبين. وكانت ميسا أول لغة تُطبّق خاصية البث (BROADCAST) للمراقبة، وهو مفهوم قدمه نظام التشغيل بايلوت. [ 7 ]

بناء الجملة

تعتمد لغة ميسا على بنية "أمرية" و"جبرية" ، مستندةً إلى لغتي ALGOL و Pascal بدلاً من BCPL أو C ؛ فعلى سبيل المثال، تُشار إلى الأوامر المركبة بالكلمتين المفتاحيتين BEGIN و END بدلاً من الأقواس . في ميسا، تُكتب جميع الكلمات المفتاحية بأحرف كبيرة. [ 1 ]

بسبب استخدام مركز أبحاث بالو ألتو (PARC) لنسخة عام 1963 من ترميز ASCII بدلاً من نسخة عام 1967 الأكثر شيوعًا، تضمنت مجموعة أحرف ألتو سهمًا يشير إلى اليسار (←) بدلاً من الشرطة السفلية. ونتيجةً لذلك، اعتاد مبرمجو ألتو (بمن فيهم مستخدمو ميسا، وسمول توك، وغيرهم) استخدام نمط كتابة الجملة (camelCase) للمعرفات المركبة، وهي ممارسة أُدرجت في أسلوب البرمجة القياسي لمركز أبحاث بالو ألتو. من ناحية أخرى، أتاح توفر السهم المشير إلى اليسار لهم استخدامه لمعامل التخصيص، كما كان في الأصل في لغة ALGOL.

عندما أراد مصممو لغة ميسا إضافة آلية للتعامل مع الاستثناءات، استعانوا بخريج ماجستير حديث من كولورادو، كان قد كتب أطروحته حول آليات معالجة الاستثناءات في لغات البرمجة الخوارزمية. أدى ذلك إلى تطوير آلية معالجة استثناءات هي الأغنى في ذلك الوقت، وتضمنت الدوال الأساسية SIGNAL و ERROR و ABORT و RETRY و CATCH و CONTINUE . ونظرًا لعدم احتواء اللغة على فحوصات آمنة للتحقق من التغطية الكاملة لمعالجة الإشارات، كانت الاستثناءات غير المعالجة سببًا شائعًا للأخطاء في البرامج المنشورة.

خشب الأرز

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

الأحفاد

  • تواصلت وزارة الدفاع الأمريكية مع شركة زيروكس لاستخدام لغة ميسا في لغة برمجة "آيرون مان" (انظر متطلبات لغة ستيل مان )، لكن زيروكس رفضت بسبب تضارب الأهداف. جادل موظفو مركز أبحاث زيروكس بارك بأن ميسا تمثل ميزة حصرية تجعل مهندسي البرمجيات في زيروكس أكثر إنتاجية من نظرائهم في الشركات الأخرى. في النهاية، اختارت وزارة الدفاع الأمريكية لغة البرمجة آدا من بين اللغات المرشحة وقامت بتطويرها.
  • تطورت واجهة Star Desktop الأصلية إلى ViewPoint Desktop، ثم أصبحت لاحقًا GlobalView ، والتي نُقلت إلى منصات يونكس مختلفة، مثل SunOS Unix و AIX . وتمت كتابة مُترجم Mesa إلى لغة C ، ثم جُمعت الشيفرة الناتجة للمنصة المستهدفة. كان هذا حلاً عمليًا، ولكنه جعل التطوير على أجهزة يونكس شبه مستحيل، نظرًا لفقدان قوة مُترجم Mesa وسلسلة الأدوات المرتبطة به. حققت الواجهة بعض النجاح التجاري على محطات عمل Sun SPARC في مجال النشر، إلا أن هذا النهج أدى إلى حصر المنتج في فرص سوقية محدودة.
  • في عام 1976، وخلال فترة تفرغه في مركز أبحاث زيروكس بارك، تعرف نيكلاوس ويرث على ميسا، التي كان لها تأثير كبير في تصميم لغة البرمجة مودولا-2 الخاصة به . [ 10 ]
  • تشير لغة جافا صراحةً إلى ميسا باعتبارها سلفاً لها. [ 11 ]

انظر أيضاً

مراجع

  1. 1 2 3 ميتشل، جيمس ج .؛ مايبوري، ويليام؛ سويت، ريتشارد (1979): دليل لغة ميسا - الإصدار 5.0 " زيروكس بارك، مختبر أنظمة الحاسوب (CSL)، التقرير الفني CSL-79-3. نسخة إلكترونية على www.bitsavers.org، تم الاطلاع عليها بتاريخ 15-05-2019.
  2. ميسا ، مجموعة الحفاظ على البرمجيات
  3. بيري، تي إس (مايو 1988). ""طباعة أي شيء باستخدام لغة PostScript: دراسة حالة". مجلة IEEE Spectrum ، المجلد 25 ، العدد 5، الصفحات 42-46 . doi : 10.1109/6.4550 . S2CID 33376390 . 
  4. دليل لغة ميسا ، الفصل 7. (يستخدم الدليل مصطلح الوحدة النمطية بمعنى ملف المصدر.)
  5. سويت، ريتشارد؛ ساندمان، جيمس (مارس 1982)، "تحليل تجريبي لمجموعة تعليمات ميسا"، وقائع الندوة الدولية الأولى حول الدعم المعماري للغات البرمجة وأنظمة التشغيل - ASPLOS-I ، الصفحات 158-166 ، doi : 10.1145/800050.801839 ، ISBN  0897910664، S2CID 1353842 
  6. غيشكي، تشارلز ؛ موريس، جيمس هـ .؛ ساتيرثويت، إدوين هـ. (أغسطس 1977). "التجربة المبكرة مع ميسا" . اتصالات رابطة مكائن ​​الحوسبة . 20 (8): 540-552 . doi : 10.1145/359763.359771 . S2CID 15737342 . 
  7. لامبسون، بتلر دبليو ؛ ريديل، ديفيد دي. (فبراير 1980). "تجربة مع العمليات والمراقبين في ميسا" . اتصالات رابطة مكائن ​​الحوسبة . 23 (2): 105-117 . CiteSeerX 10.1.1.142.5765 . doi : 10.1145/358818.358824 . S2CID 1594544 .  
  8. لامبسون، بتلر دبليو. وصف لغة سيدار . تقرير فني من مركز أبحاث زيروكس بارك. مؤرشف من الأصل في 13 فبراير 2008.
  9. سوينهارت، دانيال سي؛ زيلويغر، بول تي؛ هاغمان، روبرت بي (يوليو 1985). "بنية الأرز". إشعارات SIGPLAN . 20 (7): 230-244 . CiteSeerX 10.1.1.110.9565 . doi : 10.1145/800225.806844 . S2CID 2788992 .  
  10. ويرث، نيكلاوس (2007). "موديولا-2 وأوبرون" . وقائع المؤتمر الثالث لجمعية ACM SIGPLAN حول تاريخ لغات البرمجة . سان دييغو. الصفحات 3-1 – 3-10 . CiteSeerX 10.1.1.91.1447 . doi : 10.1145/1238844.1238847 . ISBN   978-1-59593-766-7. S2CID 1918928 . {{cite book}}: CS1 maint: موقع الناشر مفقود ( رابط ) .
  11. جوسلينج، جيمس ؛ جوي، بيل ؛ ستيل، جاي ؛ براخا، جلعاد . مواصفات لغة جافا ( الطبعة الثانية).