QB64

QB64 (كان يُعرف سابقًا باسم QB32 ) [ 1 ] هو مُترجم لغة BASIC ذاتي الاستضافة لأنظمة تشغيل Microsoft Windows و Linux و Mac OS X ، مُصمم ليكون متوافقًا مع Microsoft QBasic و QuickBASIC . يُعد QB64 مُترجمًا للغة C++ ، وهو مُدمج مع مُترجم C++ لتوفير عملية الترجمة باستخدام كود C++ وتحسين GCC . [ 2 ]

يدعم QB64 معظم تعليمات QBasic، ويمكنه تشغيل العديد من برامج QBasic، بما في ذلك ألعاب Microsoft QBasic Gorillas و Nibbles . [ 3 ] علاوة على ذلك، صُمم QB64 ليحتوي على بيئة تطوير متكاملة (IDE) تُشبه بيئة تطوير QBASIC. كما يُوسّع QB64 لغة برمجة QBASIC لتشمل أنواع بيانات 64 بت ، بالإضافة إلى دعم مُحسّن للصوت والرسومات. ويمكنه أيضًا محاكاة بعض ميزات DOS/x86 الخاصة، مثل الوصول إلى الماوس عبر INT 33h، والمؤقتات المتعددة.

منذ الإصدار 2.0، يوفر QB64 الآن إمكانيات تصحيح الأخطاء، مع الأمر الفوقي الجديد $DEBUG . [ 4 ]

تاريخ

تم تجميع برنامج QB64 في الأصل باستخدام لغة QuickBASIC 4.5. بعد تطويره بشكل كبير، واجه المطور روب غاليون قيودًا على الذاكرة في QuickBASIC، فانتقل إلى Microsoft Basic PDS 7.1، مما حل هذه المشاكل لفترة وجيزة. [ 5 ] بعد الإصدار 0.63، أصبح QB64 قادرًا على تجميع نفسه، وبالتالي لم تعد قيود الذاكرة التقليدية سارية.

وفيما يتعلق بالدافع وراء QB64، قال جاليون: [ 6 ]

بدأت أدرك الحاجة إلى QB64 عندما اتضح أن إطلاق نظام التشغيل Vista سيُضعف QBASIC بشكل كبير، ويجعلها لغةً قديمةً لا يمكن تشغيلها إلا على برامج المحاكاة، مما يحدّ من فرص الاستفادة من الميزات الحديثة في أجهزة الكمبيوتر. بدأ العمل الفعلي على برمجة QB64 في بداية هذا العام، وقد أحرزت QB64 تقدماً مطرداً منذ ذلك الحين. لديّ خبرة سابقة في كتابة لغات البرمجة، لذا كنتُ على دراية مسبقة بالتحديات التي تنتظرني.

بدأ العمل في عام 2016 على أداة بناء واجهة المستخدم الرسومية وبيئة تطوير متكاملة تعتمد على الأحداث تسمى InForm، مما يوفر ميزات مشابهة لـ Visual Basic . [ 7 ]

بناء الجملة

تم تصميم بنية QB64 لتكون متوافقة تمامًا مع الإصدارات السابقة من QuickBASIC. لا يلزم وجود أرقام أسطر ، ويتم إنهاء العبارات بأسطر جديدة أو فصلها بنقطتين رأسيتين ( :).

مثال على برنامج "مرحباً بالعالم!" هو:

اطبع "مرحباً بالعالم!"

مثال على محاكاة QB64 لذاكرة VGA من أجل التوافق:

CLS S$ = "Hello, World!" DEF SEG = & HB800 'تعيين المقطع إلى ذاكرة الفيديو FOR I = 1 TO LEN ( S$ ) POKE 160 + ( I - 1 ) * 2 , ASC ( MID$ ( S$ , I , 1 )) 'حرف NEXT DEF SEG 'إعادة تعيين المقطع إلى الوضع الافتراضي

مثال على كيفية سماح برنامج QB64 بملفات الصوت:

sound_effect& = _SNDOPEN ( "sound.wav" ) 'WAV, OGG or MP3 _SNDPLAY sound_effect&

