العديد من الإخوة مِن من مََنَ الله عليهم وعلمهم من علمه قد بلغوا
ولله الحمد مستوى جيدا في البرمجة بكافة ألوانها ومشاربها
وخصوصا في لغة السي؛ نسأل الله العلي القدير أن يزيدهم من فضله
ويجعلهم القاعدة في المجتمع الإسلامي لا الاستثناء. لكن الملاحظ هو
المعرفة الشيء الذي أدى إلى قلة المراجع العربية الموجودة في هته
اللغة. ولما كانت زكاة علم المرء تعليم غيره؛ وبناء على طلب بعض
الإخوة ممن تحذوهم رغبة جادة في تعلم البرمجة بلغة السي تم بعون
الله إخراج هذا الكتاب إلى النور تحت رخصة .601 نسأل العلي
القدير التوفيق والسداد والعون والرشاد والنفع للعباد وعلى بركة الله
نبدأ .
ن صممت أساسا لكتابة ما اعتبر أول نظام التشغيل يونكس حيث كتبه كين تومبسون بادئ الأمر
دبداً توحيدها سنة 1983 من طرف لجنة 3111 ل اكلم ( ) 513002305 اقممتا2لا ممعععصصم(
1050016 ليتم إطلاق نسخة السي القياسية سنة 1989والمسماة 6-اكل80
©1988 نشر ريتشي وكيرنغان النسخة الثانية من كتاب « 6ع802د0ما 0:08:20107108 © 706 »
والذي اعتبر بمثابة الكتاب المقدس لمبرمجي لغة السي
م شمولية : فهي غير موجهة نحو مجال معين كما هو الشأن
بالنسبة ل 0+880ع (تطبيقات علمية وتقنية) أو 6000١
(تطبيقات تجارية)
ه عصرية : فهي مهيكلة, تصريحيه حيث توفر بنيات تحكم و
تصاريح مماثلة لنظيراتها ك 02523١ ,0+1130]و0168ع8ام
ه قريبة من الآلة : لقد صممت السي في المقام الأول لبرمجة
نظام التشغيل »01ل لذا فهي تتوفر على وظائف قريبة من
لغة الآلة وتوفر دوال قادرة على الولوج مباشرة وبكل حرية
وسهولة ويسر إلى الوظائف الداخلية للحاسوب ( إدارة
الذاكرة مثلا
القريبة من لغة الآلة ما يسمح بكتابة برامج سريعة وفعالة
ن مستقلة عن المنصة : رغم قربها من الآلة إلا أن ذلك لا يمنع
السي من العمل على أي نظام يمتلك مفسرا لها فقد انطلقت
من كونها لغة الأنظمة العاملة ب »مل لتصير اللغة الرسمية
في مجال الحواسيب الدقيقة
محمولة : يمكن استخدام نفس البرنامج المكتوب بالسي في
جميع الأنظمة (جميع أنواع العتاد وجميع أنظمة التشغيل)
شرط احترام القياس 6-اكل80
الحرية المطلقة التي توفرها هته اللغة تفرض توخي
الحيطة والحذر فقربها من الآلة سيف ذو حدين ورغم أنها
لغة مهيكلة إلى أنها لا تفرض على المبرمج إتباع نمط معين
أثناء البرمجة ( كالباسكال ) فكل شيء مباح وبالتالي فاحتمال
ارتكاب أخطاء سيميولوجية و بنيوية كبير جدا ما قد يكلف
مدة زمنية ليست بالهينة - تطول أو تقصر حسب طول الكود .
وتعقيده - في محاولة تعقب الخطأ وتصحيحه ما يستوجب من
المبرمج أن يكون على قدر المسؤولية وأن يحرص على أن .
بالنسبة تل ١116م6001 و تمتنامع كا71 و «ععواصنا
فسأورد (بتصرف) تعريفها بإذن الله كما أوردها الأخ خليل
أونيس في الطبعة الثانية من كتاب لغة السي الشامل والذي
أوصي بشدة بقراءته فلا أبالغ إن قلت أنه أفضل الكتب
محرر النصوص : 501402 16*15
أول خطوة في البرمجة هي كتابة البرنامج وذلك على
أي محرر نصوص مع مراعاة شرطين :
1. أن يتم حفظ مصدر البرنامج بصيغة 6. مثلا 5381800.6
2. أن تكون النصوص مكتوبة بنظام ١560م
**وتجدر الإشارة إلى أنه لا يمكن استخدام محرر 60/030!
المفسر/المترجم : +116م6007
تقوم المترجمات بترجمة الملفات المصدرية إلى لغة منخفضة
المستوى كلغة التجميع 8080886 5507م أو إلى لغة الآلة
مباشرة ؛ حيث يتم بعد الترجمة إنشاء ملفات بامتداد (طا0. تحتوي
على تعليمات التجميع أو الآلة مم يسهل عملية ربط لغتين أو أكثر مع
بعضها ؛ فمثلا يمكن استدعاء دوال من 025681 في لغة ال ع
توجد العديد من المترجمات في أغلب الأنظمة؛ مثلا في أنظمة
1/1/1005 يوجد المترجم المجاني ++ »ع0 المقدم من شركة
86000 وهناك أيضا ع 70+00 أحد أقدم المترجمات و الأكثر
استعمالا في الجامعات ءغير أن أفضلها المترجم المميز ع وم||6م
المفسر/المترجم : 1م6000
في أنظمة )(ال/لا و نا لن تحتاج إلى مترجمات لأنها مدمجة
مع أي نسخة من نسخ )(الالا و *0ا(نا ءكل ما تحتاجه هو محرر
وربما عددها أكثر من التي هي موجودة على نظام 10/10000/5.
وتجدر الإشارة إلى أن جميع المترجمات الحديثة تتوفر على ع]10
أي 01 501/1000 01 06/610000 1016813160 أي بيئة تطوير
متكاملة؛ تساعد المبرمج في التحرير والترجمة والربطه ففي السابق
كانت الترجمة والربط تتم على شكل أوامر أما في 08 قتتم عبر زر
واحد من الكيبورد أو نقرة من الماوسء أما كتابة البرامج فتتم عبر
محررات نصوص مستقلة عن المترجم؛ وهذه الظاهرة موجودة إلى
الآن في أنظمة لالانا و دنا .