لغة البرمجة الأساسية GW
لغة GW-BASIC هي لهجة من لغة البرمجة BASIC طورتها مايكروسوفت من لغة IBM BASICA . وهي مطابقة وظيفيًا للغة BASICA، حيث أن مترجم لغة BASIC الخاص بها عبارة عن ملف تنفيذي مستقل تمامًا ولا يحتاج إلى ذاكرة القراءة فقط (ROM) الخاصة بلغة BASIC الموجودة في النسخة الأصلية. وقد تم تضمينها مع أنظمة تشغيل MS-DOS على أجهزة الكمبيوتر الشخصية المتوافقة مع IBM PC من قِبل مايكروسوفت.
تُعدّ هذه اللغة مناسبة للألعاب البسيطة وبرامج الأعمال وما شابه. ولأنها كانت مُضمّنة في معظم إصدارات نظام التشغيل MS-DOS، فقد مثّلت وسيلةً منخفضة التكلفة للعديد من المبرمجين الطموحين لتعلم أساسيات برمجة الحاسوب . [ 2 ] [ 3 ] كما باعت مايكروسوفت مُترجم لغة BASIC ، وهو BASCOM، المتوافق مع GW-BASIC، للبرامج التي تتطلب سرعةً أكبر.
بحسب مارك جونز لورينزو، وبالنظر إلى نطاق اللغة، "يمكن القول إن GW-BASIC هي الأفضل على الإطلاق في عائلة مايكروسوفت من لغات BASIC ذات الأرقام السطرية التي تعود إلى Altair BASIC - وربما حتى في لغات BASIC ذات الأرقام السطرية بشكل عام." [ 4 ]
مع إصدار نظام التشغيل MS-DOS 5.0، حلت لغة QBasic محل لغة GW-BASIC ، وهي نسخة مختصرة قليلاً من جزء المفسر في حزمة المفسر والمترجم QuickBASIC المتوفرة بشكل منفصل. [ 5 ]
في 21 مايو 2020، أصدرت مايكروسوفت شفرة المصدر لمجمع 8088 الخاص بـ GW-BASIC 1.0 على GitHub بموجب ترخيص MIT . [ 1 ]
سمات
تُعتبر لغتا IBM BASICA و GW-BASIC إلى حد كبير نسخًا مُعدّلة من لغة MBASIC الإصدار 5.x، مع إضافة ميزات خاصة بأجهزة IBM PC. تشمل الميزات المشتركة بين BASIC-80 5.x و BASICA/GW-BASIC ما يلي:
WHILE...WENDالحلقات- أسماء المتغيرات التي يصل طولها إلى 40 حرفًا
OPTION BASEعبارة لتعيين فهرس البداية لمتغيرات المصفوفة إما 0 أو 1- تخصيص مساحة السلسلة الديناميكي
LINE INPUTمما سمح بتجاهل أحرف فاصل الحقول مثل الفاصلةCALLبيان لتنفيذ إجراءات لغة الآلةCHAINوالأوامرMERGE- إمكانية حفظ البرامج إما بتنسيق ثنائي مُجزأ أو نص ASCII
تمت إزالة القدرة على "ضغط" سطور البرنامج عن طريق حذف المسافات، وهي ميزة شائعة في تطبيقات Microsoft BASIC السابقة، من BASIC-80 5.x و BASICA/GWBASIC.
تُشغَّل برامج BASIC-80 التي لا تستخدم عبارات PEEK/ POKEتحت GW-BASIC. تُضيف BASICA العديد من الميزات لأجهزة IBM PC، مثل الصوت والرسومات وأوامر الذاكرة. تشمل الميزات غير الموجودة في BASIC-80 إمكانية تنفيذ الدالة RNDبدون معلمات، وإمكانية حفظ البرامج بتنسيق "محمي" لمنع تعديلها LIST. كما تسمح BASICA باستخدام الأرقام ذات الدقة المزدوجة مع الدوال الرياضية والمثلثية، مثل و COS، SINو ATN، وهو ما لم يكن مسموحًا به في إصدارات BASIC ذات 8 بت. لم تكن هذه الميزة مُفعَّلة عادةً، وكانت تتطلب المعلمة الاختيارية /Dعند بدء التشغيل، أي . كان حجم ذاكرةGWBASIC /D BASIC يزداد قليلاً عند استخدامها.
لم تُقدّم مايكروسوفت نسخة عامة من نظام التشغيل MS-DOS حتى الإصدار 3.20 عام 1986؛ قبل ذلك، كانت جميع إصدارات نظام التشغيل إصدارات مُخصصة لمصنّعي المعدات الأصلية (OEM). وبحسب الشركة المصنّعة، كان يتم توزيع لغة BASIC إما بصيغة BASICA.EXE أو GWBASIC.EXE. يجب عدم الخلط بين الأولى وIBM BASICA، التي كانت تُقدّم دائمًا كملف COM . تحتوي بعض إصدارات BASIC على ميزات إضافية لدعم أجهزة مُحددة. على سبيل المثال، تتضمن إصدارات AT&T وTandy من نظام التشغيل DOS إصدارًا خاصًا من GW-BASIC يدعم إمكانيات الصوت والرسومات المُحسّنة لديهما.
النسخة الأولى من لغة GW-BASIC هي تلك المضمنة في نظام التشغيل Compaq DOS 1.13، والتي صدرت مع جهاز Compaq Portable عام 1983، وكانت مماثلة للغة IBM BASICA 1.10. تستخدم هذه اللغة وحدات التحكم في الملفات المشتقة من نظام CP/M للوصول إلى القرص، ولا تدعم المجلدات الفرعية. أما الإصدارات اللاحقة فتدعم المجلدات الفرعية، ورسومات محسّنة، وميزات أخرى.
أضافت GW-BASIC 3.20 (1986) دعم رسومات EGA (لم يكن لدى أي إصدار من BASICA أو GW-BASIC دعم VGA ) وهي آخر إصدار رئيسي جديد تم إصداره قبل أن يتم استبداله بـ QBasic .
حصل مشتري بطاقات رسومات هيركليز على نسخة خاصة من لغة GW-BASIC على قرص الأدوات المرفق بالبطاقة، تُسمى HBASIC، والتي تدعم رسوماتها أحادية اللون بدقة 720×348. أما النسخ الأخرى من BASICA/GW-BASIC فلا تدعم رسومات هيركليز، ولا يمكنها عرض الرسومات على تلك البطاقة إلا باستخدام برامج محاكاة CGA خارجية ، مثل SIMCGA.
تعتمد لغة GW-BASIC على بيئة تطوير متكاملة (IDE) تعمل عبر سطر الأوامر، وهي مبنية على لغة Dartmouth BASIC . باستخدام مفاتيح تحريك المؤشر، يمكن تعديل أي سطر معروض على الشاشة. كما تتضمن اختصارات مفاتيح الوظائف في أسفل الشاشة. ومثل الإصدارات المبكرة الأخرى من لغة BASIC المستخدمة في الحواسيب الصغيرة ، تفتقر GW-BASIC إلى العديد من البنى اللازمة للبرمجة الهيكلية ، مثل المتغيرات المحلية. كانت برامج GW-BASIC تُنفذ ببطء نسبيًا لأنها لغة مُفسَّرة . يجب ترقيم جميع أسطر البرنامج؛ وتُعتبر جميع الأسطر غير المرقمة أوامر في الوضع المباشر تُنفذ فورًا. عادةً ما تُحفظ ملفات مصدر البرنامج بتنسيق ثنائي مضغوط مع استبدال الكلمات المفتاحية برموز ، مع خيار الحفظ بتنسيق نص ASCII . [ 6 ]
تحتوي بيئة سطر الأوامر في GW-BASIC على أوامر لإيقاف RUNالبرنامج الحالي، أو الخروج إلى بيئة التشغيل LOAD؛ ويمكن استخدام هذه الأوامر أيضًا كعبارات برمجية. لا يدعم GW-BASIC البرمجة الهيكليةSAVE بشكل كبير. يجب كتابة جميع العبارات الشرطية (// ) على سطر واحد، مع إمكانية تجميع عدة أسطر في عبارات (/ ). لا يمكن تعريف الدوال إلا باستخدام عبارة سطر واحد (مثلاً، ` function` ). يمكن تحديد نوع بيانات المتغيرات بإضافة حرف في نهاية اسم المتغير: `index` سلسلة نصية ، `index` عدد صحيح ، وهكذا. يمكن أيضًا تعيين أنواع افتراضية لمجموعات المتغيرات بناءً على الحرف الأول من اسمها باستخدام عبارات ` index`، `index`، إلخ. النوع الافتراضي للمتغيرات غير المُعلنة التي لم يتم تحديدها بواسطة عبارات تحديد النوع هو عدد عشري أحادي الدقة ( 32 بت MBF ). [ 7 ]LISTSYSTEMIFTHENELSEWHILEWENDDEF FNf(x)=<mathematical function of x>DEFFNLOG(base,number)=LOG(number)/LOG(base)A$A%DEFINTDEFSTR
تتيح لغة GW-BASIC استخدام عصا التحكم وأقلام الإضاءة كأجهزة إدخال. كما يمكنها القراءة والكتابة من وإلى الملفات ومنافذ COM ، بالإضافة إلى رصد الأحداث الخاصة بالمنافذ. ونظرًا لعدم توفر واجهة منفذ شريط الكاسيت في أجهزة IBM PC الأصلية على الأجهزة المتوافقة، فإن عمليات تشغيل الكاسيت غير مدعومة. يمكن لـ GW-BASIC تشغيل موسيقى بسيطة باستخدام PLAYالأمر `select`، الذي يتطلب سلسلة من النوتات الموسيقية مُمثلة بلغة ماكرو موسيقية ، على سبيل المثال، `number` . ويمكن التحكم بشكل أدق باستخدام الأمر `select`، الذي يأخذ وسيطين: تردد بالهرتزPLAY "edcdeeL2edfedL4c" وطول بوحدات نبضاتSOUND الساعة لمكبر الصوت الداخلي القياسي في أجهزة IBM. ونتيجة لذلك، يقتصر الصوت على أصوات تنبيه وصفير أحادية القناة، بما يتناسب مع جهاز "مخصص للأعمال". تتيح GW-BASIC لجهاز Tandy 1000 ما يصل إلى ثلاث قنوات صوتية للأوامر `select` و` number`. [ 7 ]SOUNDPLAY
اسم
توجد عدة نظريات حول دلالة الأحرف الأولى "GW". يقول جريج ويتن ، أحد موظفي مايكروسوفت الأوائل الذي وضع معايير سلسلة مُترجم لغة BASIC الخاصة بالشركة، إن بيل جيتس هو من اختار اسم GW-BASIC. ويشير ويتن إليه باسم Gee-Whiz BASIC، وهو غير متأكد مما إذا كان جيتس قد سمّى البرنامج تيمنًا به. [ 8 ] كما يشير إليه دليل مستخدم مايكروسوفت الصادر عن Microsoft Press باسم Gee-Whiz BASIC. وربما لُقّب أيضًا بـ Gee-Whiz نظرًا لكثرة أوامر الرسومات فيه. [ 8 ] تشمل النظريات الشائعة الأخرى حول أصول هذه الأحرف الأولى "الرسومات والنوافذ"، أو " ويليام جيتس " (رئيس مايكروسوفت آنذاك)، أو "جيتس-ويتن" (المصممان الرئيسيان للبرنامج). [ 9 ] [ 10 ] كتب غيتس نفسه مقالاً بمناسبة الذكرى السنوية الخامسة والعشرين لـ BASIC، قال فيه إن GW-BASIC هو "اختصار لـ Gee Whiz". [ 11 ]
انظر أيضاً
- تنسيق مايكروسوفت الثنائي (MBF)
مراجع
- 1 2 تيرنر، ريتش. "مايكروسوفت مفتوحة المصدر GW-BASIC" . سطر أوامر ويندوز . مايكروسوفت . تم الاسترجاع في 22 مايو 2020 .
- ↑ KindlyRat. "GW-BASIC" . مؤرشف من الأصل بتاريخ 26-07-2005 . تم الاطلاع عليه بتاريخ 10-11-2009 .
- ↑ ليون. "ألعاب GWBASIC وبرامج أخرى" . مؤرشف من الأصل بتاريخ 26-10-2009 . تم الاطلاع عليه بتاريخ 10-11-2009 .
- ↑ لورينزو، مارك (2017). الحلقة اللانهائية: تاريخ لغة برمجة BASIC . فيلادلفيا: SE Books. ص 122. ISBN 978-1974-27707-0.
- ↑ "معلومات إصدار Microsoft BASIC" . تم الاطلاع عليه بتاريخ 12-06-2008 .
- ↑ "وثائق وأدوات GW-BASIC" . مؤرشف من الأصل بتاريخ 17-12-2007.
- 1 2 "دليل مستخدم GW-BASIC" . 1987. تم الاطلاع عليه بتاريخ 28-06-2008 .
- 1 2 غريغوري ويتن (13 أبريل 2005). "GW-BASIC" . مؤرشف من الأصل في 20 سبتمبر 2008. تم الاطلاع عليه في 29 يونيو 2008 .
- ↑ "قاموس لينكس:G" . تم الاسترجاع في 28-06-2008 .
- ↑ "GW-BASIC" . 13-04-2005. مؤرشف من الأصل في 29-06-2008 . تم الاطلاع عليه في 28-06-2008 .
- ↑ "الذكرى الخامسة والعشرون للغة BASIC" (ملف PDF) .
روابط خارجية
- شفرة المصدر GW-BASIC على GitHub
- موقع تنزيل برنامج مترجم لغة GW-BASIC وملفاته على موقع Wayback Machine (تمت أرشفته في 27 أكتوبر 2009)
- دليل مستخدم GW-BASIC
- مركز معلومات غاري بين، مؤرشف بتاريخ 6 يوليو 2014 على موقع Wayback Machine ، ويتناول لغة BASIC، مع تواريخ زمنية لأنظمة DOS وWindows ولهجات BASIC.
- GW-BASIC — مورد خاص بـ GW-BASIC، تم جمعه من مصادر مختلفة.
- تم إيقاف دعم Microsoft BASICs
- لغات البرمجة التي تم إنشاؤها عام 1983
- مترجمو لغة BASIC
- عائلة لغات البرمجة الأساسية
- برنامج مرخص بموجب ترخيص MIT
- برنامج مبرمج بلغة التجميع
- برامج مملوكة سابقًا
- برامج مايكروسوفت المجانية
- لغات برمجة مايكروسوفت
