لغة BASIC-8

لغة BASIC-8 هي لغة برمجة BASIC لأجهزة الكمبيوتر المصغرة من سلسلة PDP-8 من شركة Digital Equipment (DEC) . كانت أول لهجة من لغة BASIC تُصدرها الشركة، وقد شجع نجاحها شركة DEC على إنتاج لهجات BASIC جديدة لأجهزتها اللاحقة، ولا سيما BASIC-PLUS لسلسلة PDP-11 . رسّخ اعتماد DEC للغة BASIC استخدامها كلغة برمجة قياسية للتعليم والاستخدامات العامة في ذلك العصر، وهو ما جعلها، إلى جانب متطلبات النظام الصغيرة، اللغة الرئيسية خلال إطلاق أجهزة الكمبيوتر الصغيرة في منتصف سبعينيات القرن الماضي.

تاريخ

انضم ديفيد أهل إلى قسم المبيعات التعليمية المتنامي في شركة ديجيتال إكويبمنت (DEC) عام 1969. وكان القسم مكلفًا في الغالب ببيع الحاسوب المصغر PDP-8 للمدارس الثانوية والكليات . [ 1 ] لم تكن هذه الحواسيب منتشرة على نطاق واسع آنذاك ؛ إذ كان سعر جهاز المستخدم الواحد النموذجي في أواخر الستينيات حوالي 10,000 دولار ( ما يعادل 92,600 دولار في عام 2025 )، دون احتساب وحدات التخزين والملحقات الأخرى . [ 2 ]

في ذلك الوقت تقريبًا، طرحت كل من شركتي هيوليت-باكارد (HP) وهانيويل حواسيب صغيرة جديدة ذات 16 بت بتقنية المشاركة الزمنية ، والتي لاقت رواجًا في الأسواق التعليمية. فعلى وجه الخصوص، طرحت HP جهاز HP 2100 ذو 16 بت عام 1966 للسوق التقنية، وفوجئت ببيعه في سوق الأعمال أيضًا. فقررت استغلال هذا النجاح بتغليف الجهاز ببرنامج HP Time-Shared BASIC تحت اسم HP2000، وبيعه في أسواق البرمجة والتعليم. [ 3 ] ورغم أن HP2000 كان أغلى بكثير من PDP-8، إلا أن مشاركة الوصول بين العديد من المستخدمين، عادةً ما يصل إلى 16 مستخدمًا في الوقت نفسه، خفضت التكلفة الفعلية لكل مستخدم بشكل كبير مقارنةً بالأجهزة أحادية المستخدم.

في ذلك الوقت، كانت شركة DEC تروج بقوة للغتها الخاصة بالاستخدامات التعليمية، FOCAL ، وهي نسخة مُصغّرة من JOSS . تضمنت اللغة عددًا من الميزات التي سمحت لها بالعمل في ذاكرة محدودة للغاية، بما في ذلك ذاكرة PDP-8 الأساسية  التي تبلغ 4 كيلوبايت . كانت مشابهة من حيث المفهوم للغة BASIC، لا سيما في طريقة كتابة البرامج التفاعلية والتصميم العام للبرامج. جمع آهل برامج FOCAL المُقدمة من المستخدمين ونشرها في النشرة التعليمية للقسم. [ 1 ]

وجد أهل أن العملاء المحتملين لم يكونوا مهتمين بلغة FOCAL، على الأقل خارج منطقة بوسطن حيث يقع مقر شركة DEC. كانت لغة BASIC مستخدمة على نطاق واسع في ذلك الوقت، وكانت مكتبة متنامية من البرامج التعليمية والألعاب المكتوبة بها متاحة. كانت هذه البرامج تُنشر في شكل نشرات إخبارية ، وغالبًا ما كانت مكتوبة بلهجة HP2000، وكان حجم برامج BASIC الهائل يفوق قدرة FOCAL على التعامل معها. لم يجد أهل أي اهتمام من جانب إدارة DEC أو قسم تطوير البرمجيات لإنتاج نسخة من BASIC، [ 2 ] ولا أي اهتمام بدعم FOCAL على الأجهزة الأخرى ضمن تشكيلتهم. كما لاحظ تزايد العداء لفكرة السماح لأي شركة أخرى بإنتاج نسخة من هذه اللغة. [ 1 ]

