|
|
أول لغة برمجة عربية مفتوحة المصدر |
|
|
|
|
|
|
|
|
|
|
|
|
|
بسم الله الرحمن الرحيم خطة عمل لغة عمّوريا (عرب) مسار العمل الرئيسي: 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. بالتوازي مع كل مرحلة من السابق، يجب كتابة الملفات المساعدة ( دليل اللغة ) حتى يكون لدينا دليل كامل في نهاية مرحلة التصميم.
|
||||
|
المصفوفة هي عبارة عن عدة متغيرات تحمل نفس الاسم ولكن بترقيم مختلف، يمكن تعريفهم بتعليمة واحدة، ولها أهمية كبيرة في لغات البرمجة، تتيح لغة عمّوريا (عرب) مجموعة لا بأس بها من العمليات على المصفوفات، وذلك لتعويض النقص في لغات البرمجة الأخرى، ولتحاكي بشكل ما طريقة برنامج المهندسين الشهير ماتلاب (Matlab) في التعامل مع المصفوفات. طريقة تعريف المصفوفة هي نفسها طريقة تعريف المتغيرات العادية التي شرحناها سابقاً، ولكن نزيد عليها عدد عناصر المصفوفة كالتالي:
عرّف س(6) كمتغيرات رقمية صحيحة
أو
عرّف س(6) : صحيح نهاية عرّف
أو
صحيح س(6)
طبعاً أي واحدة من الطرق الثلاثة السابقة تعطي نفس النتيجة، ويكون لدينا ستة متغيرات بالضبط، هي : س(1)، س(2)، س(3)، ...، س(6). نستطيع استخدام هذه المتغيرات إما بشكل مستقل كل واحد على حدا، أو بشكل جماعي كما يحلو لنا.
أيضاً نستطيع إعطاء قيم أولية للمصفوفات بطريقة سلسة جداً كالتالي:
عرّف الأعداد(4)،الأرقام(60) كمتغيرات رقمية صحيحة الأعداد(4) = {-9 ،7 ،0 ،3} الأرقام(60) = 0 : +2 : 120
1.8.تعريف المؤشرات والمرجعيات (العناوين) المؤشر هو متغير من نوع خاص، نستطيع أن نخزن داخله عنوان موقع في ذاكرة الحاسوب، حيث يعطينا ذلك مرونة كبيرة في الوصول إلى أي موقع داخل ذاكرة الحاسوب من أي مكان داخل البرنامج. نُعرِّف المؤشرات بنفس طرق تعريف المتغيرات العادية، ولكن نضع قبل اسم المؤشر كلمة "مؤشر" أو إشارة "*" في حال أردنا الاختصار، للدلالة على أنه مؤشر، وطبعاً يجب أن يكون نوع المؤشر مطابق لنوع المكان في الذاكرة الذي نريد أن نؤشر عليه.
عرّف *<اسم المؤشر> كمتغير رقمي صحيح أو عرّف مؤشر <اسم المؤشر> كمتغير رقمي صحيح مثال:
صحيح س ، ص ، *س ، مؤشر ص س = 3 ص = 7 مؤشر ص = عنوان ص *س = عنوان س
حيث تستخدم كلمة "عنوان" من قبل لغة عمّوريا (عرب) للدلالة على عنوان موقع الذاكرة التي خُزِنَ داخلها المتغير، ويمكن استبدال كلمة "عنوان" بالرمز "!" زيادةً في الاختصار و مواءمة للمتقدمين في البرمجة.
*ص = !ص
1.9.تعريف الماكرو ( البرامج الفرعية ) البرنامج الفرعي أو كما يسمى في الانجليزية (ماكرو)، يستخدم إذا كان هناك مجموعة من الأوامر تتكرر أكثر من مرة داخل برنامجنا، عندها نستطيع كتابة هذه الأوامر داخل برنامج فرعي ونقوم فقط باستدعاء اسم هذا البرنامج كلما لزم الأمر، طريقة تعريف البرنامج الفرعي كالتالي:
برنامج فرعي <اسم البرنامج الفرعي> (مدخل1،مدخل2،...،مدخل ن) <مجموعة من الأوامر> نهاية <اسم البرنامج الفرعي>
ويمكن حذف كلمة "برنامج" زيادةً في الاختصار، و أيضاً حذف المدخلات إذا لم نكن نريد إعطاء مدخلات لبرنامجنا الفرعي.
أمثلة:
برنامج فرعي نجوم اطبع("*********************") نهاية نجوم
فرعي الأصغر(س،ص) إذا كانت (س < ص) نفذ الأصغر = س وغير ذلك نفذ الأصغر = ص نهاية إذا نهاية الأصغر
1.10. تعريف التوابع ( الوظائف ) يعتبر التابع برنامجاً فرعياً أيضاً، ولكنه يختلف عن الماكرو أن التابع يُخَزَّن مرة واحدة في ذاكرة الحاسوب، وكلما أردنا استدعائه، يقوم الحاسوب بالذهاب إلى ذلك المكان وتنفيذ البرنامج من هناك، لذلك نحافظ على ذاكرة الحاسوب، بينما يستبدل المترجم مكان استدعاء الماكرو بكل محتوياته كل مرة يستدعى فيها، لذلك يزيد حجم البرنامج بشكل كبير، ولكن ذلك يضمن السرعة، حيث لا يحتاج الحاسوب إلى الذهاب إلى موقع ما للتنفيذ ثم العودة. لذلك يمكن القول باختصار أنّ السرعة والحجم أمران متضادان هنا، إذا أردنا السرعة نستخدم الماكرو ولكن على حساب الحجم، وإذا أردنا تقليص الحجم نستخدم التابع ولكن على حساب السرعة، طبعاً في زمننا هذا أصبحت الحواسيب متطورة جداً، وأصبح الذهاب إلى مكان آخر في الذاكرة لتنفيذ برنامج ما، لا يتطلب الكثير من الوقت، لذلك يستخدم التابع في كثير من الأحيان بدل الماكرو. يمكن تخيل التابع بأنه مصنع ما، حيث يوجد للمصنع مدخلات ومخرجات، فمثلاً مصنع البسكويت يدخل له: الطحين ، الماء ، الحليب ، السكر، ... إلى آخره. ويقوم بإخراج البسكويت المغلف بأشكال وأصناف متعددة. تتيح لغة عمّوريا (عرب)، توابع متعددة المدخلات ومتعددة المخرجات، وبذلك تتفوق على الكثير من لغات البرمجة مثل السي والباسكال والبيسك التي لا تسمح إلا بمخرج واحد للتابع. يمكن تعريف التابع في لغة عمّوريا (عرب) كالتالي:
تابع <اسم التابع> المدخلات (نوع1 مدخل1،نوع2 مدخل2، ... ،نوع ن مدخل ن) المخرجات (نوع1 مخرج1،نوع2 مخرج2، ... ،نوع ن مخرج ن) <مجموعة من الأوامر> مخرج1 = <قيمة الإخراج النهائية1> مخرج2 = <قيمة الإخراج النهائية2> ... مخرج ن = <قيمة الإخراج النهائية ن> نهاية <اسم التابع>
مثال:
تابع إيجاد_الأكبر المدخلات (صحيح س، صحيح ص، صحيح ع) المخرجات (صحيح الأكبر) إذا كان( س > ص و س > ع) نفذ الأكبر = س وغير ذلك إذا كان( ص > ع) نفذ الأكبر = ص وغير ذلك نفذ الأكبر = ع نهاية إذا نهاية إيجاد_الأكبر
التعليق هو نص معين نكتبه داخل البرنامج دون أن يكون له تأثير على البرنامج، يفيدنا في تذكر مهمة جزء من البرنامج، ولكن المدقق الإملائي والنحوي يتجاهل وجوده تماماً. في الحقيقة يصبح للتعليق أهمية كبيرة إذا كنا نكتب برامج ضخمة نسبياً، لأن المبرمج في الغالب ينسى لماذا كتب جزءً معيناً من الأوامر، فمن المفضل أن نتعلم دائماً أن نضيف التعليقات لبرامجنا ، حتى لو عدنا إلى برنامج كتبناه قبل سنه نستطيع تذكر مهمته. تتيح لغة عمّوريا (عرب) طريقتين لكتابة التعليقات: التعليقات التي تكون على سطر واحد، والتعليقات التي تحتاج أكثر من سطر. للتعليقات التي تكون على سطر واحد نبدأ السطر بإشارة "#"، وللتعليقات التي تحتاج أكثر من سطر، نبدأ التعليق بالرمزين"#(" وننهي التعليق بالرمزين ")#".
# هذا تعليق #( هذا التعليق مستمر على أكثر من سطر )#
|
||||
|
تصميم المخلص لله تعالى ® 2008 |
||||