مثال على كيفية سماح برنامج QB64 بملفات الصور:

SCREEN _NEWIMAGE ( 800 , 600 , 32 ) 'إنشاء صورة شاشة 32 بت imagename& = _LOADIMAGE ( "image__name.png" ) 'BMP, JPG, PNG, إلخ. _PUTIMAGE ( 0 , 0 ), imagename& _FREEIMAGE imagename& 'تحرير الذاكرة المخصصة

مثال على كيفية استخدام برنامج QB64 لعدة مؤقتات:

t1 = _FREETIMER t2 = _FREETIMER ON TIMER ( t1 , 1 ) GOSUB Timer . Trap 'سيتم تشغيل الكود الذي يلي تسمية Timer.Trap كل ثانية واحدةON TIMER ( t2 , .5 ) mySub 'QB64 can also trigger a SUB procedure with TIMER; ' في هذه الحالة، سيتم تشغيل mySUB كل 500 مللي ثانيةتفعيل المؤقتات: المؤقت ( t1 ) قيد التشغيل ، المؤقت ( t2 ) قيد التشغيلDO 'ادخل في حلقة لا نهائية حتى يتم إغلاق النافذة _LIMIT 1 'شغّل الحلقة الرئيسية بمعدل دورة واحدة في الثانية، لإظهار استقلالية المؤقتات عن تدفق البرنامج الرئيسي LOOPالمؤقت . المصيدة: اطبع "1 ثانية؛ " ؛ ثم ارجعSUB mySub PRINT "500ms; " ; END SUB

إضافات إلى لغة QBASIC

تبدأ أوامر QB64 الموسعة بشرطة سفلية لتجنب التعارض مع أي أسماء قد تُستخدم في برنامج QuickBASIC. بدءًا من الإصدار 1.4، يمكن حذف البادئة (الشرطة السفلية) باستخدام الأمر $ NOPREFIX . [ 8 ] يُوسّع QB64 لغة QuickBASIC بعدة طرق، إذ يُضيف أنواع بيانات_BIT جديدة ، بما في ذلك أنواع البيانات غير الموقعة . تحتوي أنواع البيانات الجديدة على لواحق تمامًا مثل أنواع بيانات BASIC التقليدية. يتضمن QB64 أيضًا مكتبة صوتية تُتيح تشغيل معظم تنسيقات الصوت الشائعة، بما في ذلك ملفات MP3 و Ogg Vorbis و WAV ، بالإضافة إلى مكتبات تُتيح للمستخدمين استخدام رسومات بدقة أعلى من 640×480 التي يوفرها QuickBASIC، [ 9 ] واستخدام خطوط مختلفة، ورسم الصور بتنسيقات BMP و PNG و JPEG . كما يتيح استخدام ألوان 32 بت بدلاً من 256 لونًا (أو 16 لونًا، حسب الحالة) المحدودة التي كانت متوفرة في الأصل. ولا يحتاج المبرمج إلى تحديد مكتبات البرمجة المراد تضمينها، إذ يقوم QB64 بذلك تلقائيًا. ويمكن للمبرمج أيضًا تضمين مكتبة خاصة به عبر الأمر $INCLUDE، تمامًا كما كان يفعل QuickBASIC ._BYTE_INTEGER64_FLOAT

من الميزات المهمة الأخرى التي أُضيفت هي الشبكات. في البداية، سمحت هذه الميزة بفتح قناة TCP/IP يمكن قراءتها وكتابتها باستخدام تعليمات Input#/Print# . يتميز هذا الوضع بتنسيق تغليف حزم خاص به، ورغم سهولة استخدامه مع QBasic، إلا أنه كان يقتصر على التواصل مع برامج QB64 الأخرى أو خوادم خلفية ذات واجهات مخصصة مصممة خصيصًا للتطبيق. أضافت الإصدارات اللاحقة تعليمات GET# و PUT# لقراءة وكتابة البايتات الخام من القناة. وهذا يسمح بتنفيذ بروتوكولات قياسية مثل SMTP وHTTP بشكل أصلي.

مزايا QB64

  • يدعم البرنامج تنسيقات ملفات مختلفة ويوفر أيضًا إمكانية الوصول إلى الحافظة.
  • يوفر QB64 وصولاً فورياً إلى ملفات الرسومات ذات 32 بت (أكثر التنسيقات شيوعاً).
  • يوفر برنامج QB64 إمكانية الوصول الفوري إلى العديد من تنسيقات الصوت.
  • وهو مدعوم على معظم أنظمة التشغيل الحديثة، لذا لا حاجة إلى محاكاة.

المكتبات

يدمج برنامج QB64 مكتبة FreeGLUT للرسومات والنصوص.

يتم تحديث فرع التطوير الخاص بالمستودع، والمستضاف على منصة GitHub، بشكل دوري بإصلاحات وتحسينات، ليصبح فيما بعد الإصدار المستقر التالي. كما تُتاح نسخ التطوير عبر الموقع الرسمي للمستخدمين لاختبارها تجريبياً.

يمكن لبرنامج QB64 أيضًا استخدام مكتبات DLL لنظام التشغيل Windows وملفات رأس C++ باستخدام كتلة DECLARE LIBRARY. كما يمكن للمستخدمين الوصول إلى ملفات رأس C لتشغيل وظائف C.

شوكات

نتيجةً لتغييرات جذرية طرأت على مجتمع المطورين عام 2022، يوجد الآن فرعان على الأقل من مشروع QB64. [ 10 ] لم يعد مستودع "فريق QB64" على GitHub نشطًا، ويتم تطوير جميع البرامج الجديدة في فروع جديدة.

مراجع

  1. ستيفان ريتشارد (16 نوفمبر 2007). "في الأخبار" . مجلة PCOPY! العدد 50. البرمجة الأساسية. مؤرشف من الأصل بتاريخ 21 ديسمبر 2009. تم الاطلاع عليه بتاريخ 17 أغسطس 2008 .
  2. إي كي فيرتانين (26 مايو 2008). "مقابلة مع جاليون" . مجلة PCOPY! العدد 70. البرمجة الأساسية. مؤرشف من الأصل بتاريخ 21 أغسطس 2008. تم الاطلاع عليه بتاريخ 14 يوليو 2008 .
  3. "لقطات شاشة QB64 - غوريلا QB64/QBASIC في QB64" . مؤرشف من الأصل بتاريخ 12-05-2013 . تم الاطلاع عليه بتاريخ 27-07-2010 .
  4. "سجل التغييرات للإصدار 2.0 - QB64.org" . www.qb64.org . مؤرشف من الأصل بتاريخ 10-10-2021.
  5. "المزيد من الأخطاء من فضلك! (بجدية)" . 3 مارس 2008.
  6. "مرحباً بكم في منتدى QB64!" . منتدى QBASIC . 30 سبتمبر 2007. تم الاطلاع عليه بتاريخ 28 يناير 2020 .
  7. روجوز، إيفان (2022-04-07). "عودة إلى الماضي - QBasic 4.5" . مختبر بارن . تم الاسترجاع في 2023-09-26 . يأتي QB64 مزودًا بمحرر WYSIWYG IDE يُسمى InForm، مما يجعله أقرب إلى الاستخدام اليومي كلغة سريعة وسهلة لأتمتة أنظمة ويندوز.
  8. "سجل التغييرات للإصدار 1.4 - QB64.org" . www.qb64.org . مؤرشف من الأصل بتاريخ 13 فبراير 2020.
  9. "مستشار QB: أوضاع الشاشة 11 و12 و13" . شركة مايكروسوفت. 1988. مؤرشف من الأصل بتاريخ 5 يناير 2009. تم الاطلاع عليه بتاريخ 25 يوليو 2008 .
  10. بروفن، ليام (28 مارس 2023). "هل تشعر بالحنين إلى VB؟ لغة BASIC ما زالت حية" . ذا ريجستر . تاريخ الاسترجاع: 1 أكتوبر 2023. وينطبق الأمر نفسه على QB64، على الرغم من أن الخلاف بين مطوريها لم يهدأ تمامًا بعد. ويعمل مجتمع يُدعى QB64 Phoenix بنشاط على تطوير إصدار Phoenix جديد.