ّ

عمـوريا

 

أول لغة برمجة عربية مفتوحة المصدر

 

الرئيسية

صفحة التحميل

أسئلة شائعة

ما الجديد

 

خطة العمل

المبرمجون

المبرمجون

 

 

 

 

بسم الله الرحمن الرحيم

خطة عمل لغة عمّوريا (عرب)

مسار العمل الرئيسي:

1.      تحديد مفردات اللغة و أوامرها.

1.1.            تعريف المتغيرات والثوابت.

أ‌)        تعريف المتغيرات

1)      شكل لغة فيجوال بيسك في التعريف ( واضح وسهل ويلاءم المبتدئين )

2)      شكل لغة باسكال أو دلفي ( واضح و مختصر ويناسب المتقدمين في البرمجة )

3)      شكل لغة السي \ السي ++ ( مختصر وسريع يناسب المتقدمين )

ب‌)    تعريف الثوابت

1)      الطريقة المشابهة لأسلوب فيجوال بيسك

2)      شكل لغة باسكال

3)      شكل لغة سي

1.1.1.      أنواع المتغيرات والثوابت

1.2.            الجمل الشرطية

أ‌)        جملة "إذا (لو)" البسيطة

ب‌)    جملة "إذا (لو) وغير ذلك (وإلا)"

ت‌)    جملة "إذا وغير ذلك إذا" المركبة

ث‌)    جملة إذا المختصرة

ج‌)      جملة ضع للاختيار

1.3.            جمل التكرار

أ‌)        جملة كرر

ب‌)    جملة من إلى

ت‌)    جملة بينما

ث‌)    جملة افعل طالما

ج‌)      تعليمتي "توقف" و "استمر"

ح‌)      جملة لكل قيمة من

1.4.            جملة اذهب إلى

1.5.            العمليات الحسابية والمنطقية

أ‌)        العمليات الحسابية

ب‌)    العمليات المنطقية

ت‌)    جمل الإسناد

1.6.            التعامل مع شاشة الأوامر

أ‌)        تعليمة اطبع

ب‌)    تعليمة ادخل

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.      بالتوازي مع كل مرحلة من السابق، يجب كتابة الملفات المساعدة ( دليل اللغة ) حتى يكون لدينا دليل كامل في نهاية مرحلة التصميم.

 

BD14516_

 

1.3.جمل التكرار

            جمل التكرار هي التي تقوم بتكرار جزء معين من البرنامج عدد محدد من المرات، أو إلى تحقق شرط ما أو اختلاله، وتتيح لغة عمّوريا (عرب) كما معظم لغات البرمجة عالية المستوى مجموعة من جمل التكرار تتناسب مع كافة الاحتياجات.

أ‌)        جملة كرر

تقوم هذه الجملة بتكرار جزء معين من البرنامج عدد محدد من المرات، وهي مفيدة جداً وبسيطة.

كرر <عدد مرات التكرار> مرة\مرتين\مرات

     <مجموعة من الأوامر>

نهاية كرر

 

أمثلة:

 

كرر مرة

اطبع("*")

نهاية كرر

 

كرر مرتين

     اطبع("*")

نهاية كرر

 

كرر 9 مرات

     اطبع("مرحباً")

نهاية كرر

 

كرر 154 مرة

     ادخل(رقم)

     اطبع(رقم ÷ 10)

نهاية كرر

 

نلاحظ كيف توفّر لغة عمّوريا (عرب) مرونة كبيرة بالتعامل مع اللفظ الصحيح للجملة العربية من خلال إتاحة كل من: "مرة"، "مرتين"، "مرات"، والتي نستطيع من خلالها مناسبة الرقم مع الكلمة، طبعاً يمكن الاستغناء عن هذه الكلمات الثلاثة أيضاً، ونكتفي بتحديد عدد مرات التكرار لزيادة الاختصار والسرعة، وهذا أيضاً أحد مزايا لغة عمّوريا (عرب).

 

مثال:

 

كرر 83

اطبع("*")

نهاية كرر

 

ب‌)     جملة من إلى

هذه الجملة هي تقريباً نفس جملة كرر ولكن تتيح لنا تحديد عداد نستطيع من خلاله معرفة القيمة الحالية للتكرار داخل الجزء المراد تكراره، ولهذا أهمية كبيرة في ربط الجزء المراد تكراره بقيمة عملية التكرار.

 

