لغات البرمجة العربية

22 04 2007
أرى الكثير من المستخدمين العرب على الإنترنت يجيدون التعامل مع لغات البرمجة الأجنبية بل إن منهم من يتفاخر بمعرفته للغات برمجة أسبانية أو فرنسية و لكن أحدهم لم يتساءل لماذا لا توجد لغات برمجة عربية سوى قلة قليلة خطرت لهم هذه الفكرة على بعض المنتديات ,
الحقيقة انه بعد البحث وجدت انه هناك لغات برمجة عربية و لكنها تعد على أصابع اليد الواحدة منها لوجو العربية و التي تقوم بتعليم الأطفال الرسم , و لم اسمع انه هناك لغات عربية غيرها , يبدو انه لا أحد يهتم بعمل محرك لغة برمجة عربي و قد انشغلوا جميعا بتعلم اللغات الموجودة أساسا بعد أن فكرت في الأمر وجدت انه هنالك طريقتان يمكن عمل لغات برمجة عربية بها :الأولى : عمل برنامج يتيح الكتابة باللغة العربية ثم ترجمتها للغة البرمجة الأصلية الثانية : عمل لغة البرمجة من الصفر أي من الكور الأساسي حتى المكتبات و الآن تحليل مفصل لكل طريقة من الاثنين :الطريقة الأولى برنامج ترجمة اللغة : يتم عمل برنامج به نظام القاموس يتم وضع كل دالة مع المقابل لها باللغة العربية مع مراعاة عدم تكرار الكلمات فمثلا عند وجود دالة تسمى (بحث) يجب ألا توجد دالة أخرى تسمى (بحث_نص) القاعدة الثانية هي عدم تضمين المسافة في أسماء الدوال العربية لسهولة البحث عنها و استبدالها سنحتاج أيضا لقاموس آخر به الحروف العربية و مقابلاتها في الحروف الأجنبية و ذلك لإعادة تسمية المتغيرات و أسماء الكائنات التي سيدخلها المستخدم بالعربية طبعا فمثلا عندما يجد البرنامج كلمة ليست في القاموس الخاص بالدوال تكون متغير أو كائن أو دالة معرفة من قبل المستخدم و بذلك يتم أستبدال كل حرف عربي بحرف أجنبي مثلا عند وجود متغير يسمى (كائنى) يتم ترجمته (kaeny)و يتم مراعاة عكس وضع الكلمات لأن اللغة العربية من اليمين لليسار بعكس اللغات الأخرى و بذلك يكون ناتج ترجمة كود من لغة مثل الجافا سكر يبت من العربية للإنجليزية كهذا النسخة العربية :
دالة اختبار(معامل1 و معامل2 ){
المستند.أكتب(معامل1+معامل2)
}
اختبار(2و5)
النسخة الإنجليزية:
Function akhtbar(ma3aml1,ma3aml2){
document. write(ma3aml1+ma3aml2)
}
Akhtbar(2,5)
و هكذا نرى انه في المثال السابق قد تم مايلى : ملحوظة : تم اختبار كلمات الكود من اليمين لليسار و كتابة ما يقابله من اليسار لليمين تم اختبار كلمة (دالة) فوجد أنها من الكلمات المحجوزة و مقابلها functionتم و ضع المسافة كما هي تم اختبار كلمة (اختبار) فلم توجد في الكلمات المجوزة أو الدوال فتم أستبدل الحروف العربية بحروف إنجليزية مع مراعاة أن حرف الخاء هو kh حتى لا يتضارب مع حرف الكاف الزى سيكون مقابله k فقط تم وضع معكوس القوس ( ليكون في وضعه الصحيحتم اختبار كلمة (معامل1) فلم توجد في القاموس فترجمت إلى ma3aml1 مع ملاحظة أن مقابل حرف العين هو m3 ولم تكون 3 فقط كما نفعل في الشات بسبب انه إذا بدأ متغير بحرف العين كأسمى (عماد ) ستكون الترجمة ستكون الترجمة 3mad وهو ما ترفضه لغات البرمجة (أن يبدأ متغير برقم) و ستكون الترجمة التي يقبلها المفسر هي a3mad تم تحويل حرف الواو إلى coma و ترجمة كلمة معامل2 بنفس الطريقة ثم عكس القوسين ( و { ملحوظة : حرفي { و } هما غير مرسومين على لوحة المفاتيح و يمكن كتابتهما عن طريق المفتاح العلوي و حرف الراء و حرف الواو المهموزتم ترجمة كلمة (المستند) إلى الكلمة المحجوزة document تم وضع النقطة و ترجمة كلمة (أكتب) إلى أسم الحدث write و تم عكس الأقواس و ترجمة كلمة معامل1 و معامل2 كما سبق الشرح ثم عكس القوس و تحويل كلمة اختبار كما سبق و عكس الأقواس و كتابة الأرقام كما هي مع عكس ترتيبها 2و5 إلى 2,5
و بذلك نكون قد قمنا بعمل برنامج يجمع رقمين بالعربية و تم ترجمته للإنجليزية

الطريقة الثانية و هي بناء الكود من البداية
وهو ما يجب عمله فعلا حيث يجب بداية بناء language core أو ما يتم تلقيبه بقلب اللغة ثم عمل الدوال في مكتبات تقوم بالعمل على المحرك أيضا ثم عمل الواجهة الرسومية إذا كانت لغة stand alone تنتج ملفات تنفيذية أو عمل امتداد للعمل على الأجهزة الخادمة إذا كانت مثل php أو ما يناسب اللغة التي تم صنعها مع العلم انه سوف تحتاج إلى compiler في كلتا الحالتين لترجمة الكود للغة الآلة
ملحوظة: لن استرسل في هذا القسم كثيرا لعدم علمي بتفاصيل صنع لغات البرمجة
كل مايمكن قوله في هذه الطريقة أنها يجب أن تكون مفتوحة المصدر كأي لغة تحترم نفسها و تكون متاحة للجميع


الإجراءات

Information

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s




%d مدونون معجبون بهذه: