كومال
COMAL ( لغة الخوارزمية المشتركة ) هي لغة برمجة حاسوبية تم تطويرها في الدنمارك بواسطة Børge R. Christensen و Benedict Løfstedt وتم إصدارها في الأصل عام 1975. وقد استندت إلى لغة البرمجة BASIC ، مع إضافة عبارات متعددة الأسطر وروتينات فرعية محددة جيدًا من بين إضافات أخرى.
كُتبت لغة COMAL في الأصل للحواسيب الصغيرة ، لكنها كانت صغيرة بما يكفي لتشغيلها على الحواسيب الدقيقة المبكرة أيضًا. وهي إحدى لغات البرمجة الهيكلية القليلة التي كانت متاحة وسهلة الاستخدام على الحواسيب المنزلية ذات 8 بت .
يحتوي كتاب "COMAL Kernel Syntax & Semantics" على التعريف الرسمي للغة. [ 1 ] وتُعدّ الإضافات الإضافية شائعة في العديد من التطبيقات. [ 2 ] [ 3 ] [ 4 ]
تاريخ
إصدارات الحواسيب الصغيرة
طُوِّر نظام COMAL في الأصل في الدنمارك على يد مدرس الرياضيات بورغ ر. كريستنسن. تلقت المدرسة التي كان يُدرِّس فيها حاسوبًا صغيرًا من طراز Data General Nova 1200 عام 1972، على أمل أن تبدأ المدرسة بتدريس علوم الحاسوب . وكان من المتوقع أن يتولى كريستنسن، الذي كان قد درس دورة قصيرة في هذا المجال بالجامعة، قيادة البرنامج وصيانة نظام الحاسوب. [ 5 ]
زُوِّد جهاز NOVA بلغة Data General Extended BASIC ، وسرعان ما شعر كريستنسن بالإحباط من الطريقة التي دفعت بها هذه اللغة غير المهيكلة الطلاب إلى كتابة أكواد رديئة الجودة يصعب قراءتها وبالتالي تقييمها. [ 5 ] وبينما كان كريستنسن يشكو من هذه المشاكل لعالم الحاسوب بينيديكت لوفستيدت، شجعه لوفستيدت على قراءة كتاب "البرمجة المنهجية" ، وهو كتاب جديد آنذاك عن تصميم لغات البرمجة من تأليف نيكلاوس ويرث ، مبتكر لغة باسكال . وقد أعجب كريستنسن بالكتاب، لكنه وجد أنه لا يستطيع استخدام باسكال مباشرةً، لأنها تفتقر إلى واجهة سطر الأوامر التفاعلية التي سهّلت على الطلاب تطوير البرامج باستخدام لغة BASIC. [ 6 ]
على مدى الأشهر الستة التالية، تبادل كريستنسن ولوفستيدت الرسائل لتصميم بديل للغة BASIC، يحتفظ بعناصرها التفاعلية مع إضافة عناصر هيكلية من لغة باسكال. [ 6 ] بحلول عام 1974، اكتمل تعريف اللغة، لكن كريستنسن لم ينجح في جذب اهتمام شركات البرمجيات لتطوير تطبيق لها. على مدى الأشهر الستة التالية، عمل مع اثنين من طلابه، الذين درّسهم لغة الآلة في مقرر NOVA 1200 ، لكتابة تطبيق بأنفسهم. من أولى الإضافات إمكانية استخدام أسماء متغيرات مكونة من ثمانية أحرف، بدلاً من حرف أو حرفين كما هو معتاد. [ 6 ] تضمنت الإضافات اللاحقة في الإصدار الأول عبارات متعددة الأسطر، وتعريفاتها ، وعبارة استدعائها. [ 7 ]IF...THEN...ELSE...ENDIFPROC...ENDPROCEXECUTE
كان أول تطبيق تجريبي (يشغل حلقة من خمسة أسطر) جاهزًا في 5 أغسطس 1974، والإصدار الأول (على شريط ورقي ) جاهزًا في فبراير 1975. بلغت تكاليف التطوير حوالي 300 دولار أمريكي . في ذلك الوقت فقط، اتخذ النظام (الذي كان يستخدم سابقًا اسمًا داخليًا دنماركيًا) اسم COMAL ، اختصارًا لـ Common Algorithmic Language (لغة الخوارزميات المشتركة )، مستوحى من لغة ALGOL التي كان كريستنسن يجربها. [ 7 ] ولذلك سُمي الإصدار الأول COMAL 75. لاحقًا، كتب كريستنسن كتابًا دراسيًا عن اللغة، والذي تطور لاحقًا إلى كتاب Beginning COMAL . [ 8 ]
إصدارات الحواسيب الصغيرة
في عام ١٩٧٨، بدأ كريستنسن بتطوير برنامج COMAL ليعمل على الحواسيب الصغيرة التي بدأت بالانتشار. كان قلقًا من أنه بدون هذا التطوير، سيُضطر إلى تدريس واستخدام لغة BASIC مجددًا مع اقتناء المدارس الدنماركية للأجهزة الجديدة. وبحلول عام ١٩٨٠، تمكنت نسخة من COMAL، طُوّرت بالتعاون مع مجموعة من طلاب الجامعات، من العمل على معالج Zilog Z80 ، ومن هنا صدر برنامج COMAL 80. [ ٧ ]
في نفس الفترة تقريبًا، طرحت شركة دنماركية جهاز "كوميت" ، وهو حاسوب صغير ذو قدرات عالية جدًا في ذلك الوقت، وكان أول جهاز يُشغّل نسخةً مما سيبدو عليه لاحقًا إصدارات برنامج "كومال". بعد ذلك، تنحّى كريستنسن عن تطوير "كومال" في الفترة ما بين عامي 1980 و1981، حيث أُسندت المهمة إلى مجموعات من بينها "يونيكومال" [ 9 ] ، التي أسسها موغنس كير، الذي كان قد راسل كريستنسن مُقدّمًا ملاحظاته النقدية على "كومال"، ثم قام بنقله إلى جهاز "كومودور بي إي تي" لإصدار النسخة 0.14. في ذلك الوقت، أصرّت المدارس الدنماركية على توفير "كومال" على أي حاسوب صغير تشتريه. [ 8 ]
في أوائل ثمانينيات القرن العشرين، فازت شركة أبل كمبيوتر بعقد لتزويد المدارس الثانوية الأيرلندية بأجهزة أبل 2 التي تعمل بنظامي التشغيل CP/M وCOMAL. [ 10 ] وقد لاقت هذه الأجهزة رواجًا في مجال التعليم [ 11 ] ، حتى أن بعض الكتب المدرسية كُتبت محليًا. [ 12 ] [ 13 ]
في عام 1984، أصدرت شركة Acornsoft تطبيق COMAL، من قبل ديفيد كريستنسن وجيم وارويك وديفيد إيفرز، لأجهزة الكمبيوتر BBC Micro و Acorn Electron ذات 8 بت (مع دليل من تأليف بول كريستنسن وروي ثورنتون [ 14 ] ).
بين عامي 1984 و1987، قامت شركة TeleNova ، التابعة للذراع الصناعية لنظام الاتصالات السويدي، بتصنيع حاسوب مكتبي يُدعى " Compis " لقطاع التعليم. وتم تزويد هذا الحاسوب بنسخة محسّنة من لغة البرمجة COMAL كلغة برمجة قياسية. وتم تطوير نسخ منها لأنظمة CP/M-86 و MS-DOS ، وتتوفر النسخة الأخيرة لنظام التشغيل Windows XP . أما دليل المستخدم (باللغة السويدية) فهو ISBN 1000. 91-24-40022-X.
في عام 1990، أصدر توماس لوندي وروري أوسوليفان النص المرجعي حول برمجة COMAL. [ 13 ] وقد قاموا بمطابقة ومقارنة COMAL مع لغة BBC Structured Basic .
حتى عام 2016، لا تزال لغة البرمجة COMAL مستخدمة بنشاط كلغة برمجة تعليمية. وتستمر بعض المدارس الثانوية في المملكة المتحدة في استخدامها لتدريس مادة الحوسبة. [ 15 ]
وصف
تم ابتكار لغة COMAL كمزيج من لغات البرمجة التعليمية الشائعة في ذلك الوقت، وهي BASIC و Pascal ، بالإضافة إلى رسومات السلحفاة الخاصة بلغة Logo ، على الأقل في إصداري Commodore و Compis . وكان الهدف من هذه اللغة هو إدخال عناصر البرمجة الهيكلية في بيئة تُستخدم فيها لغة BASIC عادةً.
في الإصدارات الأولى، كانت الإضافات الرئيسية للغة عبارة عن نسخ كتلية من عبارة IF...THEN، وبنية PROC. في معظم الإصدارات السابقة من لغة BASIC، كانت بنية الكتلة الوحيدة هي حلقة FOR...NEXT. على سبيل المثال:
10 FOR I = 1 TO 10 20 PRINT I 30 J = J + 1 40 NEXT Iيُنفّذ هذا المثال حلقة تكرارية عشر مرات، ويُنفّذ تعليمتين في كل مرة. في المقابل، يجب تنفيذ كل تعليمة تقريبًا في لغة BASIC، أو ما يُعرف بالعبارات ، على سطر واحد. وهذا ما يجعل تنفيذ العبارات متعددة الأسطر صعبًا عند تطبيق مبدأ "الكل أو لا شيء". على سبيل المثال، إذا أراد برنامج ما تنفيذ ثلاث تعليمات إذا كانت قيمة معينة أكبر من 10، فإن الحل المعتاد هو:
10 إذا كان A ≤ 10 ، فاطبع "A أكبر من 10" . 20 اطبع " A = A + 10 " . 30 اطبع "A الآن" ؛ A. 50 اطبع "العودة إلى البرمجة المجدولة بانتظام".يُخفي هذا النوع من البنية الهدف الحقيقي للبرنامج، إذ يُبنى القرار على منطق معاكس لما يرغب المبرمج في تحقيقه. إضافةً إلى ذلك، لفهم ما سيحدث في هذه الحالة، على القارئ البحث عن السطر 50، والذي قد يكون في البرامج الحقيقية أبعد بكثير في شفرة المصدر . هذا أحد الأسباب الرئيسية لتسمية برامج BASIC بـ" شفرة السباغيتي "، إذ أن تتبع منطقها يُشبه التنقل في البرنامج كما لو كان يتبع سلسلة من خيوط السباغيتي العشوائية.
تعالج لغة COMAL هذه المشكلة باستخدام الكتل البرمجية. ولتنفيذ نفس سلسلة التعليمات هذه، يُكتب في لغة COMAL ما يلي:
10 إذا كان A > 10، 20 اطبع " A أكبر من 10" 30 A = A + 10 40 اطبع "A الآن " ; A 50 نهاية الشرط 60 اطبع "العودة إلى برمجتنا المجدولة بانتظام"في هذه الحالة، يكتب المؤلف القرار الذي يسعى فعلاً إلى تحقيقه، ويمكن للقارئ تتبع المنطق ببساطة من خلال البحث عن النقطة ENDIF. ويُسهّل ذلك استخدام نظام COMAL للمسافات البادئة للإشارة بصرياً إلى الكتل.
أمثلة
- "مرحبا بالعالم!"
اطبع "مرحباً أيها العالم!"
- شروط
إذا تحقق الشرط ، فاتبع التعليمات .
- الحلقات
لكل رقم من 1 إلى 1000 ، اطبع الرقم .
- عبارات الطباعة التي تحتوي على متغيرات
أدخل "ما هو رقمك المفضل؟" : nmr# اطبع الصفحة "رقمك المفضل هو " ; nmr#
التوافر
كان COMAL متاحًا لـ:
انظر أيضاً
مراجع
- ↑ رايان، كيفن. "بناء جملة ودلالات نواة COMAL" (PDF) . Dansk Datahistorisk Forening . تم الاسترجاع في 8 نوفمبر 2017 .
- ↑ بين، ريتشارد؛ ليندسي، لين. "التعريف الشائع لمرض COMAL والاختبارات" . COMAL Today (24): 21– 46. تم الاطلاع عليه بتاريخ 20 يناير 2020 .
- ↑ "الكلمات المفتاحية المتوافقة مع COMAL الشائعة" . COMAL Today (25): 28. تم الاطلاع عليه بتاريخ 20 يناير 2020 .
- ↑ "Common COMAL -- Keyword syntax and examples" . COMAL Today (25): 29– 33. تاريخ الاسترجاع: 20 يناير 2020 .
- 1 2 كريستنسن 1985 ، ص. 1.
- 1 2 3 كريستنسن 1985 ، ص. 2.
- 1 2 3 كريستنسن 1985 ، ص. 4.
- 1 2 كريستنسن، بورج (مارس 1985). "قصة كومال" . كومال اليوم (25): 1-10 . تم الاطلاع عليه في 4 سبتمبر 2020 .
- 1 2 "UniComal 3.11 IBM PC" . أرشيف الإنترنت. يناير 1992. تم الاطلاع عليه في 1 أبريل 2021 .
- ↑ موينيهان، مايكل د. (8 أغسطس 1983). "تغطية كومال من أيرلندا" . إنفوورلد . 5 (32): 30. تم الاطلاع عليه بتاريخ 15 نوفمبر 2017 .
- ↑ برادي، مايكل ب. (مايو 1986). تصميم مقرر تمهيدي في البرمجة (أطروحة). لوبورو، ليستر، المملكة المتحدة: جامعة لوبورو للتكنولوجيا. hdl : 2134/10392 . تاريخ الاسترجاع: 15 نوفمبر 2017 .
- ↑ كيلي، جون (1984). أسس دراسات الحاسوب باستخدام برنامج COMAL ( الطبعة الثانية). دبلن، أيرلندا: شركة التعليم . تم الاطلاع عليه بتاريخ 20 يناير 2020 .
- 1 2 لندي، توماس؛ أوسوليفان، روري (1990). مقدمة في البرمجة الهيكلية بلغة BASIC وCOMAL . دبلن، أيرلندا: جيل وماكميلان. ISBN 978-0717116676.
- ↑ ثورنتون، روي؛ كريستنسن، بول (1984). COMAL على حاسوب BBC الصغير وAcorn Electron SBD 19. Acornsoft. ISBN 978-0907876908.
- ↑ لين، هيذر (12 فبراير 2015). "مدرسة غريسماونت الثانوية" . لايف كود . مؤرشف من الأصل في 29 مارس 2024. تم الاسترجاع في 29 مارس 2024 .
للمزيد من القراءة
- توماس لوندي وروري أوسوليفان: مقدمة في البرمجة الهيكلية بلغة BASIC و COMAL ، 1990
- روي أثيرتون: البرمجة المهيكلة باستخدام COMAL. هوروود، تشيتشستر 1982، رقم ISBN 0-85312-416-7.
- برامر، ماجستير (1982). "COMAL 80 - إضافة بنية إلى لغة BASIC". الحوسبة والتعليم . 6 (2): 179-192 . doi : 10.1016/0360-1315(82)90031-8 . ISSN 0360-1315 .
- بورج ر. كريستنسن: بداية كومال. هوروود، تشيتشيستر 1982، ISBN 0-85312-435-3.
- بورج ر. كريستنسن: دليل كومال المرجعي . مجموعة مستخدمي تورونتو PET، تورونتو أونتاريو، ISBN 0-920607-00-4.
- لوشنر، بوركهارد (1987). "كومال هو الشيء". نظام . 15 (3): 373-376 . دوى : 10.1016 / 0346-251X(87)90011-X . ISSN 0346-251X .
- لين ليندسي: دليل COMAL . دار نشر ريستون، ريستون، فرجينيا، 1983، رقم ISBN 0-8359-0878-X.
- غوردون شيغلي: كتاب تمارين كومال . مجموعة مستخدمي كومال، الولايات المتحدة الأمريكية، 1985، رقم ISBN 0-928411-05-2.
روابط خارجية
- OpenCOMAL لأنظمة Unix و MS-DOS و Win32
- نسخة معدلة من البرنامج المذكور أعلاه لأنظمة يونكس المتوافقة مع المعايير ، وخاصة لينكس وماك أو إس إكس
- برنامج UniComal 3.11 مُعبأ للتشغيل تحت DOSBox
- وصف برنامج COMAL، إصداراته، وخصائصه (1984)
- لغات البرمجة
- لغات البرمجة التعليمية
- لغات البرمجة الهيكلية
- لغات البرمجة الإجرائية
- لغات البرمجة التي تم إنشاؤها عام 1973
- عائلة لغات البرمجة الأساسية