من <متغير يمثل العداد> = <قيمة العداد عند البداية> إلى <قيمة العداد عند النهاية> بمقدار زيادة\نقصان <قيمة زيادة أو نقصان العداد في كل مرة> نفذ

     <مجموعة من الأوامر>

نهاية من

 

مثال:

 

من س = 1 إلى 10 بمقدار زيادة 1 نفذ

     اطبع(س)

نهاية من

 

سوف يقوم البرنامج السابق بطباعة الأرقام من 1 إلى 10.

يمكن الاستغناء عن كلمة "بمقدار" دون تأثر البرنامج، وأيضاً يمكن الاستغناء عن كلمة "بمقدار زيادة" إذا كانت الزيادة تساوي 1 فقط في كل مرة.

أيضاً يوجد شكل مختصر أكثر من جملة "من إلى" يناسب المبرمجين المتقدمين:

 

من <متغير يمثل العداد> = <قيمة العداد عند البداية> : <قيمة العداد عند النهاية> : +\- <قيمة زيادة أو نقصان العداد في كل مرة>

     <مجموعة من الأوامر>

نهاية من

 

مثال:

 

 من س = 0 : 100 : +2

     اطبع(س)

نهاية من

 

سوف يقوم البرنامج السابق بطباعة الأعداد الزوجية من صفر إلى مئة.

 

مثال:

 

 من العداد = 53 : 1 : -3

     اطبع(العداد)

نهاية من

 

سوف يقوم البرنامج السابق بطباعة الأرقام من 53 بشكل تنازلي كل مرة ناقص ثلاثة إلى أن يصل للواحد.

 

ت‌)     جملة بينما

تقوم جملة "بينما" بتكرار عدد من الأوامر ما دام الشرط المحدد محقق، وتبقى تكرر إلى الأبد بلا سقف محدد من مرات التكرار إلى أن يختل الشرط المحدد، عندها تتوقف عن التكرار.

 

بينما تكون\يكون (<شرط>) نفذ

     <مجموعة من الأوامر>

نهاية بينما

 

مثال:

 

بينما ( السرعة > السرعة_المحددة ) نفذ

     السرعة = السرعة – 0,01

نهاية بينما

 

ويمكن الاستغناء عن كلمة "نفذ" للمزيد من الاختصار، وأيضاً كلمة "تكون\يكون".

 

ث‌)     جملة افعل طالما

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

 

افعل التالي

     <مجموعة من الأوامر>

طالما ( <شرط> )

 

مثال:

 

افعل التالي

     اطبع (الساعة)

طالما ( الساعة < 7 )

 

ويمكن الاستغناء عن كلمة "التالي" أيضاً زيادةً في الاختصار.

 

ج‌)     تعليمتي "توقف" و "استمر"

تستخدم هاتان التعليمتان للتحكم في جمل التكرار من الداخل، حيث تقوم تعليمة "توقف" بإيقاف جملة التكرار والخروج منها، بينما تقوم تعليمة "استمر" بتجاهل باقي أوامر المجموعة المكررة والبدء من بداية أوامر التكرار مع الحفاظ على العد.

أمثلة:

 

من الرقم = 1 : 8 : +1

     لو كان (الرقم == 5)

           توقف

     نهاية لو   

اطبع(الرقم)

     نهاية من

    

سوف يقوم البرنامج السابق بطباعة الأرقام :1 ، 2 ، 3 ، 4 ، حيث سوف يتوقف عند الوصول للرقم الخامس وقبل أن تتم طباعته ويخرج خارج جملة "من"

 

من الرقم = 1 : 8 : +1

     لو كان (الرقم == 5)

           استمر

     نهاية لو   

اطبع(الرقم)

     نهاية من

 

            أما هذا البرنامج سوف يطبع : 1 ، 2 ، 3 ، 4 ، 6 ، 7 ، 8 ، حيث سوف يتخطى باقي الأوامر ويبدأ من البداية مع استمرار العد على حاله.

ح‌)     جملة لكل قيمة من

هذه الجملة نفس جملة "من إلى" تماماً، ولكن تكون قيم العداد قيماً غير متسلسلة، حيث نستطيع أن نضع للعداد قيمة مختلفة في كل مرة وننفذ بناءً عليه مجموعة من الأوامر.

لكل قيمة من <متغير يمثل العداد> = (قيمة1،قيمة2،...،قيمة ن)\<مصفوفة> نفذ

     <مجموعة من الأوامر>

نهاية من

 

<<السابقالتالي>>

 

 

تصميم المخلص لله تعالى ® 2008