علاء نت200
08-11-2002, 19:50
كتابة البرامج تحت نظام Unix/Linux
أنت تحتاج إلى برنامج منقح نصوص ( منسق كلمات ) جيد لكتابة البرامج والمستندات وغيرهما من الملفات ، وأحد هذه البرامج هو منقح النصوص Emacs.
5-1 استخدام المنقح Emacs :
لكي تفتح صفحة جديدة للكتابة باستخدام منقح النصوص Emacs اكتب الأمر :
emacs filename
حيث تشير كلمة filename إلى اسم الملف المراد إنشاؤه . فإذا كان الملف قد سبق إنشاؤه فإنه يظهر بما سبق كتابته فيه وإلا ستظهر شاشة خالية. فمثلا لكتابة برنامج بلغة الباسكال واسمه myprog.pas أكتب الأمر :
emacs myprog.pas
ملاحظة :
تتكون ملفات البرامج من شقين تفصل بينهما نقطة، الشق الأول وهو اسم البرنامج ، والشق الثاني يعبر عن نوع المترجم الذي يستخدم لترجمة البرنامج. فمثلا في لغة الباسكال يكون الشق الثاني “pas” أو “p” وفي لغة C يكون “c”
ويوضح الجدول التالي استخدامات أهم الأوامر للمنقح Emacs :
اضغط على … لعمل …….
navigation استخدم الأقواس تحريك علامة البداية
<ctrl+v> صفحة لأسفل
<esc+v> or <alt+v> صفحة لأعلى
esc+’>’ or alt+’>’ اذهب إلى نهاية المقطع
esc+’<’ or alt+’<’ اذهب إلى بداية المقطع
save/exit <ctrl+x><ctrl+s> تخزين ملف
<ctrl+x><ctrl+c> الخروج من المنقح
deletion Backspace or Delete حذف رمز بعد علامة البداية
<ctrl+k> الحذف من علامة البداية إلى نهاية السطر
<ctrl+y> نسخ ما سبق حذفه بالأمر <ctrl+k> إلى ما بعد علامة البداية
<esc+d> or <alt+d> إلغاء الكلمة الحالية
<esc+delete> or <alt+delete> إلغاء الكلمة السابقة
multi-edit <ctrl+x><ctrl+f> لفتح ملف إضافي في حاجز آخر حيث يجب تسمية الملف بعد الأمر
<ctrl+x> b الانتقال إلى حاجز آخر مع
<ctrl+x> k to ‘kill’ the current buffer
misc. <ctrl+g> cancel current command and return to editing mode
<ctrl+x> u undoes last command(s)
online help <ctrl+h> t activate a short Emacs tutorial
<ctrl+h> i to load the information documentation reader and read all the types of help available.
5-2 ترجمة البرامج :
بعد كتابة البرنامج بلغة C أو لغة الباسكال باستخدام المنقح Emacs ( راجع الملاحظة السابقة ) وتخزينه فإنك تكون بذلك مستعدا لترجمته .
أولا : مترجم لغة C ) The C Compiler) :
مترجم لغة C المتوفر مع معظم أنظمة Unix هو مترجم GNU C واختصار الأمر له هو “gcc” أو “cc” ، وهو متوافق مع المترجم ANSI C . ولترجمة برنامج بلغة C أكتب الأمر يليه اسم البرنامج كما في المثال التالي :
gcc myprog.c
أو cc myprog.c
ونتيجة تنفيذ الأمر السابق هي أحد احتمالين :
1 – فشل الترجمة بالكامل نتيجة وجود أخطاء في قواعد البرمجة . وفي هذه الحالة يجب العودة إلى المنقح Emacs لتصحيح الأخطاء .مثال ذلك :
Linux120:~> gcc myprog.c
myprog.c:1: parse error before testing
myprog.c:4: missing semi-column
myprog.c:14: character constant too long
Linux120:~> _
لاحظ من المثال السابق وجود أرقام الأسطر التي بها أخطاء بين علامتي التنصيص "::"
2- اكتمال ترجمة البرنامج بنجاح . وفي هذه الحالة فإن المترجم gcc ينشئ ملف قابل التنفيذ بعد توفر البيانات ، وهذا الملف يأخذ الاسم " a.out" حيث يمكن تنفيذه بكتابة الأمر : ./a.out كما في المثال التالي :
Linux120:~> gcc myprog.c
Linux120:~> ./a.out
… program execution …
إذا لم تكن راغبا في أن يكون اسم البرنامج التنفيذي " a.out" فإنه يمكنك إعطاء الاسم الذي ترغبه قبل إجراء عملية الترجمة كما في المثال التالي :
Linux120:~> gcc -o myprog myprog.c
Linux120:~> ./myprog
… program execution …
مترجم لغة الباسكال Pascal Compiler
مترجم الباسكال المستخدم مع معظم أنظمة Unix هو "gpc" . ويتميز هذا المترجم بوظائف متعددة بجانب قدرته على التعامل مع المترجمات المتوافقة معه.
ولاستدعاء هذا المترجم يكتب الأمر "gpc" أو فقط ((pc للاختصار ، ويتبع هذا الأمر مباشرة اسم البرنامج المطلوب ترجمته والمكتوب بلغة وقواعد الباسكال. ويراعى أن يكون الشق الثاني من الاسم وهو نوع الملف يعبر عن لغة الباسكال بالاختصار “pas” أو "p". فإذا كان اسم البرنامج المطلوب ترجمته myprog.pas فأمر الترجمة يكتب كالآتي :
gpc myprog.pas
أو pc myprog.pas
ويعود تنفيذ هذا الأمر بأحد احتمالين :
1. فشل الترجمة نتيجة وجود أخطاء في كتابة البرنامج . وفي هذه الحالة يجب الرجوع إلى المنقح Emacs لتصحيحها بناء على تعليمات الترجمة التي توضح رقم السطر الذي به الخطأ واحتمال الخطأ كما في المثال التالي :
Linux120:~> pc myprog.pas
myprog.pas:1: parse error before testing
myprog.pas:4: missing semi-column
myprog.pas:14: character constant too long
Linux120:~> _
لاحظ وجود رقم السطر الذي به الخطأ والرسالة التي تدل على احتمال الخطأ.
2. نجاح الترجمة ، وفي هذه الحالة يقوم المترجم بإنشاء ملف تنفيذي يسمي “a.out” حيث يمكن تنفيذه مباشرة بكتابة الأمر “,/a.out” كما في المثال التالي :
Linux120:~> pc myprog.pas
Linux120:~> ./a.out
… program execution …
وإذا لم تكن راغبا في أن يكون اسم البرنامج التنفيذي " a.out" فإنه يمكنك إعطاء الاسم الذي ترغبه قبل إجراء عملية الترجمة كما في المثال التالي :
Linux120:~> pc -o myprog myprog.pas
Linux120:~> ./myprog
… program execution …
طباعة البرامج :
لطباعة البرنامج يمكنك استخدام أمر الطباعة lpr كما سبق أن أشرنا في الفقرة 3-8 . مثال ذلك أكتب الأمر :
lpr myprog.pas
عندئذ يتم طبع البرنامج على الطابعة التي تم توصيف النظام عليها ، وهي الطابعة الموجودة في مركز الحاسب الآلي بالكلية، وعليك الذهاب إلى مركز الحاسب لاستلام طباعتك.
وقد تريد في بعض الأحيان طباعة البرنامج مع النتائج ، فبفرض أن اسم البرنامج هو myprog :
• أكتب أمر ترجمة البرنامج كالآتي :
pc myprog.pas
• اختر اسم ملف للتخزين المؤقت لجميع ما تريد طباعته لاحقا ، وليكن اسمه ‘print.txt’:
script print.txt
وهذا يعني أن كل ما تكتبه لاحقا لهذا الأمر يتم تخزينه في الملف print.txt . والآن قم بتشغيل برنامج المخرجات كالآتي :
./a.out
عندئذ يتم تنفيذ البرنامج ويرحل البرنامج الأصلي والمخرجات إلي ملف print.txt
وبعد الانتهاء من الطباعة يجب الخروج من الأمر script بكتابة أمر الخروج exit
والآن ، يمكنك طباعة البرنامج والمخرجات بالأمر :
lpr myprog.pas print.txt
ملاحظة :
لكي تتجنب الرموز الشاذة في عملية الطباعة يجب ألا تستخدم "الأسهم أو مفاتيح الحذف" بعد تنفيذك للأمر script
أنت تحتاج إلى برنامج منقح نصوص ( منسق كلمات ) جيد لكتابة البرامج والمستندات وغيرهما من الملفات ، وأحد هذه البرامج هو منقح النصوص Emacs.
5-1 استخدام المنقح Emacs :
لكي تفتح صفحة جديدة للكتابة باستخدام منقح النصوص Emacs اكتب الأمر :
emacs filename
حيث تشير كلمة filename إلى اسم الملف المراد إنشاؤه . فإذا كان الملف قد سبق إنشاؤه فإنه يظهر بما سبق كتابته فيه وإلا ستظهر شاشة خالية. فمثلا لكتابة برنامج بلغة الباسكال واسمه myprog.pas أكتب الأمر :
emacs myprog.pas
ملاحظة :
تتكون ملفات البرامج من شقين تفصل بينهما نقطة، الشق الأول وهو اسم البرنامج ، والشق الثاني يعبر عن نوع المترجم الذي يستخدم لترجمة البرنامج. فمثلا في لغة الباسكال يكون الشق الثاني “pas” أو “p” وفي لغة C يكون “c”
ويوضح الجدول التالي استخدامات أهم الأوامر للمنقح Emacs :
اضغط على … لعمل …….
navigation استخدم الأقواس تحريك علامة البداية
<ctrl+v> صفحة لأسفل
<esc+v> or <alt+v> صفحة لأعلى
esc+’>’ or alt+’>’ اذهب إلى نهاية المقطع
esc+’<’ or alt+’<’ اذهب إلى بداية المقطع
save/exit <ctrl+x><ctrl+s> تخزين ملف
<ctrl+x><ctrl+c> الخروج من المنقح
deletion Backspace or Delete حذف رمز بعد علامة البداية
<ctrl+k> الحذف من علامة البداية إلى نهاية السطر
<ctrl+y> نسخ ما سبق حذفه بالأمر <ctrl+k> إلى ما بعد علامة البداية
<esc+d> or <alt+d> إلغاء الكلمة الحالية
<esc+delete> or <alt+delete> إلغاء الكلمة السابقة
multi-edit <ctrl+x><ctrl+f> لفتح ملف إضافي في حاجز آخر حيث يجب تسمية الملف بعد الأمر
<ctrl+x> b الانتقال إلى حاجز آخر مع
<ctrl+x> k to ‘kill’ the current buffer
misc. <ctrl+g> cancel current command and return to editing mode
<ctrl+x> u undoes last command(s)
online help <ctrl+h> t activate a short Emacs tutorial
<ctrl+h> i to load the information documentation reader and read all the types of help available.
5-2 ترجمة البرامج :
بعد كتابة البرنامج بلغة C أو لغة الباسكال باستخدام المنقح Emacs ( راجع الملاحظة السابقة ) وتخزينه فإنك تكون بذلك مستعدا لترجمته .
أولا : مترجم لغة C ) The C Compiler) :
مترجم لغة C المتوفر مع معظم أنظمة Unix هو مترجم GNU C واختصار الأمر له هو “gcc” أو “cc” ، وهو متوافق مع المترجم ANSI C . ولترجمة برنامج بلغة C أكتب الأمر يليه اسم البرنامج كما في المثال التالي :
gcc myprog.c
أو cc myprog.c
ونتيجة تنفيذ الأمر السابق هي أحد احتمالين :
1 – فشل الترجمة بالكامل نتيجة وجود أخطاء في قواعد البرمجة . وفي هذه الحالة يجب العودة إلى المنقح Emacs لتصحيح الأخطاء .مثال ذلك :
Linux120:~> gcc myprog.c
myprog.c:1: parse error before testing
myprog.c:4: missing semi-column
myprog.c:14: character constant too long
Linux120:~> _
لاحظ من المثال السابق وجود أرقام الأسطر التي بها أخطاء بين علامتي التنصيص "::"
2- اكتمال ترجمة البرنامج بنجاح . وفي هذه الحالة فإن المترجم gcc ينشئ ملف قابل التنفيذ بعد توفر البيانات ، وهذا الملف يأخذ الاسم " a.out" حيث يمكن تنفيذه بكتابة الأمر : ./a.out كما في المثال التالي :
Linux120:~> gcc myprog.c
Linux120:~> ./a.out
… program execution …
إذا لم تكن راغبا في أن يكون اسم البرنامج التنفيذي " a.out" فإنه يمكنك إعطاء الاسم الذي ترغبه قبل إجراء عملية الترجمة كما في المثال التالي :
Linux120:~> gcc -o myprog myprog.c
Linux120:~> ./myprog
… program execution …
مترجم لغة الباسكال Pascal Compiler
مترجم الباسكال المستخدم مع معظم أنظمة Unix هو "gpc" . ويتميز هذا المترجم بوظائف متعددة بجانب قدرته على التعامل مع المترجمات المتوافقة معه.
ولاستدعاء هذا المترجم يكتب الأمر "gpc" أو فقط ((pc للاختصار ، ويتبع هذا الأمر مباشرة اسم البرنامج المطلوب ترجمته والمكتوب بلغة وقواعد الباسكال. ويراعى أن يكون الشق الثاني من الاسم وهو نوع الملف يعبر عن لغة الباسكال بالاختصار “pas” أو "p". فإذا كان اسم البرنامج المطلوب ترجمته myprog.pas فأمر الترجمة يكتب كالآتي :
gpc myprog.pas
أو pc myprog.pas
ويعود تنفيذ هذا الأمر بأحد احتمالين :
1. فشل الترجمة نتيجة وجود أخطاء في كتابة البرنامج . وفي هذه الحالة يجب الرجوع إلى المنقح Emacs لتصحيحها بناء على تعليمات الترجمة التي توضح رقم السطر الذي به الخطأ واحتمال الخطأ كما في المثال التالي :
Linux120:~> pc myprog.pas
myprog.pas:1: parse error before testing
myprog.pas:4: missing semi-column
myprog.pas:14: character constant too long
Linux120:~> _
لاحظ وجود رقم السطر الذي به الخطأ والرسالة التي تدل على احتمال الخطأ.
2. نجاح الترجمة ، وفي هذه الحالة يقوم المترجم بإنشاء ملف تنفيذي يسمي “a.out” حيث يمكن تنفيذه مباشرة بكتابة الأمر “,/a.out” كما في المثال التالي :
Linux120:~> pc myprog.pas
Linux120:~> ./a.out
… program execution …
وإذا لم تكن راغبا في أن يكون اسم البرنامج التنفيذي " a.out" فإنه يمكنك إعطاء الاسم الذي ترغبه قبل إجراء عملية الترجمة كما في المثال التالي :
Linux120:~> pc -o myprog myprog.pas
Linux120:~> ./myprog
… program execution …
طباعة البرامج :
لطباعة البرنامج يمكنك استخدام أمر الطباعة lpr كما سبق أن أشرنا في الفقرة 3-8 . مثال ذلك أكتب الأمر :
lpr myprog.pas
عندئذ يتم طبع البرنامج على الطابعة التي تم توصيف النظام عليها ، وهي الطابعة الموجودة في مركز الحاسب الآلي بالكلية، وعليك الذهاب إلى مركز الحاسب لاستلام طباعتك.
وقد تريد في بعض الأحيان طباعة البرنامج مع النتائج ، فبفرض أن اسم البرنامج هو myprog :
• أكتب أمر ترجمة البرنامج كالآتي :
pc myprog.pas
• اختر اسم ملف للتخزين المؤقت لجميع ما تريد طباعته لاحقا ، وليكن اسمه ‘print.txt’:
script print.txt
وهذا يعني أن كل ما تكتبه لاحقا لهذا الأمر يتم تخزينه في الملف print.txt . والآن قم بتشغيل برنامج المخرجات كالآتي :
./a.out
عندئذ يتم تنفيذ البرنامج ويرحل البرنامج الأصلي والمخرجات إلي ملف print.txt
وبعد الانتهاء من الطباعة يجب الخروج من الأمر script بكتابة أمر الخروج exit
والآن ، يمكنك طباعة البرنامج والمخرجات بالأمر :
lpr myprog.pas print.txt
ملاحظة :
لكي تتجنب الرموز الشاذة في عملية الطباعة يجب ألا تستخدم "الأسهم أو مفاتيح الحذف" بعد تنفيذك للأمر script