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

من أرابيكا، الموسوعة الحرة

هذه هي النسخة الحالية من هذه الصفحة، وقام بتعديلها عبود السكاف (نقاش | مساهمات) في 01:06، 8 سبتمبر 2023 (بوت:إضافة بوابة (بوابة:برمجيات,بوابة:علم الحاسوب)). العنوان الحالي (URL) هو وصلة دائمة لهذه النسخة.

(فرق) → نسخة أقدم | نسخة حالية (فرق) | نسخة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث
بليس
BLISS
معلومات عامة
التصنيف
ظهرت في
1970
صممها
نظام التشغيل
التطوير
المطور
التأثير
متأثرة بـ
لغة ألغول
متفرقات
موقع الويب

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

بليس هي لغة لا تتطلب إدخال البيانات طباعةً تعتمد على التعابير بدلاً من جمل البيانات، وتتضمن بُنى لمعالجة الاستثناءات والروتينات المساعدة والماكرو. لكنها لا تتضمن جملة "GOTO" يشار إلى أن الاسم BLISS هو مختصر جملة «اللغة الأساسية لتنفيذ برمجات النظام» ("Basic Language for Implementation of System Software")أو لغة تنفيذ برمجية النظام«بالمقلوب (»System Software Implementation Language, Backwards). كانت تسمى سابقاً بـ«لغة بل لتنفيذ برمجيات النظام» على اسم «بل وولف». كان مترجم كارنيجي ميللون الأصلي معروفاً لاستخدامه المكثف لـ«أمثلة المترجم» ولتكوينه أساساً لكتاب «تصميم المترجم الأمثل». طورت ديجيتال إكوبمينت مترجمات BLISS لـPDP-10[1] PDP-11,[1] وVAX[1] وDEC PRISM[2] وتعليمات الميبس[1] وDEC Alpha[1] وأي إيه-32.[1] لم تشتهر هذه اللغة بين العملاء والقليل منهم كان لديه المترجم.[3] لكن شركة ديجيتال إكوبمينت استخدمته بكثافة في عملها خلال عقد 1980، حيث كتبت معظم برامج الأدوات في نظام تشغيل نظام الذاكرة الافتراضية المفتوح بلغة BLISS-32. بعد أن استحوذت شركة كومباك على ديجيتال إكوبمنت عملت على تطوير مترجم بليس لمعالجات Interl IA-64[1]

مثال على الكود

أخذ هذا المثال حرفياً من كتاب «دليل لغة بليس»:[4]

MODULE E1 (MAIN = CTRL) =
BEGIN
FORWARD ROUTINE
    CTRL,
    STEP;
ROUTINE CTRL =
!+
! هذا الإجراء يُدخل قيمة ويعالجها ومن ثم يخرج النتائج
!-
    BEGIN
    EXTERNAL ROUTINE
        GETNUM,     ! Input a number from terminal
        PUTNUM;     ! Output a number to terminal
    LOCAL
        X,          ! Storage for input value
        Y;          ! Storage for output value
    GETNUM(X);
    Y = STEP(.X);
    PUTNUM(.Y)
    END;
ROUTINE STEP(A) =
!+
! هذا الإجراء يضيف 1 إلى القيمة المعطاة
!-
    (.A+1);
END
ELUDOM

المراجع

  1. ^ أ ب ت ث ج ح خ Brender، Ronald F. (2002). "The BLISS programming language: a history" (PDF). Software: Practice and Experience. ج. 32 ع. 10: 955–981. DOI:10.1002/spe.470. مؤرشف من الأصل (PDF) في 2019-04-11.
  2. ^ MacLaren، Don (27 أغسطس 1987). "DECWest Compiler Project, Description, and Plan" (PDF). مؤرشف من الأصل (PDF) في 2019-05-29.
  3. ^ da Cruz, Frank (16 سبتمبر 1987). "News about Kermit Programs for VAX/VMS". Info-Kermit Digest (Mailing list). Kermit Project, Columbia University. مؤرشف من الأصل في 2017-03-05. اطلع عليه بتاريخ 2016-03-03. {{استشهاد بقائمة بريدية}}: الوسيط |القائمة البريدية= و|mailinglist= تكرر أكثر من مرة (مساعدة)
  4. ^ Bliss Language Manual, ديجيتال إكوبمينت (1987) نسخة محفوظة 04 نوفمبر 2017 على موقع واي باك مشين.

وصلات خارجية

للتحميل