ترجم برنامج يترجم الرَّقِيم أي كود سورس من الحروف الإنقليزية
إلى العربية و من العربية إلى الإنقليزية.
و هو معد لترجمة رقيم لغة سيي و يمكنه ترجمة جافا
لأنها شبيهة بسيي.
و يمكنه ترجمة لغة بيسك بتمرير معطى عند
طلب البرنامج ليفهم أن ' تبدأ نَوْطا
أي كومّانت.
و يمكن تمرير أوامر ترجمة وسط الرقيم لقلب
<< و >> في
سيي بلاس بلاس أو منع ذلك.
و يمكنه ترجمة عامة جافاسكريبت ولكنه يعامل الأنساق
المحاطة بـ ' معاملة حروف لغة
سيي. و لا يعرف الأعداد الثمانية و الزوجية في
جافاسكريبت مثل 0b1101 و لا يقبل _
وسط الأعداد.
يترجم البرنامج حروف الأسماء فيصير b باء و h هاء و v ثاء
و V ذالا ...
و بعض الحروف لا يترجمها فيبقيها كما هي مثل Z و Q...
و يعمل أيضا بمعجم كلمات فيمكن أن تكتب فيه
الكلمات التي لا يحسن ترجمتها مثل:
printf, برينتف # حرف p يصير تاء مربوطة عادة
MAX_INT, ماكس_إنت_ك
Max_Int, ماكس_إنت_ر
linux, لينكس # حرف i يصير كسرة عادة و حرف u يصير فتحة
# و x يصير خاء عادة
ترجم يفهم الأعداد الثمانية أي أوكتال و
السَّتْعَشِيَّة أي هيغزاديسيمال و
الأعداد المجزأة أي فلووت. فيعرب 0123٠١٢٣ و 12.3e+11f١٢٫٣ق+١١ف.
و هو يترجم أيضا الحروف في آخر الأعداد مثل l و
u و f فيصيرها ل و
ع و ف.
و يترجم الأعداد إلى الأرقام المشرقية تلقائيا و يمكن تمرير
علم فيترجم إلى الأرقام المغربية.
و هو يقلب الرموز و الأرقام لتظهر صوابا في محرر
فييم و يمكن تمرير أعلام لمنع قلب الرموز أو
الأعداد ليظهر الرقيم صوابا في إماكس.
و هو يفهم الحروف و الأنساق أي سترينغ كما تقبل
في لغة سيي.
و يفهم ثوابت الحروف مثل \a
و \x4d1 فيعربه
/أ و /س١د٤.
و يفهم أيضا أوامر برينتاف و سكاناف مثل
%0 +0012.3f فيعربها
%٠ +٣٫٠٠١٢ف .
و هو يترجم أعلام برينتاف بثلاث طرق يتم اختياره بأعلام تمرر
إلى البرنامج مثل -2 أو -3 .
و هو يترجم الأسماء و الأعداد وسط الأنساق تلقائيا
و لكن يمكن وضع أوامر تمنع الترجمة و أوامر تسمح بالترجمة في
أنواط أي كومانت.
و هو يزيد فصلا أي |.!.| لمنع إدخال أخطاء في
الرقيم ف "\z\v" يعرب
فيصير "/|.!.|ز/ز" ثم يُرَوَّمُ فيعود كما كان. و
يمكن تمرير علم لمنع زيادة الفصلة.
ثمة من يبرمج بأسماء متغيرين فرنسية و إنقليزية مثل
number_of_arrays و ثمة من يبرمج بالعربية
بحروف لاتينية مثل Edd_Sfwf و ثمة من يبرمج
بالعربية مثل عدد_صفوف.
و أكثر وقت البرمجة يُمضى في قراءة الرقيم و ليس في
كتابته.
و وجدت أن نصا عربيا بحروف عربية يقرأ عادة في 91.4% من
الوقت المقضى لقراءة نص عربي بحروف رومية.
أو يمكن فهم ذلك أن البرمجة بحروف عربية تحتاج تفكرا أقل
من التفكر الواجب للبرمجة بحروف إنقليزية ب 8.5%.
و من أجل ذلك كتبت ترجم عسى أن يسهل لي البرمجة.
#ضمن<سيس\تايم.ه>
صحيح ياء = 12ل؛
حرف نون = 'w'؛
حرف سين[2][3]؛
رفيئة كاف_س {
صحيح الف : 3؛
صحيح باء : 1؛
}؛
رفيئة لام_س {
صحيح جيم؛
صحيح دال؛
}؛
فراغ عين()
{
رفيئة لام_س *لام = عدم؛
ياء = لام->جيم؛
ياء = 4 + 5؛
إن (نون)
بينا (ياء > 0)
ياء--؛
}
#include<sys/time.h>int yae = 12L;
char nwn = 'w';
char syn[2][3];
struct kaf_s {
int Alf : 3;
int bae : 1;
};
struct lam_s {
int jym;
int dal;
};
void Eyn()
{
struct lam_s *lam = null;
yae = lam->jym;
yae = 4 + 5;
if (nwn)
while (yae > 0)
yae--;
}
الترجمة اليمنى ترجم كالرقيم الأول بأرقام مشرقية و بنفس معجم
كلمات المثال الأول.
الترجمة الثانية في الوسط استعملت الأرقام المغربية و استعملت
معجما مغايرا لتعريب كلمات لغة سيي. و التلوين في الترجمة
الثانية أقل جراء تغير تعريب كلمات سيي و كون
اعرف_سيي.فييم (aErf_syy.vim)
لا يعرف تلك الكلمات فيلونها. و اعرف_سيي.فييم
ملف سكريبت مرافق لترجم لكي يزيد تلوين الرَّقِيم في محرر
فييم (vim).
ما يجب فهمه من المثال الأخير أن طريقة الترجمة قد تتبدل مع
الوقت فقد يفضل المبرمج في وقت ما وايل لترجمة
while و بعد عدة أشهر قد يفضل كلمة أخرى مثل
بينا. و لذلك عند حفظ الرقيم يحسن أن يحفظ
بالإنقليزية في الملف و في سيفياس
(cvs) مثلا. و ثمة جراء ذلك لغة برمجة واحدة
بالإنقليزية ولكن تظهر بطريقة التعريب المفضلة عند تغيير
الرقيم أو قراءته.
أما لو حفظ الرقيم بالعربية في سيفياس ثم تغيرت
طريقة التعريب فعندئذ يجب مراجعة كل الرقيم لتصويبه عند تغير
طريقة التعريب و كأن كل طريقة تعريب، لغة برمجة مختلفة عن
غيرها.
محاذير قلب الكتابة في يونيكود
بعض برامج الكتابة تعمل بطريقة يونيكود لإظهار
الكلمات العربية من اليمين لليسار.
و هذا قد يُعقِب بعض الأخطاء عند إظهار الرقيم و ليس عند
الترجمة، فقد يعرّب الرقيم فيظهر خاطئا في إماكس ثم يترجم
للإنقليزية فيرجع كما كان و الخطأ فقط في الإظهار و ليس في
الترجمة.
من هذه البرامج إماكس و كديفلوب. أما فييم
فلا يعمل بها.
و بعض هذه الأخطاء في الإظهار يحدث في نسخ معينة من بعض البرامج
دون غيرها.
من هذه الأحوال حال أمر سيي:
k = "123\45\67";
فهي تعرب مع -z و
-nbq فتصير:
ك = "١٢٣/٤٥/٦٧"؛
و تظهر في إماكس:
ك = "١٢٣/٤٥/٦٧"؛
و الصواب أن تظهر في إماكس:
ك = "١٢٣/٤٥/٦٧"؛
و لمنع خطإ الإظهار يحسن أن يصير الأمر في سيي:
k = "123" "\45" "\67";
وفي جافاسكريبت يكون الأمر:
k = "123" + "\45" + "\67";
و كذلك أمر سيي:
k = "\x12c\34\56\n";
فهو يعرب مع -z و
-nbq فيصير:
ك = "/سج٢١/٣٤/٥٦/ن"؛
و لكنه يظهر في إماكس 25.2.2:
ك = "/سج١٢/٣٤/٢١ﺞﺳ"؛
و الصواب أن يظهر:
ك = "/سج١٢/٣٤/٥٦/ن"؛
و لتجنب ذلك الخطإ يحسن أن يصير الأمر:
k = "\x12c" "\34" "\56\n";
و كذلك أمر سيي:
k = m?12:34;
n++;
فهو يعرب مع -z و
-nbq فيصير:
ك = م؟٢١:٣٤؛
ن++؛
و يظهر في إماكس 25.2.2:
ك = م؟٢١:١٢؟ﻡﻥ++؛
و الصواب أن يظهر:
ك = م؟١٢:٣٤؛
ن++؛
و لتصويب ذلك يحسن أن يصير الأمر:
k = m ? 12 : 34;
n++;
و كذلك أمر سيي:
for (m=0; q+=2,33>m; m++);
يعرب مع -z و
-njE و -g فيصير:
فور (م=0؛ ق+=2،33>م؛ م++)؛
و يظهر في إماكس:
فور (م=0؛ ق+=2،33>م؛ م++)؛
و الصواب أن يظهر:
فور (م=0؛ ق+=2،33>م؛ م++)؛
و لتصويب ذلك يحسن أن يزاد فضاء بعد الفاصل:
for (m=0; q+=2, 33>m; m++);
و هذه الأخطاء تظهر إذا وجد عددان و وجد حرف بينهما من الحروف
التالية: ',' و '.' و '/' و ':' و فاصل عربي '،' و فاصل
عشري عربي '٫' .
و زيادة فضاء بين العددين تزيل هذا الخطأ في الإظهار.
و هذه الأخطاء في الإظهار تحدث في إماكس و كديفلوب و
لا تحدث في فييم.
لنيل برنامج ترجم
برنامج ترجم برنامج تجاري.
لمزيد التفاصيل لنيل برنامج ترجم انظر
الصفحة التالية.
صفة ملاف ترجم
حزمة ترجم تحوي الملاف التالية:
ترجم.لنكسtrjm.lnx و هو
برنامج ترجم لنظام تشغيل لينكس 64 بيت.
ترجم_ل32.لنكسtrjm_l32.lnx و هو برنامج ترجم لنظام
تشغيل لينكس 32 بيت.
ترجم_و32.إكسوtrjm_w32.exe و هو برنامج ترجم لنظام
تشغيل ويندوز 32 بيت.
اطو_سيي.فييمaTw_syy.vim و
هو رَقِيم لتصويب الكلمات في طي برنامج فييم أي
فولدينغ.
اعرف_سيي.فييمaErf_syy.vim و
هو لتلوين رَقِيم لغة سيي بالعربية في برنامج فييم.
اعرف_سيي_2.فييمaErf_syy_2.vim و هو لتلوين أكثر للغة
سيي بالعربية في برنامج فييم.
فَسْر.هتمfsr.htm و هو لتفسير
العمل ببرنامج ترجم بالعربية.
هالب.هتمhelp.htm و هو
لتفسير العمل ببرنامج ترجم بالإنقليزية.
ترجم.اكسديtrjm.xxd و هو
نسخة من برنامج ترجم.لنكس بالأرقام السَّتْعَشِيَّة
أي هيغزاديسيمال بعد تمريره على أمر
xxd -p .
ملاف .لنكس .lnx و .اكسو .exe و
.اكسدي .xxd تحوي أرقاما تسلسلية ذات 53 رقما
يجب تصفيرها قبل حساب الأختام.
و في ملاف .اكسدي تتواجد دوما في سطرين متعاقبين
و يبدأ الرقم التسلسلي من أول السطر و آخر السطر الثاني
أصفار.
و أسطر بدء الأرقام التسلسلية هي:
5537 في ترجم.اكسدي trjm.xxd
5089 في ترجم_ل32.اكسدي trjm_l32.xxd
5113 في ترجم_و32.اكسدي trjm_w32.xxd
مثلا لحساب أختام ترجم.اكسدي يصفر الرقم
التسلسلي بالأمر التالي:
cat trjm.xxd | sed '5537,+1 s/3[0-9]/30/g' |
sed '5539,+1 s/3[0-9]/35/g' > t_0.xxd
ثم تحسب أختام الملف t_0.xxd .
ولحساب أختام ترجم.لنكس يصفر الرقم
التسلسلي بالأمر التالي: