محمدعبد العزيز كتب:
WWW.ITeShare.com
WWW.ITeShare.net
WWW.ITeShare.info
محمدعبد العزيز كتب:
WWW.ITeShare.com
WWW.ITeShare.net
WWW.ITeShare.info
فعلا
مشاركة أخي معتز ممتازة
ممكن نستعين ببعض المفردات البسيطة من القاموس ( لسان العرب) وذلك لإحياء اللغة العربية
كما لا أتمنى إستخدام ترجمة نصية للكلمات االأجنبية مثل فورم
حقيقة تصور الاخ معتز ممتاز و سلس المهم سأقدم تصورى البسيط لعله يضيف شيئا
بالنسبة لتعريف المتغيرات فأنان أرى ان يكون كالتالي :
_______________________________________________________
حدد نص اسم;
_______________________________________________________
اقترح هذا النوع من التعريف كونه أقرب الى اللغات المستعملة وواضح و مقروء حيث ان
نص هو نوع المتغير و حدد تحدد لنا ان ما يأتي بعدها هو تعريف لمتغير ما
بالنسبة للفئات فأترح التعريف التالي :
_______________________________________________________
بداية فئة سيارة
'الكود
نهاية الفئة
_______________________________________________________
طبعا هنا لم استعمل النقطة من اجل تحديد نهاية الفئة كما اشار الأخ معتز كوني ارتأيت ان
تكون أكثر مقروئية فالنقطة نتركها لعمل آخر
في الفئة اذا ما أردنا اذا تعريف متغيرات تكون كالتالي :
_______________________________________________________
حدد نص _نوع_السيارة
حدد رقم تاريخ_تصنيع_السيارة
حدد رقم سرعة_السيارة = 60
_______________________________________________________
طبعا هنا التعريفات واضحة و نهاية الكود تكون بالعودة الى السطر كما اشار الأخ معتز و
كما هو معروف في الفيجوال بيسك
الآن نريد إنشاء Constructor للفئة و لذلك نكتب الكود التالي :
_______________________________________________________
دالة سيارة
'الكود
نهاية الدالة
_______________________________________________________
هنا ال constructor يكون بنفس اسم الفئة كما هو معمول به في السي ++
و طبعا تلاحظون الكلمة الجديد "دالة" و "نهاية الدالة" طبعا دالة تقوم بتحديد دالة
جديدة و نهاية دالة تحدد نهايتها
دعونا الآن نرى كيف يمكننا ان ننشأ دالة تقوم باستقبال قيم و ستكون في هذه الحالة "وظيفة"
_______________________________________________________
وظيفة زد_السرعة(حدد رقم السرعة)
'الكود
نهاية الوظيفة
_______________________________________________________
كما تلاحظون القيم تمرر بالطريقة التقليدية في لغات البرمجة، انا فضلت هذه الطريقة كونها
أكثر مقروئية و الأغلب اذ لم اقل جميع المبرمجين تعاملوا معها و سوف لن تشكل فرقا كبيرا
الآن لنرى دالة ترجع قيمة معينة
_______________________________________________________
وظيفة زد_السرعة(حدد رقم السرعة) ترجع رقم
سرعة_السيارة += السرعة
أرجع(او ارجع) سرعة_السيارة
نهاية الوظيفة
_______________________________________________________
كما تلاحظون الكود جد بسيط و هو واضح على ما أظن فالمتغير "سرعة_السيارة" حددناه أعلاه و قمنا باعطاءه قيمة بدائية و هي 60 ثم هنا نضيف اليه السرعة التي نريد ان نزيدها و نرجع المتغير "سرعة_السيارة"
بالنسبة لل Modifiers ستكون على الشكل التالي :
_______________________________________________________
وظيفة عامة(خاصة) زد_السرعة(حدد رقم السرعة) ترجع رقم
سرعة_السيارة += السرعة
أرجع(او ارجع) سرعة_السيارة
نهاية الوظيفة
_______________________________________________________
بالنسبة للوظائف يمكن عملهم بنفس طريقة الدوال فقط بتغيير الكلمة "دالة" ب "وظيفة" و "نهاية الدالة" ب "نهاية الوظيفة"
الآن بقي لنا ايضا الخواص، كما تعلمون في الجافا نقوم فقط بانشاء دالتين باسمين مختلفين من أجل تعديل و قراءة متغير ما لكن هنا نحن نريد ان نجعل الأمر ابسط كما هو الحال في الفيجوال بيسك او السي شارب و كود تحديد خاصية جديدة يكون كالتالي :
_______________________________________________________
خاصية نوع_السيارة ترجع نص
قراءة
أرجع _نوع_السيارة
نهاية القراءة
كتابة(حدد نص قيمة)
_نوع_السيارة = قيمة
نهاية الكتابة
نهاية الخاصية
_______________________________________________________
كما تلاحظون فهذه الطريقة هي فقط محاولة لترجمة الطريقة الموجودة في الفيجوال بيسك لكني أرى انها اكثر سلاسة في التعامل
النقطة الثانية في تحديد الخواص هي تحديدها للقراءة فقط او الكتابة فقط و تكون بكل بساطة هكذا :
_______________________________________________________
خاصية قراءة نوع_السيارة ترجع نص
_______________________________________________________
أو
_______________________________________________________
خاصية كتابة نوع_السيارة
_______________________________________________________
طبعا اذا لم تكتب لا "قراءة" و لا "كتابة" فاذا الخاصية للقراءة و الكتابة
دعونا الآن نحاول التعامل مع الفئة في برنامج عادي
من أجل انشاء instance للفئة نكتب الكود التالي :
_______________________________________________________
...
حدد سيارة سيارتي
طبع سيارتي.نوع_السيارة
_______________________________________________________
أو
_______________________________________________________
اطبع سيارتي.نوع_السيارة
_______________________________________________________
رغم اني افضل الأولى
أو يمكننا وضع القيمة في متغير كالتالي :
_______________________________________________________
حدد نص نوع_سيارتي
نوع_سيارتي = سيارتي.نوع_السيارة
_______________________________________________________
او ادخال قيمة :
_______________________________________________________
سيارتي.نوع_السيارة = "BMW"
_______________________________________________________
لكن ماذا سيحدث لو كتبت :
_______________________________________________________
سيارتي.نوع_السيارة = 123
_______________________________________________________
هنا سيكون خطأ و هنا ننتقل الى مرحلة اخرى و هي ال Exception handling
لكن قبل الحديث عن هذا الأمر دعونا نرى ال LOOPS
مثلا لنأخذ الكود التالي :
_______________________________________________________
حدد مصفوفة سيارة كل_سياراتي[3]
_______________________________________________________
طبعا هنا سنأخذ بعين الاعتبار ان الخانة الأولى هي 0
_______________________________________________________
حدد سيارة السيارة_الأولى
حدد سيارة السيارة_الثانية
حدد سيارة السيارة_الثالثة
حدد سيارة السيارة_الرابعة
السيارة_الأولى.نوع_السيارة = "BMW"
السيارة_الثانية.نوع_السيارة = "Mercedes"
السيارة_الثالثة.نوع_السيارة = "Ferrari"
السيارة_الرابعة.نوع_السيارة = "WV"
كل_سياراتي[0] = السيارة_الأولى
كل_سياراتي[1] = السيارة_الثانية
كل_سياراتي[2] = السيارة_الثالثة
كل_سياراتي[3] = السيارة_الرابعة
_______________________________________________________
الآن من اجل المرور على كل السيارات و قراة انواعها نكتب التالي :
_______________________________________________________
لكل حدد سيارة أي_سيارة في كل_سياراتي
طبع أي_سيارة.نوع_السيارة
نهاية لكل
_______________________________________________________
هنا "لكل" = For Each
بالنسبة ل For تكون كالتالي :
_______________________________________________________
نفذ [حدد رقم] س = من 0 الى 3
طبع كل_سياراتي[س].نوع_السيارة
نهاية نفذ
_______________________________________________________
اما بالنسبة ل Do While ممكن نكتب التالي :
_______________________________________________________
كرر مادام س>4
طبع كل_سياراتي[س].نوع_السيارة
س+=1
نهاية كرر
_______________________________________________________
المهم الى هنا انتهي من هذا الجزء منتظرا آراءكم من أجل وضع رؤية لأشياء أخرى
أشكرك كثيرا يا أخ حسام على كلامك هذا, والحمد لله انها أعجبتك.
أنا عموما كتبت بعض الأشياء التي تتحكم في تدفق البرنامج, والتكرارات والخ. لأنني أرى أن ننتهي منهم أولا ثم بعد ذلك نتفرغ لدعم Syntax للـ OOP.
بعدها ان شاء الله سأعلق على مشاركة الأخ أيوب ان وجدت وقت لأنها طويله.
بالنسبه لـجمل "If..Else..ElseIf" فلا يوجد في هذه اللغه غير If و Else. ولا يوجد بها ElseIf وانما نعبر عن ElseIf بـ Else + If سويا...
وهما كما اتضح من ردي السابق , "لو" و "غيرذلك". ولا يوجد مسافه بين "غير" و "ذلك"
وتركيبتها كالتالي :
---------------------------------------------------
لو الشرط
-كود هنا-
. -تعبر هذه النقطه عن نهاية "لو"-
غيرذلك
-كود هنا-
. -تعبر هذه النقطه عن نهاية "غيرذلك"
---------------------------------------------------
ولو كان الكود بداخل "لو" أو "غيرذلك" مكون من سطر واحد, لا يهم كتابة نقطة النهايه.ولغيرذلك نكتب النقطه. و(التعبير) يجب أن يرجع 0 أو 1 أو صحيح أو غيرصحيح ( Boolean )
---------------------------------------------------
-مثال عن "لو" و "غيرذلك" و "غيرذلك فراغ لو " : -
لو الشرط
-كود هنا-
. -تعبر هذه النقطع عن نهاية "لو"-
غيرذلك لو الشرط
-كود هنا-
. -تعبر هذه النقطه عن نهاية "لو" الثانيه (التاليه لـ "غيرذلك")-
غيرذلك
-كود هنا-
. -تعبر هذه النقطه عن نهاية "غيرذلك الأخيره"-
---------------------------------------------------
وهذه بعض الاقتراحات للـ Operators بالمره : "اكبرمن" و "اصغرمن" و "يساوي"( وليس "=" لأن "=" هي لاسناد القيم ) و "لايساوي" ( وهي تشبه <> في الفيجوال بيسيك). وعلى كل حال يمكن أيضا استخدام الرموز المقابله لهم مثل ( == , < , >= , الخ ) ويتم استخدام "او" كـ || ,و "و" كـ && ,و "ليس" كـ ! الموجودين في عائلات السي. واخترت "ليس" وليس "لا" لأننا نقول أن الشئ "ليس صحيح" ولا نقول الشئ "لا صحيح"
وبما أن الكلام عن الـ Operators. فايضا يوجد "زد" وهي مثل الـ ++ التي تفعل IncrementByOne و يوجد "انقص" وهي مثل -- التي تفعل DecrementByOne.
وهذا مثال بغرض توضيح الـ Syntax فقط :
---------------------------------------------------
درجة_الطالب كـعددصحيح = 60
-الدرجه_النهائيه = 100-
لو ليس( درجة_الطالب اكبرمن 100 او درجة_الطالب اصغرمن 0 )
لو درجة_الطالب <= 70
اطبع("تحتاج للكثير من المذاكره")
غيرذلك لو درجة_الطالب <= 80
اطبع("جيد !")
غيرذلك لو درجة_الطالب <= 100
اطبع("ممتاز")
. -تثمل هذه النقطه نهاية "لو" الأولى-
غيرذلك
اطبع("لا يمكن للدرجه أن تكون أكبر من 100 أو أقل من 0!")
---------------------------------------------------
ولاحظ انه لا يوجد نقطه لـ"غيرذلك الأخيره" لأن الكود الذي يليها مكون من سطر واحد.
نأتي الى Switch أو Select Case.
مثال مفاجئ !:
---------------------------------------------------
عدد_الأبواب كـعددصحيح = 88
سياره_رياضيه كـعددصحيح ثابت = 2
سياره_عاديه كـعددصحيح ثابت = 4
حالات عدد_الأبواب
حالة سياره_رياضيه : اطبع("انت تركب سياره رياضيه") ؛ اخرج
حالة سياره_عاديه : اطبع("انت تركب سياره عاديه") ؛ اخرج
حالة اخرى : اطبع ("انت تركب شئ غريب !") ؛ اخرج.
---------------------------------------------------
نكتب "حالات" وبعدها الـ Expression. وننهيها بنقطه. ونستخدم كلمة "حالة" بمعنى Case وبعدها Constant ثم نقطتبن وبعدها الكود الذي نريده. ويجب أن نكتب "اخرج" وهي للخروج من جملة "الحالات" وهي تعني "Break" وأستخدمها كـ Jump Statement. والـ SemiColon في المثال كانت فقط لكتابة كودين في نفس السطر وليس لها علاقه بـ "الحالات"!
و "اخرى" يتم تنفيذ الكود الموجود بها في حالة عدم كون الـ Expression في حالة من الحالات المتوقعه. والنقطه في النهايه تنهي جملة "الحالات".
ويمكن كتابة كود واحد ينفذ لأكثر من حاله هكذا :
---------------------------------------------------
حالات عدد_الأبواب
حالة سياره_رياضيه :
حالة سياره_عاديه :
اطبع("اطمأن قلبي انت تركب سياره عاديه أو رياضيه !") ؛ اخرج
حالة اخرى : اطبع ("انت تركب شئ غريب !") ؛ اخرج. -النقطه في النهايه تنهي جملة "حالات"-
---------------------------------------------------
نأتي للتكرارات , "طالما - [نفذالتالي]" و "نفذالتالي - طالما" و "من-حتىيصبح-[نفذالتالي]"
"طالما-نفذالتالي" هي كـ While. و "نفذالتالي - طالما" هي كـ Do While. و"من-حتىيصبح-نفذالتالي" هي كـ For.
مثال :
---------------------------------------------------
طالما (التعبير يرجع صحيح) [نفذالتالي]
-كود-
. -نهاية طالما_نفذالتالي-
---------------------------------------------------
و "نفذالتالي" هي لدعم المقروئيه فقط ويمكن عدم كتابتها. ولا يعتبر هذا عيبا أو تقصيرا فمثلا يوجد في الـ SQL كلمة Into التي تلحق بأمر Insert الذي يستخدم للاضافة البيانات للجداول, وInto جعلوها في الأمر فقط من أجل المقروئيه, وذلك حتى نكتب :
Insert Into Employees kaza,kaza
بدلا من
Insert Employees kaza,kaza
فيجوز عدم كتابة Into ولن يؤثر ذلك على شئ ! وأنا لم أحجز "نفذالتالي" في اللغه خصيصا من أجل المقروئيه, وانما لها استخدامات أخرى, فيصبح مثلا استخدامها أساسي وليس للمقروئيه فحسب في جملة"نفذالتالي-طالما".
بالنسبه للـ Expression أو التعبير الذي يرجع Boolean لا يشترط أن يكون في أقواس ( الا ان كان معقدا ! ) وان كان الكود التالي لـ "طالما" عباره عن سطر واحد لا يهم كتابة النقطه.
مثال على كل حال:
---------------------------------------------------
فلان كـانسان = يا انسان, تكون
طالما فلان, حيا نفذالتالي
يا فلان, كل؛ يا فلان, اشرب. -النقطه تمثل نهاية طالما-
---------------------------------------------------
وهنا لن يأكل فلان ولن يشرب أبدا الا اذا كان حيا. وان كان حيا سيظل يأكل ويشرب الى الأبد حتى ترجع "حيا" غيرصحيح.
ويمكن كتابة نفس الكود بدون "نفذالتالي" :
---------------------------------------------------
طالما فلان, حيا
يا فلان, كل؛ يا فلان, اشرب.
-ويمكن أن نكتبها في جمله واحده :-
طالما فلان, حيا يا فلان, كل؛ يا فلان, اشرب.
---------------------------------------------------
والنقطه في النهايه اختياريه وليست اجباريه وهي تمثل نهاية "طالما" وتكون اختياريه اذا كان الكود التالي لـ"طالما" مكون من سطر واحد فقط.
وهذا مثال لـ "نفذالتالي-طالما" :
---------------------------------------------------
نفذالتالي
يا فلان, اشرب؛ يا فلان, كل
طالما فلان, حيا.
---------------------------------------------------
والنقطه في النهايه تمثل نهاية "نفذالتالي". و يمكن الاستغناء عنها في المثال.
وكنت أريد عمل "نفذالتالي - حتى" ولكن ليس لها داعي فاذا أردنا استخدام شئ مثل "نفذالتالي -حتى" يمكن كتابة :
---------------------------------------------------
نفذالتالي
يا فلان, اشرب؛ يا فلان, كل
طالما ليس(فلان, ميتا)
---------------------------------------------------
في آخر كودين, فلان سيشرب ويأكل على الأقل مره واحده. وان مات (أي (فلان, ميتا) رجعت صحيح, فبالتالي ليس(صحيح) = غيرصحيح ) فسيفسد الشرط ولن يتم استدعاء "اشرب" ولا "كل" وستنتهي الجمله.
و جملة "من-حتىيصبح-[نفذالتالي]" كـجملة for. وشكلها كالتالي :
من Initializer حتىيصبح Expression [نفذالتالي] [iterator]
-الكود-
. -نهاية التكرار-
ويوجد أشياء اختياريه منها الـ Iterator. فهو يصبح Initializer++ أو "زدInitializer" تلقائيا الا اذا ذكر غير ذلك. وأيضا "نفذالتالي" هي للمقروئيه فقط.
وتختلف هذه الجمله عن For العاديه بموضوع "حتىيصبح" هذا ,ولاحظ الاختلاف :
مثال :
---------------------------------------------------
أ كـعدد صحيح = 0
من أ=0 حتىيصبح أ >=90 نفذالتالي زد أ
اطبع(أ). -النقطه تمثل نهاية التكرار-
-وهذا يقابله :-
من أ كـعددصحيح=0 حتىيصبح أ >=90 نفذالتالي
اطبع(أ)
-لم أكتب "زد أ" لأنه بيتم وضع "زد كذا" افتراضيا-
-ولم أكتب النقطه لأن الكود مكون من سطر واحد-
-بشكل آخر :-
من أ كـعددصحيح=0 حتىيصبح أ >=90
اطبع(أ)
-لم أكتب "نفذالتالي" لأنها اختياريه-
---------------------------------------------------
والمقابل لذلك بفرد من عائلات السي :
int i = 0; for(i=0;i<=90;i++) Print(i);
لاحظ اني في كود عائلةسي كتبت " i أقل من أو تساوي 90 " بعكس هذه اللغه كتبت فيها "اكبرمن أو يساوي 90" أي انها العكس.
مثال آخر على كل حال :
---------------------------------------------------
من أ كـعددصحيح=5 حتىيصبح أ <=0 نفذالتالي انقص أ
اطبع(أ)
-المقابل له بـ For:-
-
for(int i=5;i>=0;i--) Print(i);
-
-المقابل له بـ"طالما - نفذالتالي"-
أ كـعددصحيح = 5
طالما أ >=0 نفذالتالي
اطبع(أ)
انقص أ
. -نهاية جملة "طالما-نفذالتالي"-
-المقابل له بـ While-
while(i>=0)
{
Print(i);
i--;
}-المقابل له باستخدام "نفذالتالي-طالما"-
أ كـعددصحيح = 5
نفذالتالي
اطبع(أ)
انقص أ. طالما أ >= 0
-المقابل له بـ Do While :-
-
int i=5;
do
{
Print(i);
i--;
}
while(i>=0);-
---------------------------------------------------
والـ Output من الأكواد الأخر:
5
4
3
2
1
0
بالنسبة للتعامل مع الاخطاء نكتب
تنفيذ
{
'الكود
{
معالجة [نوع_الخطأ] الخطأ
{
طبع الخطأ.نص_الخطأ
}
"تنفيذ" تعني بداية معالجة الأخطاء
كما تلاحظون انا ارتأيت استعمال {} نظرا لكونهم يحددون بطريقة اكثر وضوح الكود الذي سنعمل عليه معالجة الخطأ
كلمة "معالجة" تتبع بنوع الخطأ ثم متغير من نوع الخطأ و يمكن كتابة الأمر كالتالي :
معالجة حدد [نوع_الخطأ] الخطأ
لكن هذا يبقى اختياري و افضل، طبعا ترون ان الطريقة تعتمد على الطريقة التي ذكرت سابقا من أجل تحديد متغير جديد
بالنسبة للحزم فاللأمر يكون هو "ضمن" بفتح ال "ض" و كسر تشديد ال "م"
ضمن اسم_الحزمة
قبل أن أعلق على مشاركات الإخوة الذهبية. أريد القول شكرا لكم على هذا التعاون. أحب هذا الأسلوب في المشاركات. وأعتقد أن القراء يحبونه أيضا.
بما أن التعليقات أصبحت دقيقة ووافية وكأننا نكتب شروحات كاملة لهذه اللغات، لا يسعفني إلا أن أعلق عليها بعد القراءة تلو القراءة الدقيقة، وقد يأخذ هذا وقتا.
الأخ معتز:
بعد مشاركتك الجديدة،، لا أدري ماذا ينقص أسلوبك. لكن منظره لذيذ وكم أتمنى رؤيته عمليا في المستبقل.. إليك بعض الملاحظات:
1- أسلوب النقطة شيء رائع،، لكن به مشكلة صغيرة،، خذ مثلا جمل الشرط المتداخلة،، كيف سيعرف المترجم أي نقطة تنهي أي جملة؟ على فرض أن بعض الشروط يلزمها فعل واحد وأخرى يلزمها عدة أفعال بعدها. الموضوع هنا يحتاج دقة في الشرح أكثر.
2- التكرارات أعجبتني وخاصة أنك نستخدم الكلمات بكثرة. وكأنك فعلا تسعى أن تكون مقروءة.
3- المتغيرات المدخلة للوظائف: استخدمت كلمة (تستقبل) ولكن الكاتب سيضطر إلى كتابة (تستقبل) لكل متغير.. فهل عندك وجهة نظر في هذا؟
4- طريقة كتابة الوظائف رائعة وكأنني أكتب جملة اسمية خبرية!!
اقتباسوظيفة صوب_نحو_الهدف خاصة تستقبل قوة كرقم
-----------------
الأخ أيوب:
منافسة قوية لأسلوب معتز. الشرح واضح والبرامج واضحة. أرى أن الموضوع بدأ يأخذ منحى احترافي ولاسيما استخدام التنسيق بالألوان والخطوط.
طرحت المواضيع المتقدمة مثل معالجة الأخطاء والخواص.. وهي أشياء تحتاج فعلا تجعل من اللغة متكاملة.
أسلوب أخي أيوب امتاز بأنه
1- أخذ من بعض اللغات المعروفة لدينا مما يسهل الانتقال إلى لغة (أيوب). الكلمات المختارة ممتازة وخاصة في يتعلق بالأخطاء مثل كلمة معالجة.
2- جمل التكرار جميلة ولا سيما أنها واضحة. وذلك لأنها أقرب إلى التي عهدناها.
3- أتى بالجديد وخاصة في طرحه لكلمة (ضمن).
4- الخواص مصممة بعناية، مما يجعلها مقروءة.
5- كتابة الوظائف مشابهة للغات التي عهدناها.
اقتباسوظيفة عامة صوب_نحو_الهدف (حدد رقم قوة)
بعض الملاحظات:
1- عدم انتظام أسلوب أخي أيوب وذلك لأنه استخدم الأقواس خاصة في الأخطاء.. ترى ما السبب في عدم استخدام الأسلوب المتبع في نفس لغته مثل بداية التجربة ومعالجة الخطأ بدلا من الأقواس؟
------------
هذه بعض ملاحظاتي فقط وأتوقع وجود ملاحظات أخرى . وأتطلع إلى النقد المشترك..
أعتذر عن التأخير،،خذوا وقتكم في الرد،،، لكن المهم هنا، أن تكون المشاركة ذات قيمة.
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
اقتباس- عدم انتظام أسلوب أخي أيوب وذلك لأنه استخدم الأقواس خاصة في الأخطاء.. ترى ما السبب في عدم استخدام الأسلوب المتبع في نفس لغته مثل بداية التجربة ومعالجة الخطأ بدلا من الأقواس؟
حقيقة انا استعملت الأةواس في معالجة الأخطاء لأنني ارى انها تحدد منطقة ال Excpetion Handling بشكل اوضح من عدمها و يمكن حذفهم و اتباع طريقة الفيجوال بيسك
معلش ممكن تضفني
fcis_acm@hotmail.com
معذرة .. انا لا اقلل من مجهودك ..
ولكن قل لي .. ما الفائدة من كتابة لغة عربية برمجية ؟؟ و كمان مبنيه على الجافا ؟؟
اقتباسمعذرة .. انا لا اقلل من مجهودك ..ولكن قل لي .. ما الفائدة من كتابة لغة عربية برمجية ؟؟ و كمان مبنيه على الجافا ؟؟
ألا تريد أن تبرمج بالغة العربية
اقتباسو كمان مبنيه على الجافا ؟؟
الأخ حسام الملحم أبومازن خبير جافا و هو صاحب المشروع
لا ضير أن تكون بالجافا كخطوة مبدإية (رغم أن هذا سيؤثر على سرعتها و لكن سيكسبها محمولية رائعة )
المهم أن يؤجد تصميم لهذه اللغة بعد هذا تأتي مرحلة البرمجة
خذ وقتك يا أخ حسام, فأنا أقدر وقتك ومجهودك.. وأنا أعلم منذ البدايه ومقدر أنك تهتم بهذا المشروع في أوقات فراغك فقط.
بالنسبه لملاحظاتك فدونتها, وان شاء الله قريبا سأرفق ورقه محسنه مطوره مطوله تحتوي على رؤيتي لأسلوب الكتابه بهذه اللغه, وعلى قدر ما أستطيع سأحاول توضيح كيفية معالجة أسلوب الكتابه ولو بطريقه مبسطه.
عيني عليكم باردة يا شباب :)
بعد كل هذه المشاركات المتميزة ليس لدي سوى ملحوظة بسيطة بالنسبة لاستخدام النقطة كعلامة نهاية. في معظم الخطوط المستخدمة النقطة صغيرة جداً و قد نصعب قراءتها عند الكتابة بلغة كثيرة النقاط مثل العربية. لذا أعتقد أنه من الأفضل استبدالها بأي من الطرق الكلاسيكية
و إلى الأمام
محمد رمضان كتب:معذرة .. انا لا اقلل من مجهودك ..ولكن قل لي .. ما الفائدة من كتابة لغة عربية برمجية ؟؟ و كمان مبنيه على الجافا ؟؟
تاركين مسألة اللغة العربية كتراث فإن المشروع كتمريس للمهارات البرمجية وحده كافٍ للقيام به. القاعدة الذهبية للمبرمجين الهواة هي "لماذا أقوم بهذا؟ لأنني أستطيع!"
و ما عيب الجافا؟ قد تكون هي نوعاً ما بطيئة في التطبيقات المرئية و لكن كبنية تحتية للغة أخرى فأعتقد أنها مناسبة جداً. كما أنه هناك عدة لغات مبنية على الجافا مثل الجايثون Jython و هي لغة بايثون مبنية بالجافا.
هل تريد أن تعرف لماذا اللغة العربية
تصور كم من العقول لا تستطيع الإضافة
لمجرد أن لغات البرمجة باللغة الإنجليزية
تصور معي أن يقوم طالب ابتدائي بتعلم لغة برمجة هل ستقنعه بالموضوع لو كانت اللغة هي الإنجليزية
هل تصتطيع أن تقنع من يجهل لغة البرمجة عندما تكون بالإنجليزية أن يتعلمها لمجرد أنه مش لاقي حاجة يعملها
مابذا عن العربية أنتا تريد أن تحل مشاكلك اليومية بسهولة فما الضير من كتابة برنامج
لو كنت لن تكلف غير مجرد التفكير
تحية للإخوان هنا وربنا معكم
بعد قليل من التفكير في أسلوب معتز شمس، رأيت أن أجعل أسلوب التراكيب المتداخلة مبنية على الإشارة (:) التي تحدد البداية و النقطة التي تحدد نهاية المقطع سواء كانت جملة شرطية أو تكرارية. أكتب هذا لأني ما زلت أفكر في طريقة معتز وكيف نجعلها عامة لكل حالات الكتابة بهذه اللغة.
فما رأيكم؟
-------------------
ربما أبدأ ببرمجة هذه اللغة، وتوجد أمامي طريقتين:
1- إما أن أبدأ من الصفر مثلما بدأت مع اللغة الهيكلية الرياضية السابقة.
2- أو أستخدم JavaCC التي ستوفر الوقت والجهد في صنع مترجم أو Compiler خاص لهذه اللغة.
وأعتقد أني سأذهب مع الخيار الثاني.
لن أبدأ الآن، لكني أتطلع لو وجدت من هو متمرس في التعامل مع JavaCC ليساعدني في تنفيذ المشروع!
صفحاتي: صفحة حسام الملحم www.hussam.ws مدونة
آخر المشاريع: مشروع لغة برمجة عربية شيئية التوجه
ألعاب على الجوال : 1-(لعبة O X على الجوال ) 2-(لعبة الرقم السري على الجوال ) 3-(لعبة آخر حبة على الجوال )
ألعاب على الحاسب: لعبة الوزراء الثمان ، لعبة شطرنج ، لعبة التركيب Tetris
مواضيعي:
الفرق الجذري بين الجافا و C# شرح التعامل مع WTK لبرمجة الجوالات
مشاركاتي:
برنامج (كاتب) للكاتب فهد OMLX، برنامج (المحول) للكاتب فهد OMLX، برنامج (Unit Storm) للكاتب بشير C&Dell، أيهما أكبر الأعداد الصحيحة أم الطبيعية للكاتب Romanof، سؤال رياضي بحت للكاتب VB6-Rocket، التحدي الكبير للكاتب ANSI،
صدقا انا كنت افكر اعمل لغه برمجه باللغه العربيه مشروع تخرجي
بهيك حاله مش رح تزبط معي
الله يوفقك
بسم الله الرحمن الرحيم
حقيقة أسعدني وأعجبني موضوعك هذا ...
أسعدني لطموحك في تطوير لغة برمجة عربية ...
وأعجبتني فكرتك في طرح مراقبة مراحل تطور هذه اللغة ...
أسأل الله لك التوفيق في مشروعك الطموح هذا ...
أتمنى أن تتواصل مع الدكتور محمد عمار السلكة، مطور لغة البرمجة العربية " الجيم " ...
تقبل تحياتي
محمود سعيد
كمشاركة مني ...
بالنسبة لاستخدام المفردات في اللغة، وبعد اطلاعي على لغة الدكتور محمد عمار، وجدت أنه يستخدم الفعل المضارع مثل:
أجعل س=5
أكتب س
وفي تصوري أرى أن الأفضل هو استخدام الفعل الأمر كالتالي:
اجعل س=5
اكتب س
لأنني بذلك أكون مخاطباً للمترجم ( Compiler ) وأيضاً سأستغني عن همزات ( لكثرة وجود الفعل الثلاثي الذي الأمر منه يكون بهمزة وصل ) قد تضعف من شكل وبنية اللغة ...
أما اقتراح أحد الإخوة باختصار المفردات كاختصار
اجعل س=5
بالطريقة التالية
اج س=5
فأرى أنه لا داعي له فإن لم يضف جديداً، فإنه سيجعل من مفردات اللغة رموزاً مبهمة تزيد من صعوبة تعلم اللغة
هذه مشاركة بسيطة مني نظراً لضيق وقتي ... وبإذن الله لي عودة
تقبل تحياتي
محمود سعيد
تم تعديل هذه المشاركة بواسطة SHH في 13 أبريل 2007 في 00:57
حتي نصمم للغة برمجة يجب أن نركز علي طريقة لكتابة الكود نفهمها نحن أولا و تتوافق مع بعض قواعد العربية بدل عمل لغة برمجة هجينة لا هي عربية و لا إنكليزية
مثلا لنفارض السيناريو التالي
صنف فاكهة
السعر:رقم
اللون:نص
النوع:أنواع الفاكهة
قائمة أنواع الفاكهة
تفاح
موز
برتقال
نهاية القائمة
منشأ(السعر:رقم,اللون:نص,النوع:أنواع الفاكهة)
لون.هذا الصنف=اللون
سعر.هذا الصنف=السعر
نوع.هذا الصنف=النوع
نهاية المنشأ
نهاية الصنف
سأكتب نفس الكود باللغة الفيجوال بيسك للمقارنة بين اللغتين
class fruit
تم تعديل هذه المشاركة بواسطة محمد الأنصاري في 5 ديسمبر 2007 في 08:09
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…