بعد أن استنتج أن لغة BASIC ضرورية لجهاز PDP-8 لتمكينه من المنافسة في سوق التعليم، استعان بمبرمج من منطقة بروكلين لتطويرها. [ 1 ] وهكذا ظهرت لغة BASIC-8. ولتسهيل انتشارها، قام أهل شخصيًا بنقل العديد من برامج FOCAL الشهيرة، ولا سيما لعبتي Lunar Lander و The Sumerian Game ، التي أعاد تسميتها إلى Hamurabi . [ 4 ] حققت BASIC-8 مبيعات هائلة فور طرحها، وبحلول أوائل السبعينيات، عادت الشركة لتصبح خيارًا شائعًا في أسواق التعليم. وبدأت الشركة في تغليف الأنظمة بطريقة مشابهة لجهاز HP2000، مع خط إنتاج "Edusystems" المصمم خصيصًا لتلبية احتياجات مختلفة. [ 5 ]

على الرغم من استمرار شركة DEC في الترويج لـ FOCAL، إلا أن استخدامها تراجع بشكل ملحوظ مع إصدار BASIC-8. وقدّمت DEC لاحقًا خمس لغات BASIC مختلفة لجهاز PDP-8، كل منها يُعالج أوجه القصور في النسخة الأصلية البسيطة. ومع إصدار PDP -11 عام 1970، تم تقديم لغة جديدة كليًا وموسعة بشكل كبير، وهي BASIC-PLUS . [ 1 ] اشتكى العملاء من الاختلافات بين اللغات، لكن آهل ادّعى لاحقًا أنه لو كان دقيقًا جدًا في هذه التفاصيل، لكان الأمر سيستغرق عامين إضافيين لطرح المنتجات في السوق. [ 2 ]

لاحظ أهل حقيقة أخرى مثيرة للاهتمام؛ فعندما بدأوا بنشر النشرة الإخبارية التعليمية (EDU)، توقعوا ما بين 2000 و3000 مشترك، أي حوالي 10 مشتركين لكل موقع من مواقع شركة دي إي سي التعليمية البالغ عددها 300 موقع. وفي غضون 18 شهرًا، وصل التوزيع إلى 20000 مشترك، وهو عدد يفوق بكثير عدد أجهزة الكمبيوتر المستخدمة في المجال التعليمي مجتمعة. وعندما استفسر، وجد أن العديد من المشتركين لا يملكون حتى جهاز كمبيوتر، ناهيك عن جهاز من شركة دي إي سي، وكانوا يقرؤون النشرة بحثًا عن أفكار حول كيفية استخدام أجهزة الكمبيوتر في التعليم. وقد دفعه هذا إلى التفكير مبكرًا في إصدار مجلة كمبيوتر مستقلة تركز على التعليم. [ 2 ] وكانت قوائم برامج لغة بيسك، وخاصة الألعاب، هي القسم الأكثر شعبية في النشرة. مما دفعه إلى جمع أشهر البرامج، ولا سيما لعبة ستار تريك ، في كتاب بعنوان "101 لعبة بيسك" عام 1973. وقد بيع من هذا الكتاب عشرات الآلاف من النسخ على مدى ثلاث طبعات. [ 1 ] [ 6 ]

على الرغم من بعض النجاح الذي حققه القسم التعليمي، قررت شركة دي إي سي، مع بداية الركود الاقتصادي الذي شهده العالم بين عامي 1973 و1975 ، تقليص حجم المجموعة. وعندما اشتكى أهل من ضرورة ترك القسم وشأنه، أدرجه مديره على قائمة الموظفين المُرشحين للتسريح . وقبل حتى أن يتسلم راتبه الأخير، أُعيد توظيفه في مجموعة الأجهزة المُنشأة حديثًا في دي إي سي. [ 6 ] أنتجت المجموعة نموذجين أوليين صغيرين لأجهزة الكمبيوتر، أحدهما تصميم متكامل يعتمد على معالج PDP-8، والآخر نظام أكبر قليلًا يعتمد على معالج PDP-11 الأحدث . أبدت أقسام أخرى في الشركة قلقها من أن تؤثر هذه الأجهزة سلبًا على مبيعاتها، وبدأت بالاحتجاج عليها. وصل الأمر في النهاية إلى مكتب كين أولسن ، الذي صرّح بأنه لا يفهم لماذا قد يرغب أي شخص في امتلاك جهاز كمبيوتر لاستخدامه الشخصي. [ 6 ] وهكذا أُلغي المشروع. [ 1 ]

