أساسي نقي
This article includes a list of general references, but it lacks sufficient corresponding inline citations. (June 2011) |
| نموذج | منظم ، إلزامي ، إجرائي |
|---|---|
| عائلة | أساسي |
| صمم بواسطة | فانتازي للبرمجيات |
| المطور | فانتازي للبرمجيات |
| ظهرت لأول مرة | 1998 |
| إصدار مستقر | 6.11 LTS / 5 يونيو 2024 |
| نظام التشغيل | ويندوز ، لينكس ، ماك أو إس ، راسبيري باي أو إس ، أميغا أو إس |
| رخصة | برنامج تجريبي |
| ملحقات اسم الملف | .pb، .pbi، .pbf، .pbp |
| موقع إلكتروني | www.purebasic.com |

PureBasic هي لغة برمجة حاسوبية إجرائية يتم توزيعها تجاريًا وبيئة تطوير متكاملة تعتمد على BASIC وتم تطويرها بواسطة Fantaisie Software لنظامي التشغيل Windows و Linux و macOS . يتوفر إصدار Amiga ، على الرغم من أنه تم إيقافه وتم إصدار بعض أجزائه كمصدر مفتوح . كان أول إصدار عام من PureBasic لنظام التشغيل Windows في 17 ديسمبر 2000. وقد تم تحديثه باستمرار منذ ذلك الحين.
تتمتع PureBasic بنموذج ترخيص مدى الحياة. وكما هو مذكور على الموقع الإلكتروني، لا يزال مستخدم PureBasic الأول (الذي سجل في عام 1998) يتمتع بالوصول المجاني إلى التحديثات الجديدة ولن يتغير هذا. [1]
يتم تجميع PureBasic مباشرة إلى مجموعات التعليمات IA-32 أو x86-64 أو PowerPC أو 680x0 ، مما يؤدي إلى إنشاء ملفات تنفيذية مستقلة صغيرة ومكتبات DLL لا تحتاج إلى مكتبات وقت تشغيل تتجاوز مكتبات النظام القياسية. يمكن إنشاء البرامج التي تم تطويرها دون استخدام واجهات برمجة التطبيقات (APIs) الخاصة بالمنصة بسهولة من نفس ملف المصدر مع القليل من التعديل أو بدونه.
يدعم PureBasic التجميع المضمّن ، مما يسمح للمطور بتضمين أوامر التجميع FASM داخل الكود المصدر PureBasic، مع استخدام المتغيرات المعلنة في الكود المصدر PureBasic، مما يتيح للمبرمجين ذوي الخبرة تحسين سرعة أقسام الكود الحرجة للسرعة. يدعم PureBasic بيئة OGRE ثلاثية الأبعاد وقد دمجها. يتم دعم بيئات ثلاثية الأبعاد أخرى مثل محرك Irrlicht بشكل غير رسمي.
لغة البرمجة
صفات
PureBasic هو مُجمِّع BASIC أصلي متعدد المنصات 32 بت و64 بت. الأنظمة المدعومة حاليًا هي Windows وLinux وmacOS. إصدار AmigaOS قديم ومفتوح المصدر. يُنتج المُجمِّع ملفات قابلة للتنفيذ أصلية وقواعد PureBasic بسيطة ومباشرة، وقابلة للمقارنة مع لغة C العادية بدون الأقواس ومع معالجة سلسلة Unicode الأصلية ومكتبة كبيرة من وظائف الدعم المضمنة. [2] يمكنه تجميع تطبيقات وحدة التحكم، [3] وتطبيقات واجهة المستخدم الرسومية، [4] وملفات DLL. [5]
مثال على Hello World
سيؤدي السطر الفردي التالي من كود PureBasic إلى إنشاء ملف تنفيذي مستقل بتنسيق x86 (4.5 كيلوبايت (4608 بايت) على إصدار Windows) يعرض مربع رسالة يحتوي على النص " Hello World ".
MessageRequester ( "صندوق الرسائل" ، "مرحبا بالعالم" )
والإصدار التالي من نفس الكود، والذي يستخدم بدلاً من ذلك استدعاء API مضمن لنظام Windows دون الحاجة إلى إعلانات أو مراجع خارجية أخرى، سوف يقوم بإنشاء ملف تنفيذي مستقل أصغر حجمًا يبلغ 2.0 كيلوبايت (2048 بايت) بتنسيق x86 لنظام Windows.
MessageBox_ ( 0 , "مرحبا بالعالم" , "صندوق الرسائل" , 0 )
فيما يلي إصدار وحدة التحكم لمثال Hello World.
OpenConsole () ؛ فتح نافذة وحدة التحكم. طباعة ( "Hello, World!" ) تأخير ( 5000 ) ؛ إيقاف مؤقت لمدة 5 ثوانٍ
البرمجة الإجرائية
PureBasic هي لغة BASIC من "الجيل الثاني"، مع شروط وحلقات منظمة، وبرمجة موجهة نحو الإجراءات مدعومة. لا يُطلب من المستخدم استخدام الإجراءات، لذا قد يختار المبرمج أسلوب ترميز يتضمن Goto وGosub Label و Return .
فيما يلي إجراء نموذجي لفرز المصفوفة، على الرغم من أن SortArray أصبح الآن وظيفة مضمنة في PureBasic.
إجراء bubbleSort ( Array a ( 1 ))
محمي i ، itemCount ، hasChanged
عدد العناصر = حجم المصفوفة ( a ())
يكرر
hasChanged = # خطأ
عدد العناصر - 1
بالنسبة إلى i = 0 إلى itemCount
إذا كان أ ( i ) > أ ( i + 1 )
مبادلة أ ( i )، أ ( i + 1 )
hasChanged = # صحيح
نهايةإذا
التالي
حتى hasChanged = # False
إنهاء الإجراء
فيما يلي برنامج نموذجي يعرض محرر نصوص كبير الحجم يحتوي على عنصرين للقائمة.
;إنشاء نافذة:
OpenWindow ( 0 ، # PB_Ignore ، # PB_Ignore ، 800 ، 600 ، "محرر نص بسيط" ، # PB_Window_SystemMenu | # PB_Window_MinimizeGadget | # PB_Window_MaximizeGadget | # PB_Window_SizeGadget )
;أضف قائمتين:
CreateMenu ( 0 , WindowID ( 0 )) MenuItem ( 1 , "&OK" ) MenuItem ( 2 , "&Cancel" )
;إضافة محرر:
EditorGadget ( 0 , 0 , 0 , 0 , 0 ) SetGadgetFont ( 0 , LoadFont ( 0 , "Courier New" , 10 ))
;معالجة رسائل النافذة حتى إغلاقها:
كرر
تحديد WaitWindowEvent () الحالة رقم PB_Event_Menu تحديد EventMenu () الحالة رقم 1 : MessageRequester ( "تم النقر فوق موافق مباشرة أو باستخدام '&' mnemonic." , GetGadgetText ( 0 )) الحالة رقم 2 : Break EndSelect الحالة رقم PB_Event_SizeWindow : ResizeGadget ( 0 , 0 , 0 , WindowWidth ( 0 , # PB_Window_InnerCoordinate ), WindowHeight ( 0 , # PB_Window_InnerCoordinate )) الحالة رقم PB_Event_CloseWindow : Break EndSelect ForEver
لا يتجنب PureBasic علامات الاقتباس المزدوجة في السلاسل، لذا يجب ربطها بـ Chr(34) .
البرمجة الشيئية
صرح فريد، مطور PureBasic، أن PureBasic لن تكون أبدًا موجهة للكائنات . [6] ومع ذلك، قام العديد من المستخدمين بإنشاء أنظمة دعم موجهة للكائنات. [7] [8] [9]
أنواع البيانات
نوع بيانات متغير يتم تحديده عند استخدامه لأول مرة (واختياريًا - في المستقبل)، ويتم فصله عن اسم النقطة. هناك مجموعة من الأنواع الأساسية - .f، .d (الأعداد العائمة والمزدوجة)، .b، .c، .w، .l، .q (الأعداد الصحيحة - من بايت واحد و8 بايت)، .s - السلاسل.
| يكتب | لاحقة | استخدام الذاكرة | النطاق العددي |
|---|---|---|---|
| بايت | ب | 1 بايت (8 بت) | -128 ... +127 |
| أسكي | أ | 1 بايت (8 بت) | 0 ... +255 |
| شخصية | ج | 1 بايت (8 بت) (ASCII) | 0 ... +255 |
| كلمة | و | 2 بايت (16 بت) | -32768 ... +32767 |
| يونيكود | انت | 2 بايت (16 بت) | 0 ... +65535 |
| شخصية | ج | 2 بايت (16 بت) (يونيكود) | 0 ... +65535 |
| طويل | ل | 4 بايت (32 بت) | −2147483648 ... +2147483647 |
| عدد صحيح | أنا | 4 بايت (32 بت) x86 | −2147483648 ... +2147483647 |
| يطفو | ف | 4 بايت (32 بت) | اعتمادا على نسبة العدد العشري. |
| عدد صحيح | أنا | 8 بايت (64 بت) x64 | −9223372036854775808 ... +9223372036854775807 |
| رباعية | س | 8 بايت (64 بت) | −9223372036854775808 ... +9223372036854775807 |
| مزدوج | د | 8 بايت (64 بت) | اعتمادا على نسبة العدد العشري. |
| خيط | س | (طول السلسلة + 1) * حجم (الحرف) | لا يوجد حد. |
| سلسلة ثابتة | س{الطول } | (طول السلسلة) * SizeOf(الحرف) | لا يوجد حد. |
- لن يتجاوز Len(String) المستخدم لحساب طول السلسلة الحرف الفارغ الأول ( Chr(0) ).
بالإضافة إلى الأنواع الأساسية، يمكن للمستخدم تحديد نوع البناء عبر
نوع الهيكل_الاسم
field_name.type ؛ حقل واحد. ربما يكون مرفقًا بالهياكل.
field_name[count].type؛ المصفوفات الثابتة.
؛ ...
; البناء الاختياري StructureUnion .. EndStructureUnion يسمح لك بذلك
؛ لدمج حقول متعددة في منطقة واحدة من الذاكرة
؛ وهو ما يكون مطلوبًا في بعض الأحيان لأنواع التحويل.
هيكل الاتحاد
نوع_الاسم.النوع
؛ ...
نهاية الهيكل الاتحادي
الهيكل النهائي
يمكن أن تكون المتغيرات مفردة (في الواقع، متغيرات قياسية)، أو مصفوفة ديناميكية (معلنة باستخدام )، أو قائمة مرتبطة ( )، أو مصفوفة ارتباطية (في الإصدارات الجديدة من اللغة) ( )
Dim var_name.type_name (size1, size2, ... )List() var_name.type_nameMap var_name.type_name()
مصمم النماذج RAD
يحتوي PureBasic على مصمم نماذج خاص به للمساعدة في إنشاء نماذج للتطبيقات، ولكن هناك أيضًا حلول أخرى من جهات خارجية متاحة. [10] [11] [12] تم استبدال المصمم المرئي غير المتكامل الأصلي بمصمم نماذج متكامل جديد في 14 فبراير 2013. [13]
مجتمع المستخدمين
يوفر PureBasic منتدى عبر الإنترنت للمستخدمين لطرح الأسئلة ومشاركة المعرفة. في 6 مايو 2013، كان المنتدى باللغة الإنجليزية يضم 4769 عضوًا واحتوى على 44043 موضوعًا تضم 372200 مشاركة منذ 17 مايو 2002. [14]
تظهر العديد من مواقع مشاركة التعليمات البرمجية أن PureBasic يستخدم لإنشاء أدوات [15] وألعاب بطريقة سريعة وسهلة، [16] ومشاركة كميات كبيرة من التعليمات البرمجية مفتوحة المصدر. [17]
قراءة إضافية
- ويلوبي، جاري (2006). Purebasic: دليل المبتدئين لبرمجة الكمبيوتر . Aardvark Global. ISBN 1-4276-0428-2.
- لوجسدون، جون. برمجة ألعاب التمرير ثنائية الأبعاد .هذا الكتاب متاح للتحميل مجانًا الآن
- المترجمون الأساسيون: QuickBASIC، PureBasic، PowerBASIC، Blitz Basic، XBasic، Turbo Basic، Visual Basic، FutureBASIC، REALbasic، FreeBASIC . رقم ISBN 1-155-32445-5.
مراجع
- ^ تفاصيل ترخيص مدى الحياة للأسئلة الشائعة
- ^ الصفحة الرئيسية لـ PureBasic
- ^ PureBasic - وحدة التحكم
- ^ PureBasic - أداة
- ^ بناء DLL
- ^ PureBasic لن يكون موجهًا للكائنات
- ^ PureObject: دعم PureBasic OOP
- ^ دروس البرمجة الشيئية
- ^ مُجمِّع أولي آخر لـ OOP
- ^ PureVision، تصميم النماذج الاحترافية لـ PureBASIC.
- ^ ProGUI، مكتبة DLL تضم أكثر من 100 أمر موثق جيدًا لدمج مكونات واجهة المستخدم الرسومية الغنية والقابلة للتخصيص بسرعة في تطبيقاتك.
- ^ PureFORM، مصمم نماذج مجاني.
- ^ تم إصدار PureBasic 5.10
- ^ المنتدى الإنجليزي، المنتدى الرسمي.
- ^ صفحات برمجيات هورست شايفر
- ^ منطقة نقية
- ^ أرشيف كود أندريه بير.
المراجع العامة
- Hale Ligh, Michael (2010). Malware Analysts Cookbook Tools for Thwarting Malicious Attacks . Indianapolis, IN: John Wiley & Sons Inc. p. 241. ISBN 978-0-470-61303-0.
- جالبريث، نيك (2002). التشفير لتطبيقات الإنترنت وقواعد البيانات: تطوير تقنيات المفاتيح السرية والعامة باستخدام جافا . إنديانابوليس، إنديانا: وايلي. ص 300. رقم ISBN 978-0-471-21029-0.
- "تعلم كيفية فك الشفرات". مانلي ديلي . 25 يونيو 2004.
- جورج، فيليب. "البرمجة مع PureBasic". البرامج (141).
- سفوبودا ، لوبوش (2012). Překvapivý PureBasic (PureBasic المفاجئ: كتاب إلكتروني تشيكي للمستخدمين المحتملين لـ PureBasic). ص. 89.
روابط خارجية
- الموقع الرسمي
- منتديات Purebasic الرسمية (الإنجليزية)
- المقالات
- PureBasic - لغة التطوير المثالية متعددة الأنظمة والأصلية (2015)
- مراجعة صغيرة لـ PureBasic (2023)
- المكتبات وأرشيفات الكود مفتوح المصدر
- أرشيف أكواد PB مفتوحة المصدر لـ Andre Beer
