أنت هنا:برمجها»اللغة ج»الدرس 8: إيعازات المترجم
الدرس 8: إيعازات المترجم الدرس 8: إيعازات المترجم
قيم الموضوع
(1 تصويت)

إيعازات المترجم هي أوامر ينفذها مترجم لغة ج أثناء ترجمته للبرنامج. وتعرف مثل هذه الأوامر التنفيذية بإيعازات زمن الترجمة، لأنها تنفذ من قبل المترجم أثناء ترجمة البرنامج. ولا تولد هذه الإيعازات أية تعليمات تنفيذية في البرنامج الهدف النهائي. وتشبه إيعازات المترجم في ج ما يسمى compiler directives في C. تقتصر إيعازات المترجم في الإصدار الحالي للغة ج على إيعازين فقط، هما بدّل وأَدرج.


أمر بَدِّلْ

يمكننا استعمال إيعاز التبديل كي نطلب من مترجم لغة ج أن يستبدل كل ورود لكلمة ما في نص البرنامج - الذي يلي هذا الإيعاز - بكلمة أخرى أو بعبارة مركبة، مثل:

بدل دع بـ "أجعل" !!بدل كل ورورد لكلمة دع في نص البرنامج بكلمة "أجعل"

و

بدل صفر بـ "0" !!بدل كل ورورد لكلمة صفر في نص البرنامج بـ 0 (الرقم صفر)

و

بدل الأحمر بـ "(100،0،0)" !!كلما وردت كلمة أحمر في نص البرنامج بدلها بـالعبارة (100،0،0)

أما الرمز بـ فهو حرف باء (ب) متبوع بكشيدة واحدة. وتوجد الكشيدة على لوحة مفاتيح الحاسب الشخصي القياسية فوق حرف التاء (ت). ويمكن طباعتها بالضغط على مفتاح Shift ثم مفتاح الحرف ت في وقت واحدوالشكل العام لأمر بدل هو:

بدل <اسم> بـ <ثابت_نصي>

وتقدم أوامر التبديل الفوائد التالية للمبرمج :

· إمكانية استبدال العبارات الطويلة أو المعقدة بأسماء مختصرة، مما يسرع ويسهل كتابة البرنامج.

· إمكانية تعريف كلمات مكافئة لمفردات لغة ج الأصلية، وبذلك يمكن توسيع مفردات ج لتشمل كلمات أخرى تناسب ما يفضله كل واحد من مفردات برمجية.

· طريقة بديلة لتعريف الثوابت العددية.

مثال 1

1    بدل دع بـ "أجعل"
2   المتحول س : صحيح
3    دع س = 20

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

المتحول س : صحيح
أجعل س = 20

مثال 2

في البرنامج التالي، عرف الثابت بي بواسطة أمر بدّل.

بدل بي بـ "3.14"
المتحول ر : حقيقيأكتب "أدخل نصف قطر الدائرة : "
أقرأ ر
أكتب 2 × بي × ر

مثال 3

كما يمكن أيضاً تعريف الثوابت النصية بواسطة أوامر التبديل.

بدل لج بـ " /"ج – لغة البرمجة العربية /" "
أكتب لج

إذا نفذ هذا البرنامج فستظهر على شاشة الكتابة عبارة : ج – لغة البرمجة العربية. لاحظ أنه في هذه الحالة يجب وضع الثابت النصي بين علامتي تنصيص إضافيتين – كل منهما مسبوق بشرطة مائلة. وإلا قام المترجم باستبدال كل ورود لكلمة لج بالعبارة ج - لغة البرمجة العربية دون إحاطتها بعلامتي التنصيص الضروريتين لتمييز هذه العبارة على أنها ثابت نصي.

مثال 4

بدل دع بـ "أجعل"
بدل ليكن بـ "المتحول"
بدل عدد بـ ":"
بدل نصف بـ "0.5"
بدل واحد بـ "1"

!!يبدل المترجم هذا الأمر إلى الأمر القياسي: المتحول س: حقيقي
ليكن س عدد حقيقي 
!!يبدل المترجم هذا الأمر إلى الأمر القياسي: المتحول ح: صحيح
ليكن ح عدد صحيح 
دع س = نصف     !!يبدل المترجم هذا الأمر إلى الأمر القياسي: أجعل س=0.5
دع ح = واحد    !!يبدل المترجم هذا الأمر إلى الأمر القياسي: أجعل ح = 1

في هذا المثال أمكن الاستفادة من إيعازات التبديل لكتابة أوامر بلغة ج تختلف في صياغتها اختلافاً جذرياً عن الصياغة القياسية لمثل هذه الأوامر، وإن كانت تكافؤها تماماً في المضمون. وقد يفضل بعض المبرمجون هذه الصياغة الجديدة عن الصياغة المعهودة.


أمر "أَدْرِجْ"

تستخدم أمر أدرج لإدراج، أو قراءة، ملف آخر يحوي جملا بلغة ج في البرنامج. وكما هو حال أمر بدل، ينفذ أمر أدرج من قبل مترجم لغة ج أثناء ترجمة البرنامج. أما الـصيغة العامة لأمر أدرج فهي:

أدرج <ثابت نصي>

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

وعندما يقرأ الـمترجم أمر إدراج يبحث عن الملف – المذكور اسمه بين علامتي الاقتباس - في المجلد الذي يحتوي البرنامج، فإن لم يجده بحث في المجلد "common libs" الـموجود في المجلد الذي تم فيه تنصيب برنامج الخوارزمي. حــــــالما يجد المترجم الملف المذكور، يقوم بقراءة أوامره وترجمتها كما لو أنها جزء من البرنامج الذي طلب إدراج الملف، ثم يعود لمتابعة قراءة البرنامج الأصلي وترجـمته.

مثال 1

أدرج "رياضيات"

عندما يقرأ المترجم هذا الأمر يقوم بالبحث عن ملف اسمه (jeem.رياضيات) في المجلد الذي يحتوي البرنامج أولاً، ثم في المجلد "common libs"،

وحالما يجد المترجم ملفاً بهذا الاسم يقوم بقراءة أوامره وترجمتها، وتصبح الأوامر المترجمة جزئاً من البرنامج الأصلي. يحتوي المجلد "common libs" ، الموجود في مجلد برنامج الخوارزمي على عدد من المكتبات المفيدة التي تعرف أنواع بيانات، وخـوارزميات، وتوابع تستخدم بكثرة في التطبيقات المختلفة.


تمارين تطبيقية


التمرين 8.1

أكتب برنامجاً يسرد النسب المثلثية للزوايا التي تتراوح بين و 90° بخطوة قدرها درجات.


 التمرين 8.2

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


 التمرين 8.3

أنجز مشروعا يقوم بحساب مربعات الأعداد من إلى 10، لكن باستعمال الأمر بدل.


تأليف

المؤلف الأصلي: الدكتورمحمد عمار السَلكة (دمشق - سوريا)

الموقع الشخصي: http://www.drsalka.com

البريد الإلكتروني: عنوان البريد الإلكتروني هذا محمي من روبوتات السبام. يجب عليك تفعيل الجافاسكربت لرؤيته.

 

ضبط بتصرف: محمد عبد الرحمان (الدار البيضاء - المغرب) 


المراجع

http://www.jeemlang.com


 

أضف تعليقا


إصنعها يريد أن يتأكد أنك لست روبوتا، لذلك أحسب ما يلي:

كود امني
تحديث