مرجع
آخر الزيارات

ألغول 68 سي

839 كلمة•0 مشاهدة•🗒️ منذ 15 ساعة
باختصار: ألغول 68 سي هي لغة برمجة حاسوبية إجرائية وهي لهجة من الغول 68 طُوِّرت بواسطة ستيفن ر. تتناول المقالة 15 قسماً، منها «ملف باسم mylib.a68 :BEGIN»، «أوامر متنوعة. المُعدِّلات المتاحة» و«الثقافة الشعبية».
المحتويات
  1. ملف باسم mylib.a68 :BEGIN
  2. أوامر متنوعة. المُعدِّلات المتاحة
  3. الثقافة الشعبية
  4. بنود ENVIRON و USING
  5. END
  6. a number := ENVIRON EXAMPLE2;
  7. ENVIRON EXAMPLE1;
  8. ملخص
  9. مثال على جملة USING
  10. print((a number)); # declared in mylib.a68 #
  11. إذا تم إعطاء عدد الإطارات الأول فقط
  12. الروابط الخارجية
  13. [...]
  14. أَلغول 68 سي و يونيكس
  15. نقل غير قياسي

قبل الخوض في التفاصيل، ألغول 68 سي هي لغة برمجة حاسوبية إجرائية وهي لهجة من الغول 68 طُوِّرت بواسطة ستيفن ر. بورن ومايكل جاي لبرمجة نظام كامبريدج للجبر (كَامِل). كُتِبَ المُترجم الأولي بلغة مُترجم برينستون النحوي (ساي-كو من قِبَل إدغار ت. آيرونز ) الذي نفّذه جيه إتش ماثيومان في كامبريدج. وفيما يلي تفاصيل أوسع عن ذلك.

  • ملحقات لغة ألغول 68 سي إلى لغة ألغول 68
  • فيما يلي عينة من بعض التوسعات البارزة:
  • يتم تعيين قيمة op := تلقائيًا لأي عامل مثلًا *:= و +:
  • UPTO و DOWNTO و UNTIL في عبارات التكرار؛
  • عامل الإزاحة ( :=:= )
  • العناصر التركيبية ANDF و ORF و THEF .
  • تجميع منفصل - عبارة ENVIRON وعبارة USING
  • لم يتم تحديد النطاقات
  • الحدود في المُعلنات الرسمية
  • CODE ... بند EDOC - لتضمين زيكود

من جانب آخر، أُجريت أعمال لاحقة على المُترجم بعد أن غادر بورن جامعة كامبريدج عام 1975. أُضيفت خاصية جمع البيانات المهملة ولا تزال قاعدة التعليمات البرمجية قيد التشغيل. على نظام تشغيل/أم في تي محاكى باستخدام هَر-كْيُو-ليز.

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

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

ملف باسم mylib.a68 :BEGIN

INT a number := 120; # a variable #

INT dim = 3; # a constant #

أوامر متنوعة. المُعدِّلات المتاحة

نكون:

الثقافة الشعبية

في هذا الإطار، تُفصّل أعدادٌ مختلفة من مجلة "ليفربول سوفتوير غازيت" تفاصيل تطبيق زي80. كان المُصرّف يتطلب نحو 120 كيلوبايت من الذاكرة للتشغيل لذا فإن ذاكرة زي80 البالغة 64 كيلوبايت صغيرة جدًا لتشغيل المُصرّف. لذلك كان لا بد من ترجمة برامج أَلغول 68 سي الخاصة بـ Z80 ترجمةً متقاطعة من حاسوب كاب الأكبر أو حاسوب آي-بي-إم سيستم 360 المركزي.

علاوةً على ذلك، استعمل جاي وبورن سلفًا مبكرًا جدًا لهذا المترجم لكتابة أول برامج لعبة الحياة على جهاز بي دي بي 7 المزود بشاشة دي إي سي 340.

بنود ENVIRON و USING

من جهة ثانية، تعتبر ENVIRON و USING مفيدة لأسلوب البرمجة من أعلى إلى أسفل على عكس أسلوب البرمجة من أسفل إلى أعلى الذي تنطوي عليه آليات المكتبة التقليدية.

وعلى صعيد آخر، يتم التجميع المنفصل في لغة لغة ألغول 68 سي باستخدام عبارتي ENVIRON و USING . تحفظ عبارة ENVIRON بيئة التشغيل بالكامل عند ظهورها. أما الوحدة النمطية المنفصلة المكتوبة بدءًا بعبارة USING فتُدرج فعليًا في الوحدة النمطية الأولى عند ظهور عبارة ENVIRON.

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

مثال على بند ENVIRON

END

  • القيود المفروضة على اللغة من معيار ALGOL 68
  • لا يدعم أَل-غول 68 فلكس والمصفوفات ذات الأطوال المتغيرة
  • تم تنفيذ MODE STRING بدون مرونة
  • لم يتم تنفيذ بند التوازي بار

a number := ENVIRON EXAMPLE2;

END

print((a number))

ENVIRON EXAMPLE1;

MATRIX m1;

MODE MATRIX = [dim, dim]REAL; # a type definition #

ملخص

  • بنك التنمية الآسيوي [-w] [ objfil [ كورفيل
  • [...]
  • الأوامر
  • [...]
  • المُعدِّل

مثال على جملة USING

  • ملف باسم usemylib.a68 :USING EXAMPLE2 FROM "mylib"
  • BEGIN
  • MATRIX m2; # example only #

print((a number)); # declared in mylib.a68 #

  • print((2 UPB m1)); # also declared in mylib.a68 #
  • ENVIRON EXAMPLE3; # ENVIRONs can be nested #
  • 666

إذا تم إعطاء عدد الإطارات الأول فقط

المراجع

تتم طباعتها.

الروابط الخارجية

وفي السياق ذاته، Running ALGOL 68C on MVS - how to install ALGOL 68C on an emulated MVS system

في هذا الإطار، A Transportation of ALGOL 68C – PJ Gardner, University of Essex – March 1977 (From 370 to DECsystem-10)

من جهة ثانية، Cambridge ALGOL 68: on the historical roster of computer languages – includes 10+ publication references.

[...]

  • تتبع مكدس ALGOL 68. إذا كان العنوان هو
  • وبناءً على ذلك، يُعتبر هذا العنوان هو عنوان
  • الإطار الحالي (بدلاً من r4). إذا كان العد

أَلغول 68 سي و يونيكس

ومن ناحية أخرى، أعاد ستيفن بورن لاحقًا استخدام عبارات if ~ then ~ else ~ fi و case ~ in ~ out ~ esac و for ~ while ~ do ~ od في واجهة أوامر Unix Bourne الشائعة، ولكن مع تغيير صيغة in وإزالة out واستبدال od بـ done (لتجنب التعارض مع أداة od ).

أداة تصحيح الأخطاء adb

من جهة ثانية، بعد كامبريدج أمضى بورن تسع سنوات في مختبرات بيل مع فريق يونكس الإصدار السابع. فضلًا عن تطوير واجهة بورن قام بنقل لغة أَلغول 68 سي إلى يونكس على جهاز دي إي سي بي دي بي-11-45 وأضاف خيارًا خاصًا إلى مصحح أخطاء يونكس الخاص به أدفانسد ديباجر (إيه دي بي) للحصول على تتبع مسار الاستدعاء للبرامج المكتوبة بلغة أَلغول 68 سي. إليكم مقتطفًا من صفحات دليل يونكس الإصدار السابع:

اسم

نقل غير قياسي

آحرون...

وفي السياق ذاته، كان هناك مترجم ومجمع للغة أَلغول 68 سي متاحًا لأجهزة بي دي بي 10و آي-بي-إم سيستم 360 والكثير من أجهزة الكمبيوتر الأخرى.

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.