ما هي تفاصيل C Programming Language?

⚡ ملخص ذكي

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

  • 🧱 تعلم الأساسيات أولاً: أتقن كتابة العناوين الرئيسية، والدالة الرئيسية، ودالة printf، والأقواس قبل الانتقال إلى المؤشرات، والهياكل، والذاكرة الديناميكية.
  • 🏛️ اعرف التاريخ: ALGOL → BCPL → B → C هو التسلسل؛ تم الانتهاء من معيار ANSI C في عام 1989 وتم التصديق عليه من قبل ISO في عام 1990.
  • ⚙️ فهم التجميع: يقوم المترجم بإصدار ملفات الكائنات ويقوم الرابط بدمجها في ملف تنفيذي واحد يعمل على الجهاز المستهدف.
  • 🌍 قم بتطبيقه على نطاق واسع: تُشغّل لغة C أنظمة التشغيل وقواعد البيانات والمتصفحات والبرامج الثابتة المدمجة وأجهزة إنترنت الأشياء وسلاسل أدوات الترجمة.
  • 🤖 قم بربط C بأدوات الذكاء الاصطناعي: تقوم المساعدات المدعومة بالذكاء الاصطناعي بشرح أخطاء المؤشرات، واقتراح وظائف أكثر أمانًا، وتحويل الطلبات المكتوبة باللغة الإنجليزية البسيطة إلى مقاطع برمجية قابلة للترجمة بلغة C.

C Programming Language

ما هي تفاصيل C Programming Language?

C هي لغة برمجة عامة الأغراض، شائعة الاستخدام للغاية، وبسيطة، ومرنة. وهي لغة منظمة، مستقلة عن الآلة، تُستخدم لكتابة مجموعة واسعة من التطبيقات، بدءًا من أنظمة التشغيل مثل... Windows ونظام لينكس للبرامج المعقدة مثل Oracle قاعدة البيانات، وجيت، و Python مترجم.

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

C Programming Language

معهد مهندسي الكهرباء والإلكترونيات (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 في أماكن لا يراها معظم المستخدمين، لكن تأثيرها هائل. تشمل المجالات الشائعة ما يلي:

  1. الأنظمة المدمجة والبرامج الثابتة لوحدات التحكم الدقيقة.
  2. تطبيقات وبرامج تشغيل على مستوى النظام.
  3. تطبيقات سطح المكتب، بما في ذلك العديد من منتجات أدوبي.
  4. متصفحات الويب وملحقاتها — Googleيحتوي الكروم على كمية كبيرة من الكربون/C++ رمز.
  5. قواعد البيانات — MySQL تُعد واحدة من أكثر قواعد البيانات شيوعًا المكتوبة بلغة C.
  6. Operaأنظمة تينغ — أبل macOS (داروين)، Microsoft Windowsتم بناء كل من لينكس، وسيمبيان تاريخياً، باستخدام لغة C.
  7. المترجمات، وبيئات تشغيل اللغات، والمفسرات.
  8. أجهزة إنترنت الأشياء (IoT) وبرامج التشغيل الآلي للمنزل.

لماذا نتعلم لغة C؟

تُعتبر لغة C أساسًا للعديد من لغات البرمجة، لذا فإن تعلمها يُسهّل تعلم أي لغة لاحقة. فهي تُقدّم نفس أنواع البيانات، والمعاملات، وعبارات التحكم التي ستراها في C++, Java, Python، و اذهب.

أهم الأسباب للاستثمار في شركة C هي:

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

كيفية C Programming Language يعمل

لغة C هي لغة مُصرّفة. يقرأ المُصرّف الشيفرة المصدرية ويُنتج ملفًا كائنيًا يفهمه الجهاز. ثم يقوم الرابط بدمج ملف كائن واحد أو أكثر (وأي مكتبات مُشار إليها) في ملف تنفيذي واحد يُمكن تشغيله على النظام المُستهدف. يُوضح الرسم البياني أدناه مسار التنفيذ الكامل.

كيفية C Programming Language يعمل

تتوفر العديد من برامج الترجمة البرمجية - سواء عبر الإنترنت أو دون اتصال بالإنترنت - وتتبع جميعها نفس مسار المعالجة. ومن الخيارات الشائعة ما يلي:

  • الخليج — مجموعة مترجمات 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 قابل للنقل ما لم يكن لديك سبب مقنع لاستخدام ملحقات المترجم.

الأسئلة الشائعة

ابتكر دينيس ريتشي لغة C في عام 1972 في مختبرات بيل. وقد بنى على أفكار من لغات ALGOL وBCPL وB، واستخدم لغة C لإعادة كتابة جزء كبير من نظام التشغيل UNIX في شركة AT&T.

لغة C هي لغة إجرائية تركز على الدوال والبرمجة الهيكلية. C++ يضيف هذا البرنامج البرمجة الكائنية، والفئات، والقوالب، ومكتبة القوالب القياسية مع الحفاظ علىping معظم قواعد لغة C.

غالباً ما يُطلق على لغة C اسم لغة متوسطة المستوى. فهي عالية المستوى بما يكفي لتكون قابلة للقراءة والنقل، وفي الوقت نفسه منخفضة المستوى بما يكفي لمعالجة عناوين الذاكرة وسجلات الأجهزة مباشرةً من خلال المؤشرات.

تحدد لغة ANSI C 32 كلمة محجوزة. Later أضافت معايير مثل C99 و C11 بعض المعايير الأخرى، بما في ذلك inline, _Boolو _Static_assertلكن النواة تظل صغيرة ومتسقة.

ANSI C هي نسخة من لغة C تم توحيدها من قبل المعهد الوطني الأمريكي للمعايير في عام 1989 وتم التصديق عليها من قبل ISO في عام 1990. وهي تحدد بناء جملة قابل للنقل ومكتبة قياسية وسلوك المترجم.

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

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

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

تلخيص هذه التدوينة بـ: