|
|
أول لغة برمجة عربية مفتوحة المصدر |
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|||||||||||||||||||||
بسم الله الرحمن الرحيم خطة عمل لغة عمّوريا (عرب) مسار العمل الرئيسي: 1. تحديد مفردات اللغة و أوامرها. 1.1. تعريف المتغيرات والثوابت. أ) تعريف المتغيرات 1) شكل لغة فيجوال بيسك في التعريف ( واضح وسهل ويلاءم المبتدئين ) 2) شكل لغة باسكال أو دلفي ( واضح و مختصر ويناسب المتقدمين في البرمجة ) 3) شكل لغة السي \ السي ++ ( مختصر وسريع يناسب المتقدمين ) ب) تعريف الثوابت 1) الطريقة المشابهة لأسلوب فيجوال بيسك 3) شكل لغة سي 1.1.1. أنواع المتغيرات والثوابت 1.2. الجمل الشرطية ب) جملة "إذا (لو) وغير ذلك (وإلا)" ت) جملة "إذا وغير ذلك إذا" المركبة ج) جملة ضع للاختيار 1.3. جمل التكرار أ) جملة كرر ب) جملة من إلى ت) جملة بينما ث) جملة افعل طالما ح) جملة لكل قيمة من 1.4. جملة اذهب إلى 1.5. العمليات الحسابية والمنطقية ت) جمل الإسناد أ) تعليمة اطبع ب) تعليمة ادخل 1.7. تعريف المصفوفات 1.8. تعريف المؤشرات والمرجعيات (العناوين) 1.9. تعريف الماكرو ( البرامج الفرعية ) 1.10. تعريف التوابع ( الوظائف ) 1.11. التعليقات 1.12. تعريف البُنَى 1.12.1. جملة مع 1.13. تعريف التعدادات 1.14. تعريف الأصناف 1.14.1. الوراثة 1.14.2. إعادة تعيين التوابع 1.15. المكتبات 2. بناء مدقق إملائي ( Lexer ) لهذه اللغة. 3. بناء مدقق نحوي ( Parser ) لهذه اللغة. 4. بناء مترجم ( Compiler ) لهذه اللغة و تحديد اللغة المستهدفة التي يجب أن يترجم لها هذا المترجم. 5. بناء بيئة العمل ( IDE ) لهذه اللغة، وتشمل المراحل التالية: · إنشاء محرر نصوص قادر على تلوين مفردات اللغة. · إنشاء مصمم للنماذج لتصميم العناصر المرئية للنوافذ (Form Designer ). 6. بالتوازي مع كل مرحلة من السابق، يجب كتابة الملفات المساعدة ( دليل اللغة ) حتى يكون لدينا دليل كامل في نهاية مرحلة التصميم.
|
||||||||||||||||||||||||
1. تحديد مفردات اللغة و أوامرها: بعد المحاولة الأولى لبناء لغة عمّوريا، وجدنا أنّ لغة البرمجة العربية يجب أن يكون لها أسلوب خاص، لأنها تخاطب المبرمج العربي أولاً و أخيراً، لذلك لا بد من وضع مفردات لغة بسيطة وقابلة للفهم و بنفس الوقت متوافقة مع الأساليب الأخرى للغات البرمجة الانجليزية والتي اعتاد المبرمجين على استخدامها. لتحقيق هذه المعادلة الصعبة، كان لا بد من دراسة معظم أساليب لغات البرمجة الأخرى عالية المستوى، مثل لغات: السي و الباسكال و البيسك، وجعل لغة عمّوريا ( عرب ) متوافقة مع الجميع، بحيث يكون لها أوامر سهلة و مفهومة مثل لغة البيسك لكي يتمكن الأطفال من تعلمها، و أيضاً أوامر مختصرة وسريعة مثل لغات السي و الدلفي ( باسكال )، تفيد المبرمجين المتقدمين، و أيضاً جعلها لغة عالية المستوى تتيح البرمجة الموجهة الشيئية ( Object Oriented Programming ) بما في ذلك الوراثة ( Inhiretance )، نرجو من الله أن نوفق في ذلك. والله من وراء القصد.
1.1. تعريف المتغيرات والثوابت: المتغيرات هي الأساس في جميع لغات البرمجة، وهي مواقع في ذاكرة الحاسوب نقوم بحجزها و إعطاءها قيم مختلفة حسب حاجتنا، والثوابت هي نفس الشيء إلا أن قيمتها تبقى ثابتة طيلة عمل البرنامج. تتيح لغة عمّوريا ( عرب ) عدة طرق لتعريف المتغيرات والثوابت، لكي تماشي كل الاحتياجات و تلاءم كافة فئات المبرمجين من مبتدئين إلى محترفين. 1) شكل لغة فيجوال بيسك في التعريف ( واضح وسهل ويلاءم المبتدئين ) عرّف <اسم متغير | أسماء متغيرات> كمتغير | كمتغيرات <نوع المتغير\المتغيرات> أمثلة: عرّف س كمتغير رقمي صحيح عرّف ع،ق كمتغيرات رقمية صحيحة نلاحظ كيف تستخدم الفاصلة العربية "،" للفصل بين أسماء المتغيرات المختلفة إذا أردنا تعريف أكثر من متغير في نفس السطر. وأيضاً نلاحظ كيف تتوافق لغة عمّوريا (عرب ) مع اللفظ السليم للجملة العربية، حيث يمكن استخدام كلمة " كمتغير" إذا كنا نريد تعريف متغير واحد أو كلمة "كمتغيرات" إذا أردنا تعريف أكثر من متغير، وذلك أسهل للفهم ولقراءة البرنامج.
2) شكل لغة باسكال أو دلفي ( واضح و مختصر ويناسب المتقدمين في البرمجة ) عرّف <اسم متغير | أسماء متغيرات> : <نوع المتغير\المتغيرات> ... نهاية عرّف مثال: عرّف الزمن : رقمي صحيح السرعة،التسارع : رقمي عشري الحدث : منطقي نهاية عرّف من الواضح أنّ هذه الطريقة في التعريف مختصرة أكثر من الطريقة السابقة و أيضاً مفهومة، وجيدة لمن يريد كتابة تعليمات واضحة ومختصرة بنفس الوقت.
3) شكل لغة السي \ السي ++ ( مختصر وسريع يناسب المتقدمين ) <نوع المتغير\المتغيرات> <اسم متغير | أسماء متغيرات> أمثلة: صحيح ع،غ،المسار،الزمن منطقي الحدث،الإشارة نصّي الاسم،الكنية شخصياً هذه الطريقة هي المفضلة لدي، مختصرة جداً وسريعة، ولكنني أظن أنها غير مناسبة للمبرمجين المبتدئين أو الذين يريدون أن يتعلموا البرمجة، ولكنها تصبح أكثر ملائمة عندما يريد المبرمج كتابة برامج طويلة ولا يريد أن يمضي وقتاً طويلاً في كتابة تعليمات بسيطة.
قد يسأل سائل لماذا على لغة البرمجة العربية أن تحاكي لغات البرمجة الأخرى ولا يكون لها أسلوبها الخاص؟ في الحقيقة إنّ لغة عمّوريا (عرب) لا تحاكي لغات البرمجة الأخرى حرفياً وإنما تأخذ منها ما هو مفيد، وتعدل وتحور بالشكل الذي يلاءم اللغة العربية، وهذا هو الملاحظ من الأساليب الثلاثة السابقة للتعريف، وهذا هو المطلوب، أن نبني على ما بناه غيرنا وليس أن نبدأ من الصفر. كما أشرنا سابقاً أنّ الثوابت هي أيضاً مواقع في ذاكرة الحاسوب نقوم بحجزها، ولكن الفرق بينها وبين المتغيرات، أنّ محتويات هذه المواقع من الذاكرة تبقى ثابتة طيلة البرنامج ولا يمكن تغييرها أبداً. بنفس الطرق الثلاثة السابقة نستطيع تعريف الثوابت: 1) الطريقة المشابهة لأسلوب فيجوال بيسك عرّف <اسم الثابت> كثابت <نوع الثابت> = <قيمة> أمثلة: عرّف بي كثابت رقمي عشري = 3,1415 عرّف الاسم كثابت نصّي = "محمد" عرّف <اسم ثابت1> : ثابت <نوع الثابت1> = <قيمة> <اسم ثابت2> : ثابت <نوع الثابت2> = <قيمة> ... نهاية عرّف مثال: عرّف س : ثابت رقمي صحيح = 67 ف : ثابت رقمي عشري = 3,2 نهاية عرّف ثابت <نوع الثابت> <اسم الثابت> = <قيمة> أمثلة: ثابت صحيح ع = 24 ثابت نصّي الكنية = "الهاشمي" ثابت منطقي ناجح = صح
1.1.1. أنواع المتغيرات والثوابت كما أشرنا سابقاً أنّ المتغيرات والثوابت هي مواقع داخل ذاكرة الحاسوب نحجزها لكي نستخدمها داخل البرنامج، ولكن حجم تلك المواقع يحددها نوع الثابت أو المتغير. تتيح لغة عمّوريا (عرب)، كما معظم لغات البرمجة، عدة أنواع من المتغيرات والثوابت، كل نوع يحجز عدد محدد من البايتات داخل الذاكرة موضحة بالجدول التالي:
ولكي تناسب لغة عمّوريا (عرب) تركيبة الجملة العربية السلمية، يمكن تحوير كتابة هذه الأنواع لكي يلاءم صيغة الجمع أو الإفراد، حيث نستطيع أن نكتب : "حرفي" أو "حرفية"، "رقمي صحيح" أو" رقمية صحيحة" ... وهكذا، حسب ما يراه المبرمج ملائماً، حيث لن يرجع المدقق النحوي أو المدقق الإملائي أي خطأ في الاستخدام سواءً استخدمت صيغة الجمع أم صيغة الإفراد، و أيضاً يمكن الاستغناء عن كلمة "رقمي" في الأنواع الرقمية والاكتفاء بتحديد نوع الرقم: "صحيح" أو "عشري" أو "كبير"، وأيضاً سوف يتجاهل المدقق الإملائي والمدقق النحوي هذا.
|
||||||||||||||||||||||||
تصميم المخلص لله تعالى ® 2008 |