لغة البرمجة الأساسية المختلطة

عودة للموسوعة

BCPL (لغة البرمجة الأساسية المختلطة) هي لغة برمجة إجرائية، ومنظم وضرورية صممها مارتن ريتشاردز من جامعة كامبريدج في 1966.

التصميم

في الاصل صممت لكتابة مترجمات لغات أخرى، BCPL لم يعد استعمالها شائع. ومع ذلك، لا نزال نشعر بنفوذها حتى الآن جرد بانخفاض وتم عمل إصدار بقواعد لغة مختلفة ومسماه بدل من من BCPL، أصبح B، وكانت اللغة التي استندت عليها لغة البرمجة C. BCPL كان أول لغة برمجة استخدمت القوس المجعد، والأقواس المتعرجة بقت عبر تغييرات بناء القواعد، وأصبحت وسيلة شائعة تدل على بيانات كود مصدر برنامج. في الممارسة العملية، على لوحات المفاتيح المحدودة هذه الايام، غالبا ما تستخدم برامج المصدر تسلسل $ (و$) في مكان الرموز و{. وتعليقات السطر واحد '/ /' BCPL، والتي لم تؤخذ في C، وعادت إلى الظهور في سي++، وبعد ذلك في C99.

وكان BCPL ردا على الصعوبات التي سابقتها في لغة البرمجة المختلطة (CPL)، التي أنشئت أوائل الستينات. ريتشاردز أنشاء BCPL من خلال "إزالة مميزات للغة الكاملة التي تجعل من الصعب تجميعها". وكان تطبيق مترجم اللغة الأول، لـ IBM 7094 تحت نظام اقتسام للوقت متوافق (CTSS)، وخطت في حين كان ريتشاردز يزور مشروع MAC في MIT (]]معهد ماساتشوستس للتكنولوجيا[[) في ربيع عام 1967. وقد وصفت الغة لأول مرة في ورقة قدمت إلى المؤتمر الحاسوب المشهجرة في ربيع 1969.

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

أحد الأسباب الرئيسية لقابلية المترجم للنقل يكمن في هيكلته. وقد انقسم إلى قسمين : الطرف الأمامي تقوم بتحليل المصدر وتولد رمزO للجهاز الافتراضي، والطرف الخلفي اخذ رمزO وترجمه إلى رمز للجهاز المستهدف. هناك فقط 1 /خمسة من رموز المترجم بحاجة إلى إعادة كتابة لدعم جهاز جديد، وهي مهمة تستغرق عادة ما بين 2 وخمسة أشهر. وأصبح هذا النهج ممارسة شائعة في وقت لاحق، على سبيل المثال، باسكال أوچاڤا، ولكن مترجم ريتشاردز BCPL كان الأول لتحديد جهاز افتراضي لهذا الغرض.

اللغة غير عادية في وجود نوع واحد فقط من البيانات : حدثة، عدد محدد من البتات، وعادة ما يتم اختيارها لتتحد مع حدثة آلة البناء وبالقدرة الكافية لتمثيل أي عنوان تخزين صالح. لآلات كثيرة من ذلك الوقت، كان نوع البيانات حدثة 16 ]]بت [[. وهذا الخيار أثبت لاحقا أنه معضلة كبيرة عندما كانت تستخدم BCPL على الأجهزة التي أصغر بند عنونة فيها لم يكن حدثة، ولكن بايت أوعلى أجهزة مع أحجام أكبر للحدثات : 32 بت و64 بت، التي سمحت لهم بإدارة مسافات عنوان كبيرة.

وتم تحديد تفسير أي قيمة من قبل المشغلين الذين اعتادوا على معالجة القيم. (على سبيل المثال، + تضيف قيمتين معا وتتعامل معهما بوصفهما أعداد سليمة ؛! بلا إتجاه من خلال القيمة، وعالجتها بطريقة فعالة على أنها مؤشر.) ومن أجل حتى يعمل هذا، لم تقدم التطبيقات أي فحص للنوع. التدوين الرقمي المجري Hungarian notation تم وضعه للمساعدة المبرمجين على تجنب أخطاء النوع غير المقصودة.

عدم التطابق بين توجيه الحدثة لـ BCPL وأجهزة توجيه البايت تم معالجتها بعدة طرق. أحداها كان توفير إجراءات مخطة قياسية للتعبئة وتفريغ الحدثات إلى سلاسل بايتات. مفي وقت لاحق، تم إضافة ميزتين إلى اللغة : اختيارلمشغل مجال البايت وأقحام مشغل مراوغة البايت (أشيرت بواسطة الرمز '%').

BCPL تتولى ربط مجموعة الوحدات compilation units المنفصلة الممتدة بطريقة فريدة من نوعها. لا توجد متغيرات للمستخدم معلن عنها شاملاً، بدلا من ذلك هناك متجة شامل، الذي يشبه "فراغ مشهجر" في فورتران Fortran. جميع البيانات مشهجرة بين مجموعة الوحدات المتنوعة تضم المدرجات والمؤشرات إلى المتجهات المخزنة في مكان معد لهذا الغرض في متجة شامل. وبالتالي ملفات الرأس (الملفات المضمنة خلال التجميع باستخدام التوجيه "GET") تصبح الوسيلة الرئيسية لمزامنة البيانات الكاملة بين مجموعة الوحدات، التي تحتوي على توجيهات " GLOBAL" التي تسرد قائمة بأسماء رمزية، جميع مزدوج مع العدد الذي يقترن مع اسم الحدثة اللقاءة عدديا في المتجه الكامل. فضلا عن المتغيرات، ويحتوي المتجه الكامل أيضا على إجراءات الربط الخارجية. وهذا ما يجعل التحميل الديناميكي لمجموعة الوحدات تحقيقه سهل جدا. بدلا من الاعتماد على محمل الربط للتطبيق الأساسي.أعطت BCPL للمبرمج السيطرة ْ من عملية الربط بفاعلية.

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

BCPL كما هومشاع بأنها اللغة التي تم كتابة البرنامج الأصلي hello world program بها. كان الأول MUD مكتوب أيضا بلغة BCPL.

وكان الكثير من أنظمة التشغيل مكتوب جزئيا أوكليا بلغة BCPL (على سبيل المثال، TRIPOS وأجزاء كبيرة من AmigaOS، بما في ذلك بدء عمليات Kickstart وأقدم إصدارات AmigaDOS) وكانت BCPL أيضا اللغة الأولية المستخدمة في بذرة مشروع زيروكس بارك ألتوXerox PARC Alto، وهوأول كمبيوتر شخصي حديث، بين المشاريع الأخرى، ونظام إعداد وثيقة برافوخط أيضاً بلغة BCPL.

بحلول عام 1970، وجدت تطبيقات لـ Honeywell 635 و645, وIBM 360, وTX-2, وCDC 6400, وUnivac 1108, وPDP-9, وKDFتسعة وAtlas 2. وكان هناك أيضا نسخة المنتجة للمايكروبي بي سي BBC Micro في منتصف الثمانينات من منتجات كمبيوتر ريتشاردز، بدأت الشركة بجون ريتشاردز، شقيق الدكتور مارتن ريتشاردز. [citation needed] مشروع يوم قيامة بي بي سي BBC Domesday Project الذي قدم استخدام اللغة أيضاً. تم أيضا عمل إصدارات BCPL لأجهزة الكمبيوترAmstrad CPC وAmstrad PCWفي عام 1986 بواسطة شركة برامج بيت أرنور الإنجليزية المحدودة.

في عام 1979 تمت تطبيقات BCPL لما لا يقل عن 25 بنية ؛ في عام 2001 كان يرى ان استخدامها قليل.

ويمكن تلخيص فلسفة BCPL بالاقتباس من كتاب BCPL، اللغة ومترجمها : فلسفة BCPL أنها ليست مستبدة كالمستبد الذي يعتقد أنه يعهد أفضل ويضع القانون على ما مسموح به وما هوغير مسموح به، بل على الأصح BCPL تعمل كخادم يقدم خدماته على أفضل من قدرته دون شكوى، حتى عندما يقابل هراء واضح. ويفترض دائما حتى المبرمج يعهد ما يعمله ولا تحاصره القيود البسيطة.

تصميم، وفلسفة، BCPL أثرت بشدة في B، التي أثرت بدورها في C.

وهناك شائعات بأن BCPL كانت مرشحة لـ " لبس حذاء لغة برمجة كامبردج"، على أي حال لم توجد CPL حتى توقفت BCPL عن التنمية، والاسم المختصر كان إعادة تفسير لكتاب BCPL.

أمثلة

هذه الأمثلة كاملة وقابلة للمقارنة وهي من توزيع BCPL لمارتن ريتشاردز.

طباعة المضاريب:

GET "libhdr"

LET start() = VALOF
{ FOR i = 1 TOخمسة DO writef("fact(%n) = %i4*n", i, fact(i))
 RESULTIS 0
 

AND fact(n) = n=0 -> 1, n*fact(n-1)

حلول العد لمسألة ن من الملكات:

GET "libhdr"
 
GLOBAL { count:200; all:201  
 
LET try(ld, row, rd) BE TEST row=all

            THEN count := count + 1

            ELSE { LET poss = all & ~(ld | row | rd)
                UNTIL poss=0 DO
                { LET p = poss & -poss
                 poss := poss - p
                 try(ld+p << 1, row+p, rd+p >> 1)
                   
                              

LET start() = VALOF
{ all := 1
  
  FOR i = 1 TO 12 DO
  { count := 0
    try(0, 0, 0)
    writef("Number of solutions to %i2-queens is %i5*n", i, count)
    all := 2*all + 1
   

  RESULTIS 0
 

المراجع

  1. ^ The Mud Connector: Mud and RPG game index, mudlist and reviews: Introduction to MUDs نسخة محفوظة 08 نوفمبر 2017 على مسقط واي باك مشين.
  • Martin Richards, The BCPL Reference Manual (Memorandum M-352, Project MAC, Cambridge, July, 1967)
  • Martin Richards, BCPL - a tool for compiler writing and systems programming (Proceedings of the Spring Joint Computer Conference, Vol 34, pp 557–566, 1969)
  • Martin Richards, Arthur Evans, Robert F. Mabee, The BCPL Reference Manual (MAC TR-141, Project MAC, Cambridge, 1974)
  • Martin Richards, C. Whitby-Strevens, BCPL, the language and its compiler (Cambridge University Press, 1980) ISBN 0-521-28681-6

وصلات خارجية

  • Martin Richards' BCPL distribution
  • Martin Richards's BCPL Reference Manual by Dennis M. Ritchie also includes some fascinating commentary from him about BCPL's influence on C
  • BCPL entry in the العربي بن مهيدي   
  • Nordier & Associates' ميناء of BCPL to إكس 86: http://www.nordier.com/software/bcpl.html
تاريخ النشر: 2020-06-01 21:19:52
التصنيفات: تاريخ الحوسبة في المملكة المتحدة, لغات برمجة إجرائية, لغات برمجة مهيكلة, لغات برمجة أنشئت في 1967, قالب أرشيف الإنترنت بوصلات واي باك, جميع المقالات التي بها عبارات بحاجة لمصادر, مقالات ذات عبارات بحاجة لمصادر منذ أكتوبر 2009, وصلات إنترويكي بحاجة لمراجعة, صفحات تستخدم خاصية P244, بوابة عقد 1960/مقالات متعلقة, بوابة برمجة الحاسوب/مقالات متعلقة, جميع المقالات التي تستخدم شريط بوابات, الصفحات التي تستخدم وصلات ISBN السحرية

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

رئيس الأركان الأمريكي يبحث مع نظيره الروسي عددًا من القضايا

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:42
مستوى الصحة: 53% الأهمية: 51%

الأمم المتحدة تؤكد إطلاق سراح اثنين من الصحفيين العاملين معه

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:41
مستوى الصحة: 56% الأهمية: 56%

الإعلان عن 200 مشترك وصلوا نهائيات الدوم.. وتصفيات بـ13 حلقة

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2022-02-12 06:21:07
مستوى الصحة: 47% الأهمية: 69%

اختصاصات اللجنة العليا للهجرة فى القانون.. اعرف التفاصيل

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:31
مستوى الصحة: 36% الأهمية: 47%

اليوم.. ثانى جلسات محاكمة رجل الأعمال حسن راتب وعلاء حسانين وآخرين

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2022-02-12 06:21:04
مستوى الصحة: 50% الأهمية: 65%

الإعلان عن 8 إصابات جديدة بفيروس كورونا في أولمبياد بكين

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:36
مستوى الصحة: 51% الأهمية: 57%

مسؤول أممي: أكثر من 116 ألف متضرر من إعصار "باتسيراي" في مدغشقر

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2022-02-12 06:20:57
مستوى الصحة: 49% الأهمية: 70%

ترودو يحذر من "تكاليف باهظة" إذا غزت روسيا أوكرانيا

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2022-02-12 06:21:10
مستوى الصحة: 56% الأهمية: 60%

الصحة: التعرض للشمس هام لإنتاج فيتامين D وتدمير مسببات الفيروسات

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:31
مستوى الصحة: 31% الأهمية: 50%

ترودو: كل الخيارات واردة لإنهاء الاحتجاجات على التدابير الصحية

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2022-02-12 06:21:11
مستوى الصحة: 57% الأهمية: 70%

"سي دي سي": فعالية الجرعة المعززة ضد كورونا قوية لكنها تتراج

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:40
مستوى الصحة: 52% الأهمية: 58%

12 خطوة تساعدك فى استخراج رخصة السيارة.. تعرف عليها

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:29
مستوى الصحة: 32% الأهمية: 46%

تقارير مغربية: بن شرقى يرفض التجديد للزمالك بسبب مرتضى منصور

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2022-02-12 06:20:57
مستوى الصحة: 56% الأهمية: 68%

قائمة القطارات المكيفة بخطوط الوجهين البحرى والقبلى ومواعيد قيامها

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:33
مستوى الصحة: 31% الأهمية: 37%

أتوبيس الفضلات وتاكسى الثور.. أغرب 10 وسائل مواصلات فى العالم "صور"

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:33
مستوى الصحة: 40% الأهمية: 40%

كوريا الجنوبية تسجل نحو 55 ألف إصابة جديدة بكورونا بسبب أومي

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:38
مستوى الصحة: 46% الأهمية: 51%

ضوابط إعداد الموازنة العامة للدولة فى القانون.. تعرف على التفاصيل

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:29
مستوى الصحة: 40% الأهمية: 36%

إنجى المقدم: ذهبت إلى الكثير من الأطباء النفسيين فى السنوات الماضية

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2022-02-12 06:20:56
مستوى الصحة: 50% الأهمية: 56%

"مسيرة الضجيج" تعبر وسط فيينا للتنديد بالتطعيم الإجباري ضد كورونا

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2022-02-12 06:21:10
مستوى الصحة: 55% الأهمية: 70%

مرتضى منصور يفوز برئاسة نادى الزمالك بـ 21109 أصوات

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:32
مستوى الصحة: 33% الأهمية: 45%

النمسا تخفف القيود المفروضة بسبب فيروس كورونا

المصدر: مصراوى - مصر التصنيف: غير مصنف
تاريخ الخبر: 2022-02-12 06:21:37
مستوى الصحة: 49% الأهمية: 54%

تحميل تطبيق المنصة العربية