غادر أهل الشركة وانضم إلى قسم المبيعات التعليمية في شركة AT&T . كان أهل قد واصل نشر مجلة EDU قبل مغادرته شركة DEC، ولكن بعد رحيله، لم يُنشر سوى عدد أو عددين إضافيين قبل أن تتخلى الشركة عنها. هذا الأمر ترك السوق لشركة HP، التي كانت قد حققت بحلول ذلك الوقت انتشارًا واسعًا لبرامج BASIC الخاصة بها في نشرة People's Computer Company ومجموعة Minnesota Educational Computing Consortium (MECC) سريعة النمو. ولاحظ أهل افتقار السوق التعليمية تحديدًا إلى نشرة إخبارية مثل EDU، فأسس مجلة Creative Computing ، ثم ترك AT&T لاحقًا ليتفرغ لإنتاجها. [ 1 ] في عام 1975، اشترى حقوق كتاب 101 BASIC Games من شركة DEC وأعاد إطلاقه تحت اسم BASIC Computer Games . وقد أصبح هذا الكتاب أول كتاب حاسوب يحقق مبيعات مليونية. [ 1 ] [ 6 ]

شكّلت لغة برمجة HP أساسًا للعديد من تطبيقات BASIC المبكرة لأجهزة الكمبيوتر الشخصية ، بما في ذلك Integer BASIC و Atari BASIC وغيرها. استخدم بيل غيتس لغة BASIC-PLUS في المدرسة الثانوية، وشكّلت هذه اللغة أساسًا لما أصبح يُعرف باسم Altair BASIC في عام 1975. أدّى التطوير المستمر وبيع أنواع مختلفة من Microsoft BASIC لمنصات متعددة إلى أن تصبح لغة برمجة DEC في نهاية المطاف المعيار الفعلي لأجهزة الكمبيوتر المنزلية بدلاً من إصدار HP. [ 1 ]

وصف

