# لغة ج

ج: هي لغة برمجة عالية المستوى برمجها البروفسيور السوري محمد بن عمار السلكة وتستخدم اللغة العربية قلبًا وقالبًا. فبواسطتها يمكن كتابة برامج الحاسوب الشخصي باللغة العربية، وقد تكون أول لغة برمجة عربية متكاملة تحتوي جُلَّ خصائص لغات البرمجة الأجنبية رفيعة المستوى مثل سي وباسكال.

## تاريخ

يقول مٌبرمج اللغة: «طلب مني أحد الأصدقاء ذات يوم أن أبدي رأيي في منهاج كان قد أعده لتدريس علوم الحاسوب للأطفال وطلاب المدارس في إحدى المعاهد. وكان من جملة أهداف هذا المنهاج تعليم طلاب المراحل الدراسية المبكرة برمجة الحاسوب من خلال لغات برمجة بسيطة مثل لوغو وبيسيك. وقد لفت نظري أن هذه اللغات على بساطتها لا تناسب الطلاب العرب الصغار لاعتمادها على اللغة الإنجليزية. وكما هو معروف، تعتمد غالبية لغات البرمجة رفيعة المستوى على اللغة الإنكليزية، وتستخدم الأحرف اللاتينية قلباً وقالباً، مما يجعلها بعيدة المنال عن الطلاب العرب، خاصة أولئك الذين ما زالوا في المراحل التعليمية المبكرة، ولم يتقنوا اللغات الأجنبية اتقاناً كافياً.
فتولد عندي دافع قوي للعمل على تطوير لغة برمجة عربية تكون سهلة وميسرة، ولا تقل مع ذلك في قدراتها عن لغات البرمجة رفيعة المستوى المعروفة مثل سي وباسكال. لتكون وسيلة مناسبة لتعليم الطلاب العرب مبادئ البرمجة بلغتهم الأم. وأن تكون هذه اللغة من روح مناهجهم، ومن صميم المفردات التي ألفوها في حياتهم الدراسية. وتشكلت لدي قناعة بأن إدخال الحاسوب إلى المناهج التعليمية في العالم العربي يجب أن ينطلق من تعليم الطلاب برمجة الحاسوب بواسطة لغة برمجة تمكنهم من السيطرة على مفاهيم البرمجة الأساسية بلغتهم الأم، وتتوافق وتنسجم مع مناهجهم الأخرى في الرياضيات والعلوم واللغة العربية.
وشرعت في العمل على تطوير هذه اللغة، وتوصلت إلى لغة برمجة عالية المستوى مشتقة من اللغة العربية، تكتب بحروفها وأرقامها، وتستخدم مفرداتها، وتلتزم بقواعدها. وتتمتع بالبساطة والوضوح. ويمكن بواسطتها برمجة كل ما يحتاجه الطالب من برامج وخوارزميات تفيده في دراسته. وقد رأيت أن أطلق على هذه اللغة اسم ج لشبهها في جوانب عديدة بلغة البرمجة المعروفة C. كما قمت بتطوير برنامج يتيح كتابة، وتنقيح، وتنفيذ البرامج بلغة ج، وأطلقت على هذا البرنامج اسم الخوارزمي تقديراً للعالم الشهير محمد بن موسى الخوارزمي. لتحميل برنامج الخوارزمي إضغط هنا
وقد شاء الله أن أنشغل عن اتمام اللمسات الأخيرة لهذا البرنامج فترة من الزمن، وأن يبقى هو ولغة ج حبيساً في أحد الدروج، إلى أن قلت أعبائي مؤخراً وأكملت ما بدأته منذ أكثر من 7 سنوات. »

## الكلمات المحجوزة

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

## أمــثــلــة
### حساب مساحة دائرة

يبين المثال التالي برنامجاً بسيطاً بلغة ج، لحساب مساحة دائرة بعد قراءة قطرها.
الثابت بي = 3.1415
المتحول ق: حقيقي
المتحول س: حقيقي
أكتب "أدخل قطر الدائرة:"، سطر
أقرأ ق
أجعل س = بي × (ق ÷ 2) ^ 2
أكتب "مساحة الدائرة ="، س
الشرح: يتألف هذا البرنامج من سبع جمل. الثلاثة الأولى منها جمل تعريفية والأربعة الأخيرة جمل تنفيذية.
* تعرّف الجملة الأولى الثابت الهندسي «بي» (والمعروف بـ π) وهو نسبة محيط الدائرة إلى قطرها.
* وتعرّف الجملة الثانية متحولاً «ق» يمكنه حفظ الأعداد الحقيقية، وسيستخدم هذا المتحول لحفظ قيمة قطر الدائرة.
* الجملة الثالثة فتعرف المتحول الحقيقي «س»، الذي سيستخدم لحفظ مساحة الدائرة.
* الجملة الرابعة تقوم بكتابة العبارة: «أدخل قطر الدائرة:» على الشاشة لتنبه المستخدم إلى ضرورة إدخال عدد يمثل قطر الدائرة.
* تقرأ الجملة الخامسة قيمة القطر التي يدخلها المستخدم في لوحة الكتابة.
* تحسب الجملة السادسة مساحة الدائرة من العلاقة: بي×(ق÷2)$^2$، وتضع هذه القيمة في المتحول «س».
* أخيراً تقوم الجملة الأخيرة بكتابة النتيجة في شاشة العرض.