ما هي تفاصيل C Programming Language?
⚡ ملخص ذكي
C Programming Language هي لغة برمجة عامة الأغراض ومنظمة، ابتكرها دينيس ريتشي في مختبرات بيل عام 1972. وهي مستقلة عن الآلة، وسريعة، وتشكل الأساس لبرامج النظام، وأنظمة التشغيل، والبرامج الثابتة المدمجة، واللغات الحديثة مثل C++, Javaو Python.

ما هي تفاصيل C Programming Language?
C هي لغة برمجة عامة الأغراض، شائعة الاستخدام للغاية، وبسيطة، ومرنة. وهي لغة منظمة، مستقلة عن الآلة، تُستخدم لكتابة مجموعة واسعة من التطبيقات، بدءًا من أنظمة التشغيل مثل... Windows ونظام لينكس للبرامج المعقدة مثل Oracle قاعدة البيانات، وجيت، و Python مترجم.
تُعتبر لغة C أساس البرمجة الحديثة. بمجرد إتقانها، يصبح تعلم لغات البرمجة الأخرى أسهل بكثير، لأن معظمها يستعير مفاهيمها. كما أن الفهم الأساسي لذاكرة الحاسوب يُساعد أيضاً، لأن الذاكرة عنصر أساسي في جميع برامج C تقريباً.
معهد مهندسي الكهرباء والإلكترونيات (IEEE) - أفضل عشر لغات برمجة في عام 2018.
يشرح هذا الدليل أساسيات لغة البرمجة C: تاريخها، وأوامرها الأساسية، وتطبيقاتها الرئيسية، ولماذا لا تزال تستحق التعلم، وكيف يعمل نموذج تجميعها.
تاريخ لغة C
لم تظهر لغة C بمعزل عن غيرها، بل نشأت من سلسلة من لغات الأنظمة السابقة:
- ALGOL (1960): يُطلق عليه غالبًا لقب أبو لغات البرمجة. أدخلت لغة ALGOL البرمجة الهيكلية إلى مجتمع المطورين الأوسع، واعتُمدت على نطاق واسع في الجامعات الأوروبية.
- BCPL (1967): لغة البرمجة الأساسية المدمجة، التي صممها مارتن ريتشاردز لكتابة برامج النظام.
- ب (1970): تم تقديمه بواسطة كين تومسون في مختبرات AT&T Bell. ورثت لغة B العديد من ميزات BCPL واستُخدمت لكتابة أدوات UNIX المبكرة.
In 1972ابتكر دينيس ريتشي C في مختبرات بيل. استخلصت لغة C أفضل الأفكار من لغات ALGOL وBCPL وB، وأضافت مفاهيم جديدة جعلتها أكثر تعبيرًا من أي من سابقاتها.
ترتبط لغة C ارتباطًا وثيقًا بنظام UNIX، حيث أُعيدت كتابة جزء كبير من نظام التشغيل UNIX نفسه بلغة C. ومع انتشار لغة C خارج مختبرات Bell، ظهرت مُترجمات تجارية للعديد من المنصات، وتطورت اللغة إلى لهجات متعددة غير متوافقة. ولتحقيق التناسق، نشر المعهد الوطني الأمريكي للمعايير (ANSI) معيارًا للغة C. 1989وقد صادقت عليه المنظمة الدولية للتوحيد القياسي (ISO) في 1990يُطلق على النسخة القياسية على نطاق واسع اسم ANSI ج.
تاريخ ج.
لغات مثل C++ و Java تم تطويرها مباشرة من لغة C، وتتبنى العديد من اللغات الحديثة قواعدها النحوية واتفاقياتها. ولذلك، تشكل لغة C الأساس لجزء كبير من برامج اليوم.
أوامر C الأساسية
تشكل الأوامر التالية الهيكل الأساسي لكل برنامج مكتوب بلغة C تقريباً.
| أوامر لغة C الأساسية | تفسير |
|---|---|
#include <stdio.h> |
يتضمن ملف رأس الإدخال والإخراج القياسي من مكتبة C قبل التجميع. |
int main() |
الوظيفة الرئيسية - يبدأ تنفيذ كل برنامج مكتوب بلغة C من هنا. |
{ |
يمثل بداية كتلة الوظيفة الرئيسية. |
/* some_comments */ |
ملاحظة: يتجاهل المترجم كل شيء بين /* و */. |
printf("Hello, World!"); |
يعرض المخرجات على الشاشة. |
getch(); |
يقرأ حرفًا واحدًا من لوحة المفاتيح (غير قياسي، ويستخدم بشكل أساسي مع Turbo C). |
return 0; |
ينهي الدالة الرئيسية ويعيد القيمة 0 إلى نظام التشغيل. |
} |
يمثل هذا نهاية كتلة الوظيفة الرئيسية. |
أين تُستخدم لغة C؟ التطبيقات الرئيسية
تُستخدم لغة C في أماكن لا يراها معظم المستخدمين، لكن تأثيرها هائل. تشمل المجالات الشائعة ما يلي:
- الأنظمة المدمجة والبرامج الثابتة لوحدات التحكم الدقيقة.
- تطبيقات وبرامج تشغيل على مستوى النظام.
- تطبيقات سطح المكتب، بما في ذلك العديد من منتجات أدوبي.
- متصفحات الويب وملحقاتها — Googleيحتوي الكروم على كمية كبيرة من الكربون/C++ رمز.
- قواعد البيانات — MySQL تُعد واحدة من أكثر قواعد البيانات شيوعًا المكتوبة بلغة C.
- Operaأنظمة تينغ — أبل macOS (داروين)، Microsoft Windowsتم بناء كل من لينكس، وسيمبيان تاريخياً، باستخدام لغة C.
- المترجمات، وبيئات تشغيل اللغات، والمفسرات.
- أجهزة إنترنت الأشياء (IoT) وبرامج التشغيل الآلي للمنزل.
لماذا نتعلم لغة C؟
تُعتبر لغة C أساسًا للعديد من لغات البرمجة، لذا فإن تعلمها يُسهّل تعلم أي لغة لاحقة. فهي تُقدّم نفس أنواع البيانات، والمعاملات، وعبارات التحكم التي ستراها في C++, Java, Python، و اذهب.
أهم الأسباب للاستثمار في شركة C هي:
- سرعة: تُترجم لغة C إلى كود أصلي وتمنحك تحكمًا دقيقًا في الذاكرة.
- قابلية التنقل: يمكن إعادة تجميع البرامج المكتوبة بلغة C وتشغيلها على جميع المنصات تقريبًا.
- بناء: يتم تقسيم برنامج C إلى وحدات، مما يسهل اختباره وصيانته وتصحيح أخطائه.
- قلب مضغوط: تحتوي لغة C على 32 كلمة مفتاحية فقط، وعدة أنواع من البيانات، ومكتبة مدمجة قوية.
- التمدد: يمكنك إضافة وظائفك الخاصة إلى مكتبة واستدعائها كما لو كانت مدمجة.
- القيمة المهنية: لا تزال الأدوار المدمجة، وأدوار النواة، والأدوار عالية الأداء تتطلب مهارات قوية في لغة C.
كيفية C Programming Language يعمل
لغة C هي لغة مُصرّفة. يقرأ المُصرّف الشيفرة المصدرية ويُنتج ملفًا كائنيًا يفهمه الجهاز. ثم يقوم الرابط بدمج ملف كائن واحد أو أكثر (وأي مكتبات مُشار إليها) في ملف تنفيذي واحد يُمكن تشغيله على النظام المُستهدف. يُوضح الرسم البياني أدناه مسار التنفيذ الكامل.
تتوفر العديد من برامج الترجمة البرمجية - سواء عبر الإنترنت أو دون اتصال بالإنترنت - وتتبع جميعها نفس مسار المعالجة. ومن الخيارات الشائعة ما يلي:
- الخليج — مجموعة مترجمات GNU، المعيار الفعلي على نظام Linux والعديد من الأنظمة المدمجة.
- قعقع — الواجهة الأمامية القائمة على LLVM، المستخدمة افتراضيًا في macOS.
- مينغو — جنو البسيط لـ Windows، مما يجلب مجلس التعاون الخليجي إلى Windows المستخدمين.
- مترجم لغة C المحمول (pcc).
- توربو ج — المترجم الكلاسيكي الذي لا يزال يستخدم في العديد من المقررات الأكاديمية.
مزايا وعيوب ج
يلخص الجدول أدناه المفاضلات التي يجب عليك مراعاتها قبل اختيار الخيار ج لمشروع جديد.
| المزايا | عيوب |
|---|---|
| وصول سريع ومنخفض المستوى إلى الذاكرة والأجهزة. | إدارة الذاكرة اليدوية تؤدي إلى ظهور أخطاء مثل تسريبات الذاكرة وتجاوزات سعة المخزن المؤقت. |
| قابل للتنقل عبر مختلف البنى وأنظمة التشغيل. | لا يوجد توجيه كائني مدمج أو أنواع عامة. |
| صيغة مختصرة تحتوي على 32 كلمة مفتاحية فقط. | لا توجد شبكة أمان مدمجة - يمكن أن يتعطل السلوك غير المحدد بصمت. |
| نظام بيئي ضخم من المترجمات، وأدوات تصحيح الأخطاء، والمكتبات. | لغة برمجة مطولة مقارنةً بلغات البرمجة النصية. |
| Foundation بالنسبة للغات الحديثة، تنتقل المهارات بسهولة. | انخفاض الإنتاجية في المهام التي تكفي فيها اللغات المُدارة. |
أفضل الممارسات عند كتابة C
تساعد العادات التالية في الحفاظ على قواعد بيانات كود C قابلة للقراءة والنقل وخالية من أخطاء الذاكرة الشائعة:
- تفعيل التحذيرات: جمع مع
-Wall -Wextra -Werrorلذا فإن بعض المشاكل الدقيقة تفشل عملية البناء. - تهيئة المتغيرات: لا تقرأ أبدًا من متغير لم يتم تعيين قيمة له.
- تحقق من القيم المُعادة:
mallocجميع عمليات إدخال/إخراج الملفات واستدعاءات النظام تشير إلى الأخطاء عبر رموز الإرجاع. - كل زوج
mallocمعfree: استخدم التحليل الثابت أو أداة AddressSanitizer لاكتشاف التسريبات. - يفضل استخدام دوال السلاسل النصية الأكثر أمانًا: تستخدم
snprintfبدلا منsprintfوstrncpyبعناية. - استخدم واقيات رأس الصفحة: قم بحماية كل رأسية باستخدام
#ifndef / #define / #endifحارس. - اعتمد على المعيار: اكتب كود ANSI/C99/C11 قابل للنقل ما لم يكن لديك سبب مقنع لاستخدام ملحقات المترجم.




