الحد الأدنى الأساسي
لغة BASIC المصغرة هي لهجة من لغة برمجة BASIC طُوّرت كمعيار دولي . بدأ العمل عليها في المعهد الوطني الأمريكي للمعايير (ANSI) في يناير 1974، وانضمت إليها في سبتمبر مجموعة موازية في ECMA . نُشرت المسودة الأولى للتعليقات في يناير 1976، ونُشر المعيار النهائي، المعروف أيضًا باسم ANSI X3.60-1978 أو ECMA-55 ، في ديسمبر 1977. قدّم مكتب المعايير الأمريكي مجموعة اختبارات NBSIR 77-1420 لضمان توافق التطبيقات مع التعريف.
بحلول ذلك الوقت، بدأت لغة مايكروسوفت بيسك بالسيطرة على السوق بعد طرحها على الحواسيب الصغيرة الأولى عام 1975، وخاصةً بعد ظهور "الثلاثية" عام 1977 - أبل 2 ، وكومودور بي إي تي، وتي آر إس-80 - والتي رسّخت جميعها لغة بيسك من مايكروسوفت كمعيار فعلي . بدأ توحيد معيار مينيمال بيسك من قِبل المنظمة الدولية للمقاييس (ISO) تحت مسمى ISO 6373:1984 ، ولكن تم التخلي عنه عام 1998. أما محاولة إنتاج لغة أكثر قوة، وهي فول بيسك (المعروفة أيضًا باسم ستاندرد بيسك)، فلم تُصدر إلا في يناير 1987، ولم يكن لها تأثير يُذكر على السوق.
تاريخ
التطورات السابقة
طُرحت لغة دارتموث بيسك في مايو 1964 في كلية دارتموث كلغة برمجة تفاعلية مُحسّنة، مستوحاة من لغة فورتران . [ 1 ] جمع النظام عدة مفاهيم كانت رائجة في صناعة الحواسيب آنذاك، ولا سيما تقنية المشاركة الزمنية التي تتيح لعدة مستخدمين الوصول إلى جهاز واحد، والتفاعل المباشر مع الجهاز باستخدام محطات طرفية . قامت شركة جنرال إلكتريك ، التي زودت الحاسوب GE-225 الذي كان يعمل عليه النظام، بتسويق نسخة معدلة قليلاً منه للمستخدمين التجاريين، وشهد النظام إقبالاً فورياً. [ 2 ] وسرعان ما طرحت شركات أخرى أنظمة مماثلة خاصة بها، تبيع وقت استخدام النظام عبر الإنترنت بالدقيقة. وبحلول نهاية الستينيات، كان هناك إصدار من لغة بيسك لكل منصة حاسوب مركزي تقريباً ولكل خدمة عبر الإنترنت . [ 3 ] [ 4 ]
في عام 1966، طرحت شركة هيوليت-باكارد (HP) حاسوبًا صغيرًا جديدًا ، هو HP 2100. كان من المفترض استخدامه في المختبرات والمصانع، لكن الشركة فوجئت بأن معظمه يُباع لأغراض معالجة الأعمال. [ 5 ] سعيًا للاستفادة من ذلك، طرحت الشركة في نوفمبر 1968 حاسوب HP 2000، وهو نظام يستخدم معالجين من طراز HP 2100، ويعتمد على تقنية المشاركة الزمنية لدعم ما يصل إلى 32 مستخدمًا. عمل النظام بطريقة مشابهة لنموذج دارتموث، حيث يستخدم جهازًا للتحكم في الإدخال والإخراج وآخر لتشغيل البرامج. وعلى عكس إصدارات دارتموث التي كانت عبارة عن مترجمات ، كان HP Time-Shared BASIC مترجمًا فوريًا . [ 6 ]
سرعان ما أصبحت برامج الترجمة الفورية شائعة في الأجهزة الصغيرة والحواسيب المصغرة. وسرعان ما قام موردون آخرون بنسخ لغة HP، ولا سيما شركة Data General لسلسلة Nova التي حققت نجاحًا كبيرًا في أوائل سبعينيات القرن العشرين. كما حققت شركة Wang Laboratories بعض النجاح مع أجهزتها المخصصة للغة BASIC، وهي سلسلة Wang 2200. وكان لكل إصدار اختلافاته الخاصة. وكانت شركة Digital Equipment Corporation (DEC) من بين الشركات التي قاومت هذا التوجه، حيث شاركت في برنامج JOSS في معهد ستانفورد للأبحاث (SRI) وقدمت لغة FOCAL الخاصة بها والمبنية عليه. وبحلول أوائل سبعينيات القرن العشرين، أجبر نجاح لغة BASIC شركة DEC على تقديم نسخة خاصة بها من BASIC مع مجموعة من التعديلات. [ 7 ]
جهود وضع المعايير
أدى تباين لغة BASIC إلى الاهتمام بوضع معيار يهدف إلى توحيدها. عُقدت الاجتماعات الأولى لمناقشة هذا الاحتمال في يناير 1974 تحت إشراف مجموعة العمل X3J2 التابعة للمعهد الوطني الأمريكي للمعايير (ANSI) والتي شُكّلت حديثًا. ونتج عن ذلك إنشاء مجموعة مماثلة في سبتمبر 1974 في أوروبا تحت إشراف اللجنة الفنية 21 التابعة للرابطة الأوروبية للميكانيكا والتصنيع (ECMA). وظلت المجموعتان على اتصال وثيق طوال فترة العمل، وأصدرتا معاييرهما في الوقت نفسه. أصدر المعهد الوطني الأمريكي للمعايير (ANSI) المسودة الأولى في يناير 1976، بينما أُعدّت النسخة النهائية في يونيو 1977، واعتمدتها الرابطة الأوروبية للميكانيكا والتصنيع (ECMA) رسميًا في 14 ديسمبر 1977. [ 8 ]
تم قضاء السنوات القليلة الأولى من X3J2 (والتي قد يقول البعض إنها "مُهدرة") في توحيد ما يُعتبر لغة دارتموث الأساسية الأصلية لعام 1964 ... كانت لغة Minimal Basic أشبه بلعبة منها بلغة فعلية.
كانت لغة BASIC البسيطة في جوهرها نسخةً من لغة Dartmouth BASIC الأصلية لعام 1964، مكتوبةً كمعيار رسمي باستخدام صيغة Extended Backus–Naur مع مجموعة اختبارات مصاحبة لضمان توافق التنفيذ مع التعريف. وقد أوضحت مفاهيم كانت غير مُعرَّفة سابقًا، مثل ما إذا كان ` and` و`value` هما الشيء نفسه، حيث نصّت في هذه الحالة على أن `and` تعني ` and` و`value` متطابقة. [ 10 ] وعندما وُجدت اختلافات بين التطبيقات، كما هو الحال في معالجة العبارات أو ما إذا كانت المسافات مطلوبة بين الكلمات المفتاحية والقيم، كان المعيار يختار دائمًا نمط Dartmouth. [ 9 ]GO TOGOTOgoto statement = GO space* TO line numberGOTOGO TOGO TOFOR
كان من المسلّم به أن لغة BASIC البسيطة لم تكن مفيدةً بمفردها لافتقارها إلى العديد من الميزات الشائعة، مثل معالجة النصوص . وقد شكّلت هذه الميزات الأكثر تقدماً محوراً للجهود اللاحقة، وهي لغة BASIC الكاملة ، التي بدأ العمل عليها بجدية بعد نشر لغة BASIC البسيطة. لم تكن لغة BASIC الكاملة مجرد نسخة من لغة BASIC البسيطة بميزات إضافية، بل كانت مبنية على جهود دارتموث في تطوير لغة BASIC المهيكلة، وصُممت لتقديم برمجة مهيكلة لدعم بناء البرامج الكبيرة. وعلى النقيض من لغة BASIC البسيطة، صُممت لغة BASIC القياسية لتحديث لغة BASIC بشكلٍ كبير. [ 11 ]
عدم الصلة
أثناء العمل على تطوير لغة BASIC المصغرة، تم إطلاق أول حاسوب صغير متاح على نطاق واسع، وهو Altair 8800. وبعد ذلك بوقت قصير، أصدرت مايكروسوفت لغة Altair BASIC . وفي غضون عام، تم إصدار عشرات الحواسيب الصغيرة الجديدة، بالإضافة إلى العديد من الإصدارات الجديدة من لغة BASIC. وبحلول وقت اعتماد معيار Minimal، كان هناك بالفعل عشرات الآلاف من الأجهزة التي تعمل بنسخة أو بنسخة مختلفة من اللغة. وكان اختيار اللهجة التي يتبعها أي مترجم يعتمد بشكل عام على الأجهزة المستخدمة في تطويره؛ فقد طُوّرت لغة MS BASIC على جهاز PDP-10 [ 12 ] ، وتتضمن العديد من ميزات لغة BASIC-PLUS من شركة DEC ، بينما كُتبت لغة Apple BASIC بواسطة ستيف وزنياك استنادًا إلى دليل من شركة HP، وتستخدم نظام معالجة السلاسل النصية الخاص بشركة HP. [ 13 ] [ أ ]
صدرت المسودة الأولى لمعيار Minimal للتعليق عليها في يناير 1976. استُخدمت العديد من التعليقات لتحديث المسودة، وأُعدّت النسخة النهائية في يونيو 1977، وصادقت عليها رسميًا جمعية ECMA في 14 ديسمبر 1977. [ 14 ] أصدر مكتب المعايير الأمريكي مجموعة اختبارات NBSIR 77-1420 لتمكين الموردين من اختبار التوافق مع المعيار. [ 15 ] نظرًا لعدم وجود موردين للحواسيب الصغيرة ضمن مجموعات المعايير، استُخدم النظام في الغالب على إصدارات الحواسيب المركزية، والتي كانت تحتوي دائمًا على العديد من الإضافات. من بين إصدارات الحواسيب الصغيرة القليلة التي طبّقت المعيار، كانت لغة BASIC-80 من مايكروسوفت لجهاز Zilog Z80 ، والمعروفة باسم MBASIC ، والتي حصلت على التوافق مع المعيار في إصدارها 5.0. [ 16 ]
بعد إصدار Minimal، حوّلت مجموعات المعايير اهتمامها إلى Full BASIC، لكنّ هذا الأمر استغرق سنوات. كان التقدم بطيئًا للغاية لدرجة أن المشاركين من دارتموث انسحبوا وأصدروا نسختهم الخاصة من المعيار الذي كان لا يزال قيد التطوير تحت اسم True Basic في عام 1984. كانت هذه النسخة مليئة بالأخطاء ومربكة، ما دفع جيري بورنيل إلى وصفها بـ"الجنون" [ 17 ] وجون دفوراك إلى رفضها ووصفها بـ"المؤسفة" و"المحكوم عليها بالفشل" [ 18 ] . تم التخلي عن خطط نقل Minimal BASIC إلى المنظمة الدولية للتوحيد القياسي (ISO) [ 19 ] ، وانحلت مجموعة ANSI، ما أدى إلى توقف العمل بالمعايير الأصلية [ 20 ] .
وصف
تعتمد لغة BASIC المصغرة بشكل وثيق على الإصدارات الأولى من لغة Dartmouth BASIC وتتبع اصطلاحاتها. يهدف هذا المعيار في المقام الأول إلى توضيح بعض القيود بهدف إنتاج معيار قابل للتشغيل على أي جهاز تقريبًا. يفترض الوصف التالي معرفة أساسية بلغات BASIC الشائعة، ويُبرز الاختلافات في لغة BASIC المصغرة.
كود البرنامج
كغيرها من تطبيقات لغة BASIC، تعتمد Minimal على تحرير شفرة المصدر الأساسية باستخدام محرر أسطر ، ولذا يجب أن يحمل كل سطر من الشفرة في Minimal رقم سطر . يسمح المعيار بأرقام أسطر تتراوح بين 0 و9999. وعلى عكس بعض المفسرات، تتطلب Minimal مسافة قبل كل كلمة مفتاحية، ومسافة أو نهاية سطر بعدها. [ 21 ]
تشمل الكلمات المفتاحيةREM , DIM, OPTION, DEF, LET, PRINT, INPUT, READ, DATA, RESTORE, IF...THEN, FOR...TO...STEP...NEXT, GO TO, GO SUB...RETURN, ON...GO TO, RANDOMIZE. STOP[ 22END ]
يُشترط أن تحتوي البرامج على ENDسطر أخير. [ 23 ]INPUT قد تحتوي على سلسلة نصية اختيارية، لكن ذلك يعتمد على التنفيذ، وليس جزءًا من المعيار. [ 24 ]RESTORE لم يسمح برقم السطر، وهو خيار كان شائعًا في معظم المفسرات في ذلك الوقت. FOR...NEXTتُختبر الحلقات بشكل دقيق، ولن يتم تنفيذ محتواها إذا فشل الاختبار في التكرار الأول. [ 25 ]
يمكن أن تتكون أسماء المتغيرات من حرف واحد، أو حرف ورقم واحد. لا يُسمح بأسماء المتغيرات المكونة من حرفين. [ 26 ] تقتصر الأرقام على النطاق من 10⁻³⁸ إلى 10³⁸ . [ 21 ] يمكن أن تحتوي متغيرات السلاسل النصية على 18 حرفًا كحد أقصى. [ 27 ] يمكن أن تكون المصفوفات أحادية أو ثنائية الأبعاد باستخدام `var` DIM، ولكن المصفوفات الرقمية فقط هي المدعومة. عادةً ما يتم تخصيص مساحة لجميع المتغيرات في مصفوفة أحادية البعد مرتبطة بها، دون استخدام `var` DIM، حيث تُخصص لها مساحة لـ 11 عنصرًا، بمؤشرات من 0 إلى 10. الحد الأدنى للمصفوفات هو عادةً 0، ولكن باستخدام `var` OPTION BASE 1يمكن تغيير المؤشر إلى 1. [ 28 ]
توجد 11 دالة مُعرَّفة؛ وهي ABS: و ATN، COSو EXP، INTو ، LOGو RND، SGNو SIN، SQRو TAN. [ 29 ] تشمل المعاملات =: ، <=و >=، <>و . كانت مقارنة السلاسل النصية تقتصر على معاملَي المساواة وعدم المساواة، ولم تكن مقارنات القيم الأكبر والأصغر مدعومة. تجدر الإشارة إلى أن المعاملات المنطقية، ANDو ، ORو NOT، غير مُتاحة. [ 10 ]
كانت الدوال المعرفة من قبل المستخدم DEF FNمدعومة، ولكن فقط للأرقام. لم تكن هناك دوال مدمجة أو دوال خاصة بالمستخدم للسلاسل النصية. [ 30 ]
مثال
ينفذ هذا الكود غربال إراتوستينس : [ 31 ]
1000 REM غربال إراتوستينس 1010 REM مُعدّل من عرض توضيحي لمشروع الرياضيات الأساسية السريعة 1020 REM 2010 REM L هي نهاية الغربال 2020 REM سنجد جميع الأعداد الأولية حتى L 2030 ليكن L = 1000 2040 REM N هو الغربال نفسه 2050 DIM N ( 1000 ) 2060 REM املأ الغربال بجميع الأعداد حتى L 2070 من أجل I = 1 إلى L 2080 ليكن N ( I ) = I 2090 التالي I 2100 REM ابدأ بالعدد الأولي الأول: 2 2110 ليكن P = 2 2120 اطبع P , ٢١٣٠ ملاحظة: شطب مضاعفات P ٢١٤٠ من أجل I = P إلى L خطوة P ٢١٥٠ ليكن N ( I ) = 0 ٢١٦٠ التالي I ٢١٧٠ ملاحظة: إيجاد العدد التالي غير المشطوب ٢١٨٠ ليكن P = P + 1 ٢١٩٠ إذا كان P = L ثم ٢٢٢٠ ٢٢٠٠ إذا كان N ( P ) <> 0 ثم ٢١٢٠ ٢٢١٠ اذهب إلى ٢١٨٠ ٢٢٢٠ اطبع ٢٢٣٠ نهايةملحوظات
مراجع
الاقتباسات
- ↑ كورتز 1981 ، ص 532.
- ↑ كورتز 1981 ، ص 532، 534.
- ↑ ماكراكين 2014 .
- ↑ "آي بي إم في مواجهة العالم: هكذا هي الأمور" . مجلة كمبيوتر وورلد . 5 ديسمبر 1973. مؤرشف من الأصل في 28 يناير 2022. تم الاطلاع عليه في 26 أبريل 2022 .
- ↑ ليبسون، ستيف (2017). "إتش بي: شركة الحواسيب عن طريق الصدفة، ولكن عن قصد" . HP9825.COM . مؤرشف من الأصل بتاريخ 21-10-2019 . تم الاطلاع عليه بتاريخ 26-04-2022 .
- ↑ "وصف معالج هيوليت-باكارد 2100، 1972" (ملف PDF) . مؤرشف (ملف PDF) من الأصل بتاريخ 12 أبريل 2021. تم الاطلاع عليه بتاريخ 18 أغسطس 2020 .
- ↑ سافيتز، كيفن (أبريل 2013). "ديف أهل وبيتسي آه" (مقابلة). مؤرشف من الأصل بتاريخ 31 مارس 2022. تم الاطلاع عليه بتاريخ 26 أبريل 2022 .
- ↑ ECMA 1978 ، ص. iii.
- 1 2 لورمان 1984 ، ص. 173.
- 1 2 ECMA 1978 ، ص. 15.
- ↑ لورمان 1984 ، ص 171.
- ↑ فريدسون 1999 ، ص 116.
- 1 2 ووزنياك 2014 .
- ↑ ECMA 1978 ، ص. i.
- ↑ جيلسين وشيبارد 1978 .
- ↑ دليل مرجعي للغة BASIC-80 . مايكروسوفت. 1981. مؤرشف من الأصل بتاريخ 21-05-2022 . تم الاطلاع عليه بتاريخ 26-04-2022 .
- ↑ بورنيل 1985 ، ص 366.
- ↑ دفوراك 1984 ، ص 88.
- ↑ "ISO 6373:1984" . مؤرشف من الأصل بتاريخ 2021-03-03 . تم الاطلاع عليه بتاريخ 2022-04-26 .
- ↑ "ECMA-55 Minimal BASIC" . ECMA International . مؤرشف من الأصل بتاريخ 2022-04-03 . تم الاطلاع عليه بتاريخ 2022-04-26 .
- 1 2 ECMA 1978 ، ص. 6.
- ↑ ECMA 1978 .
- ↑ ECMA 1978 ، ص 5.
- ↑ ECMA 1978 ، ص 22.
- ↑ ECMA 1978 ، ص 17.
- ↑ ECMA 1978 ، ص 8.
- ↑ ECMA 1978 ، ص 9.
- ↑ ECMA 1978 ، ص 25.
- ↑ ECMA 1978 ، ص 11.
- ↑ ECMA 1978 ، ص 13.
- ↑ هام، جون غيتوود (15 مايو 2015). "ERATOSTHENESE.BAS" . سورس فورج . مؤرشف من الأصل في 26 أبريل 2022. تم الاسترجاع في 26 أبريل 2022 .
فهرس
- دفوراك، جون (19 نوفمبر 1984). "أساسيات محزنة لكنها حقيقية" . إنفوورلد . ص 88.
- فريدسون، مارتن س. (1999). كيف تصبح مليارديرًا: استراتيجيات مجربة من عمالقة الثروة . جون وايلي وأولاده. ISBN 0-471-33202-X.
- جيلسين، ديفيد إي.؛ شيبارد، تشارلز إل. (1978). NBSIR 78-1420-1: دليل المستخدم لبرامج اختبار BASIC الأساسية من NBS - الإصدار 1: المجلد 1 - نظرة عامة على نظام الاختبار (PDF) (تقرير فني). المكتب الوطني للمعايير.
- كورتز، توماس (1981). "بيسك" . في: ويكسلبلات، ريتشارد (محرر). تاريخ لغات البرمجة 1. ACM . الصفحات 515-537 . doi : 10.1145/800025.1198404 . ISBN 0127450408.
- لورمان، آرثر (سبتمبر 1984). "البرمجة الهيكلية في لغة بيسك؛ الجزء 4: بيسك ANSI، بيسك ماكنتوش، وبيسك الحقيقي" . الحوسبة الإبداعية . الصفحات 171-177 . مؤرشف من الأصل بتاريخ 30 ديسمبر 2012. رابط بديل
- ماكراكين، هاري (29 أبريل 2014). "خمسون عامًا من لغة البرمجة BASIC، التي جعلت أجهزة الكمبيوتر شخصية" . مجلة تايم .
- بورنيل، جيري (سبتمبر 1985). "أجهزة الكمبيوتر الشخصية، والملحقات، والبرامج، والأشخاص" . بايت . الصفحات 366-373 . تم الاطلاع عليه بتاريخ 20 مارس 2016 .
- ووزنياك، ستيفن (1 مايو 2014). "كيف كتب ستيف ووزنياك لغة BASIC لجهاز أبل الأصلي من الصفر" . جيزمودو .
- ECMA (يناير 1978). ECMA-55: لغة BASIC الأساسية (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 24 يوليو 2019.رابط بديل
للمزيد من القراءة
- ANSI X3.113-1987: لغات البرمجة - لغة BASIC الكاملة (ملف PDF) . ANSI. 1987.
- جيلسين، ديفيد إي.؛ شيبارد، تشارلز إل. (1978ب). NBSIR 78-1420-4: دليل المستخدم لبرامج اختبار BASIC الأساسية من NBS - الإصدار 1: المجلد 4 - الدوال الرياضية والدوال المعرفة من قبل المستخدم، والتعبيرات المركبة (PDF) (تقرير فني). المكتب الوطني للمعايير.
- ECMA (يونيو 1986). معيار ECMA-116: لغة BASIC (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 14 أكتوبر 2011.
- هام، جون غيتوود (30 أغسطس 2021). مقدمة في البرمجة باستخدام لغة ECMA-55 Minimal BASIC (PDF) .
روابط خارجية
تطبيقات مفتوحة المصدر يتم صيانتها حاليًا
- لغة البرمجة الأساسية
- معايير المعهد الوطني الأمريكي للمعايير
- معايير إيكما