كما هو الحال في معظم إصدارات لغة BASIC، كان بالإمكان تشغيل BASIC-8 في "الوضع الفوري" حيث يُدخل المستخدمون الأوامر ويتلقون استجابة فورية (مثل الآلة الحاسبة اليدوية)، أو في "الوضع المؤجل" حيث تُخزَّن المدخلات لتنفيذها لاحقًا باستخدام الأمر ` RUN. يُفعَّل الوضع المؤجل بكتابة رقم السطر في بداية سطر النص. في BASIC-8، تراوحت أرقام الأسطر من 1 إلى 2046؛ [ 7 ] وكان جهاز PDP-8 جهازًا ذا 12 بت، وكان يخزن عادةً قيمة من -2048 إلى +2047 في كلمة واحدة . [ 8 ]

كما كان شائعًا في العديد من تطبيقات BASIC البسيطة في ذلك الوقت، IFكانت عبارات GO TO تُستخدم فقط لتنفيذ تفرع؛ THENوكان يجب أن يتبعها رقم سطر للانتقال إليه، ولم يكن من الممكن أن تحتوي على عبارات عشوائية كما كان شائعًا في إصدارات BASIC اللاحقة. [ 9 ] وبالتالي IF X=10 THEN 150، كانت GO TO صالحة، بينما IF X=10 THEN X=X+1لم تكن كذلك. وكان هناك شكل بديل هو IF X=10 GO TO 150GO TO. المسافة في GO TO ليست اختيارية كما كانت في بعض اللهجات، سواء في عبارة GO TO IFأو كعبارة مستقلة. [ 10 ] كانت الإجراءات الفرعية مدعومة باستخدام GO TO GOSUB...RETURN، [ 11 ] ولكن لم يكن من الممكن استدعاؤها من IFعبارات GO TO. [ أ ] كان من الممكن تنفيذ الحلقات باستخدام GO TO IF...THENأو باستخدام GO TO FOR...TO...STEP...NEXT. [ 10 ]

على عكس معظم لغات BASIC، LETلم يكن استخدام `var` اختياريًا، بل كان إلزاميًا في جميع المهام. [ 12 ] يمكن أن تتكون أسماء المتغيرات من حرف واحد أو حرف ورقم واحد. [ 13 ]DIM يمكن استخدام `var` لتعريف المصفوفات أحادية وثنائية الأبعاد. [ 14 ] احتوى تنسيق الأرقام العشرية على 8 أرقام معنوية وأسس من -38 إلى +38. [ 15 ] استُخدمت الرموز الرياضية القياسية للعمليات الحسابية، `a` +، ` -b`، `c` *، /و`c` ^(مُمثلة على جهاز Teletype Model 33 بسهم لأعلى)، [ 16 ] وتضمنت الدوال القياسية SIN` COSf`، TAN`f`، `f`، `f` ، `f` ، `f`، و` f`. [ 17 ] لم يكن هناك دعم لمتغيرات أو دوال السلاسل النصية. تضمنت المقارنات المنطقية في العبارات `f`، ATN` f` ، ` f` ، و` f` . [ 13 ] كان `var` مدعومًا للدوال المُعرّفة من قِبل المستخدم. [ 18 ]EXPLOGABSSQRINTRNDSGNIF=<>>=<=<>DEF FN

PRINTكان يدعم استخدام الفواصل والفاصلة المنقوطة لفصل مخرجات متعددة في شكل جدولي أو بدون مسافة، على التوالي. [ 19 ]INPUT كان يدعم قراءة مدخلات متعددة في عبارة واحدة، لكنه لم يدعم المطالبات. [ 20 ] نظرًا لافتقاره إلى أوامر تشغيل الملفات، كان إدخال أي بيانات داخل البرنامج يتم فقط باستخدام DATAعبارات وقراءتها باستخدام READ. [ 21 ]RESTORE أعاد المؤشر READإلى بداية القائمة DATA؛ ولم يكن هناك رقم سطر اختياري كما هو الحال في بعض اللهجات. [ 22 ]

REM[ STOP13 ]END

تطبيق

على عكس معظم الأنظمة المنافسة القائمة على الحواسيب الصغيرة والحواسيب المنزلية المبكرة ، حيث كانت لغة BASIC هي البيئة الكاملة التي يراها المستخدم، كانت BASIC-8 أحد البرامج العديدة التي يمكن تشغيلها من سطر أوامر نظام التشغيل TSS/8 الأساسي . [ 23 ] ولذلك، فإن الأوامر التي ترتبط عادةً بلغة BASIC نفسها، مثل `--` أو ` ---`، ليست جزءًا من اللغة نفسها، بل جزءًا من واجهة سطر الأوامر، وبالتالي لا يمكن استخدامها داخل البرامج. كان هذا الأمر شائعًا في العديد من بيئات BASIC المبكرة، حيث كان المحرر ووقت التشغيل برنامجين منفصلين تمامًا. [ 24 ]RUNLIST

يمكن إدخال برامج BASIC إما بتشغيل BASIC-8 من سطر الأوامر وكتابة التعليمات البرمجية، أو بتشغيل محرر نصوص مثل EDIT-8 وكتابة التعليمات البرمجية كملف نصي. في كلتا الحالتين، تُخزَّن تعليمات BASIC البرمجية كنص عادي، مع الاحتفاظ بأي أحرف إضافية يكتبها المستخدم - إذ يمكن كتابة التعليمات البرمجية بدون مسافات لجعل الملف أكثر اختصارًا، [ 7 ] أو إضافة مسافات إضافية لضبط مسافة بادئة الحلقات. [ 25 ]

عند بدء تشغيل BASIC، كان بإمكان المستخدم كتابة أمر NEWلمسح أي برنامج موجود، أو OLDلتحميل ملف موجود. وفي أي وقت، كان بإمكانه حذف SAVEملف العمل أو ملف محفوظ موجود. كان الأمر [24 ] يُنتج قائمة بملفات البرنامج المحفوظة. [ 26 ] كان الأمر [27 ] يطبع شفرة المصدر، ويمكن تحديده باستخدام قيمتين مفصولتين بفاصلة لأرقام أسطر البداية والنهاية، مثل [ 28] . [ 27 ] كان الأمر [ 28 ] يحذف نطاقًا من الأسطر من البرنامج، ويبدأ التنفيذ، ويخرج من BASIC ويعود إلى سطر أوامر TSS/8.UNSAVECATALOGLISTLIST 10,200DELETERUNBYE

يتألف النظام داخليًا من خمسة برامج فرعية منفصلة يتم تحميلها حسب الحاجة لتقليل استهلاك الذاكرة. هذه البرامج هي: [اسم البرنامج 1] ، [اسم البرنامج 2]، [اسم البرنامج 3] EDITOR، COMPILERو [اسم البرنامج 4]، و [اسم البرنامج 5 ]. لم يكن برنامج COMPILER مترجمًا بالمعنى الحديث للكلمة، لأنه لم يُولّد لغة منخفضة المستوى ؛ بل يُشار إليه في المصطلحات الحديثة باسم "مُجزِّئ الرموز" أو الواجهة الأمامية. كان الغرض منه تحليل شفرة المصدر بلغة BASIC وتحويلها إلى سلسلة من "الرموز"، وهي أرقام مكونة من كلمة واحدة تُمثل كلمات مفتاحية وأوامر مختلفة. ثم تُترك النتيجة في الذاكرة بينما يُعطى برنامج INTERPRETER تعليمات لبدء تشغيل الشفرة المُجزَّأة الناتجة. يقوم برنامج ERROR بربط أرقام الأخطاء في لغة BASIC بالمخرجات النصية. يحتوي جدول في الذاكرة، يُسمى SYPTBA، على مؤشرات لمواقع البرامج على القرص. [ 28 ]LOADERINTERPRETERERROR

ملحوظات

  1. ولم يُسمح أيضاً بالشكل البديل "GO SUB".
  2. تم استخدام بناء الجملة المفصول بفواصل بواسطة بعض اللهجات الأخرى مثل Atari BASIC ، لكن معظمها استخدم إصدار MS BASIC باستخدام علامة ناقص؛LIST 10–200.

مراجع

الاقتباسات

  1. 1 2 3 4 5 6 7 8 9 10 أهل 2013 .
  2. 1 2 3 4 أندرسون 1984 ، ص 70.
  3. "حواسيب هيوليت/باكارد" . كان جهاز 2000A أول نظام مشاركة زمنية من طراز HP 2000 في السوق حوالي عام 1969.
  4. ماكراكين، هاري (29 أبريل 2014). "خمسون عامًا من لغة البرمجة BASIC، التي جعلت أجهزة الكمبيوتر شخصية" . مجلة تايم .
  5. دليل النظام التعليمي (PDF) . ديسمبر. يناير 1973.
  6. 1 2 3 4 أندرسون 1984 ، ص 72.
  7. 1 2 دليل 1969 ، ص. 2.2.
  8. "جهاز دي إي سي الضخم: بي دي بي-8" . متحف تاريخ الحاسوب .
  9. دليل 1969 ، ص. 2.15.
  10. 1 2 دليل 1969 ، ص. 2.16.
  11. دليل 1969 ، ص. 3.6.
  12. دليل 1969 ، ص. 2.13.
  13. 1 2 3 دليل 1969 ، ص. 2.8.
  14. دليل 1969 ، الصفحات 2.11، 2.17.
  15. دليل 1969 ، ص. 2.7.
  16. دليل 1969 ، ص 2.5.
  17. دليل 1969 ، ص. 2.6.
  18. دليل 1969 ، ص 3.5.
  19. دليل 1969 ، ص. 3.1.
  20. دليل 1969 ، ص. 3.7.
  21. دليل 1969 ، ص 2.4.
  22. دليل 1969 ، ص. 3.9.
  23. دليل 1969 ، ص. 1.1.
  24. 1 2 دليل 1969 ، ص. 4.1.
  25. دليل 1969 ، ص. 2.12.
  26. دليل 1969 ، ص 4.2.
  27. دليل 1969 ، ص. ب.1.
  28. دليل 1969 ، ص. د.1.

فهرس