ALGOL 68C
ALGOL 68C هي لغة برمجة حاسوبية إجرائية ، وهي لهجة من ALGOL 68 ، طُوِّرت بواسطة ستيفن ر. بورن ومايكل جاي لبرمجة نظام كامبريدج للجبر (CAMAL). كُتِبَ المُترجم الأولي بلغة مُترجم برينستون النحوي (PSYCO، من قِبَل إدغار ت. آيرونز ) الذي نفّذه جيه إتش ماثيومان في كامبريدج.
تم استخدام ALGOL 68C لاحقًا لنظام التشغيل CHAOS الخاص بجهاز الكمبيوتر CAP ذي الأمان القائم على القدرات في جامعة كامبريدج في عام 1971. ومن بين المساهمين الأوائل الآخرين أندرو د. بيريل [ 1 ] وإيان ووكر.
تم إجراء العمل اللاحق على المترجم بعد أن غادر بورن جامعة كامبريدج في عام 1975. تمت إضافة جمع البيانات المهملة ، ولا تزال قاعدة التعليمات البرمجية تعمل على نظام تشغيل/MVT محاكى باستخدام Hercules .
كان مُترجم لغة ALGOL 68C يُنتج مخرجات بلغة ZCODE ، وهي لغة وسيطة تعتمد على المسجلات، والتي يُمكن تفسيرها أو ترجمتها إلى ملف تنفيذي أصلي. وقد شجعت هذه القدرة على تفسير أو ترجمة ZCODE على نقل ALGOL 68C إلى العديد من منصات الحوسبة المختلفة . فإلى جانب حاسوب CAP ، نُقل المُترجم إلى أنظمة أخرى، بما في ذلك نظام مراقبة المحادثات (CMS) و TOPS-10 و Zilog Z80 .
ملحقات ALGOL 68C إلى ALGOL 68
فيما يلي عينة من بعض التوسعات البارزة: [ 2 ]
- op := تلقائي لأي عامل، على سبيل المثال
*:=و+:= UPTO،DOWNTOوفيUNTILعبارات التكرار؛- معامل الإزاحة (
:=:=) ANDFوالعناصر النحوية .ORFTHEF- تجميع منفصل -
ENVIRONبندUSINGوبند - لم يتم تحديد النطاقات
- الحدود في المُعلنات الرسمية
CODE...EDOCبند - لتضمين ZCODE
عبارات " ENVIRONو"USING
يتم التجميع المنفصل في لغة ALGOL 68C باستخدام عبارات ENVIRON`and` USING. ENVIRONتحفظ عبارة `and` البيئة الكاملة عند ظهورها. USINGيتم إدراج وحدة نمطية منفصلة مكتوبة بدءًا من عبارة `and` فعليًا في الوحدة النمطية الأولى عند ENVIRONظهور عبارة `and`.
ENVIRONوهي USINGمفيدة لأسلوب البرمجة من أعلى إلى أسفل ، على عكس أسلوب البرمجة من أسفل إلى أعلى الذي تنطوي عليه آليات المكتبة التقليدية.
تُعدّ هذه البنود بمثابة عكسٍ لـ #include الموجودة في لغة البرمجة C ، أو import الموجودة في لغة بايثون . والغرض من هذه ENVIRONالآلية هو السماح بتقسيم مصدر البرنامج إلى أجزاء ذات حجمٍ مناسب. يكفي تحليل ملف المصدر المشترك مرةً واحدةً فقط، على عكس #include الموجودة في لغة البرمجة C حيث يجب تحليل ملف التضمين لكل ملف مصدر يتضمنه.
مثال على ENVIRONجملة
ملف باسم mylib.a68 :
يبدأ عدد صحيح dim = 3؛ ثابت عدد صحيح := 120; متغير مثال بيئي 1؛ مصفوفة الوضع = [dim, dim]REAL; # تعريف نوع # المصفوفة m1؛ a number := ENVIRON EXAMPLE2; اطبع((رقم)) نهاية
مثال على USINGجملة
ملف باسم usemylib.a68 :
باستخدام المثال 2 من "mylib" يبدأ مصفوفة m2؛ مثال فقط. print((رقمًا)); # مُعلن في mylib.a68 # print((2 UPB m1)); # مُعلن عنه أيضًا في mylib.a68 # مثال على بيئة 3؛ يمكن تداخل البيئات. 666 نهاية
القيود المفروضة على اللغة من معيار ALGOL 68
- لا يدعم ALGOL 68 FLEX والمصفوفات ذات الأطوال المتغيرة
MODE STRINGتم التنفيذ بدون FLEX- لم يتم تنفيذ البند الموازي لـ PAR
- نقل غير قياسي
- آحرون...
كان هناك مترجم ومجمع للغة ALGOL 68C متاحًا لأجهزة PDP-10 و IBM System/360 والعديد من أجهزة الكمبيوتر الأخرى.
الثقافة الشعبية
استخدم جاي وبورن سلفًا مبكرًا جدًا لهذا المترجم لكتابة أول برامج لعبة الحياة على جهاز PDP-7 المزود بشاشة DEC 340. [ 3 ]
تُفصّل أعدادٌ مختلفة من مجلة "ليفربول سوفتوير غازيت" تفاصيل تطبيق Z80. كان المُصرّف يتطلب حوالي 120 كيلوبايت من الذاكرة للتشغيل؛ لذا فإن ذاكرة Z80 البالغة 64 كيلوبايت صغيرة جدًا لتشغيل المُصرّف. لذلك، كان لا بد من ترجمة برامج ALGOL 68C الخاصة بـ Z80 ترجمةً متقاطعة من حاسوب CAP الأكبر ، أو حاسوب IBM System/370 المركزي .
Algol 68C و Unix
أعاد ستيفن بورن لاحقًا استخدام عبارات ALGOL 68 و في shell بورن الشائع لنظام Unix ، ولكن مع تغيير صيغة وإزالتها واستبدالها بـ (لتجنب التعارض مع أداة od ).if ~ then ~ else ~ ficase ~ in ~ out ~ esacfor ~ while ~ do ~ odinoutoddone
بعد كامبريدج، أمضى بورن تسع سنوات في مختبرات بيل مع فريق يونكس الإصدار السابع. بالإضافة إلى تطوير واجهة بورن، قام بنقل لغة ALGOL 68C إلى يونكس على جهاز DEC PDP-11-45 ، وأضاف خيارًا خاصًا إلى مصحح أخطاء يونكس الخاص به، Advanced Debugger (adb)، للحصول على تتبع مسار الاستدعاء للبرامج المكتوبة بلغة ALGOL 68C. إليكم مقتطفًا من صفحات دليل يونكس الإصدار السابع: [ 4 ]
اسم أداة تصحيح الأخطاء adb ملخص بنك التنمية الآسيوي [-w] [ objfil [ كورفيل ] ] [...] الأوامر [...] المُعدِّل أوامر متنوعة. المُعدِّلات المتاحة نكون: [...] تتبع مكدس ALGOL 68. إذا كان العنوان هو وبناءً على ذلك، يُعتبر هذا العنوان هو عنوان الإطار الحالي (بدلاً من r4). إذا كان العد إذا تم إعطاء عدد الإطارات الأول فقط تتم طباعتها.
مراجع
- ↑ بيريل، أندرو د. (ديسمبر 1977). "برمجة الأنظمة بلغة عالية المستوى" (ملف PDF) . أطروحة مقدمة لنيل درجة دكتوراه الفلسفة . جامعة كامبريدج . تاريخ الاطلاع: 22 أبريل 2007 .
- ↑ بورن، ستيفن ر .؛ بيريل، أندرو د.؛ ووكر، إيان (1975). دليل مرجعي لبرنامج ALGOL 68C . مختبر الحاسوب بجامعة كامبريدج.
- ↑ غاردنر، مارتن (أكتوبر 1970). "التركيبات الرائعة للعبة سوليتير الجديدة "الحياة" لجون كونواي"( ملف PDF) . الألعاب الرياضية. مجلة ساينتفك أمريكان . العدد 223. الصفحات 120-123 .
بالنسبة للمجموعات السكانية المعمرة مثل هذه، يستخدم كونواي أحيانًا جهاز كمبيوتر PDP-7 مزودًا بشاشة يمكنه من خلالها مراقبة التغيرات [...] كتب البرنامج كل من إم جيه تي جاي وإس آر بورن. لولا هذا البرنامج، لكان من الصعب التوصل إلى بعض الاكتشافات المتعلقة باللعبة.
- ↑ "متصفح الدليل المعياري: Adb" . UnixDev.net . مؤرشف من الأصل بتاريخ 2016-03-03 . تم الاطلاع عليه بتاريخ 2020-04-17 .
روابط خارجية
- الموقع الرسمي
- كامبريدج ALGOL 68: مدرجة في القائمة التاريخية للغات الحاسوب - تتضمن أكثر من 10 مراجع منشورة.
- نقل ALGOL 68C – بي جيه غاردنر، جامعة إسيكس – مارس 1977 (من 370 إلى DECsystem-10)
- تشغيل ALGOL 68C على MVS - كيفية تثبيت ALGOL 68C على نظام MVS محاكى
- تنفيذ ALGOL 68
- برامج المحاكاة الافتراضية
