دليلك الشامل حول لغة البرمجة سي C

ما هي لغة البرمجة C
ما هي لغة البرمجة C

ما هي لغة البرمجة C

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

لغة البرمجة C هي لغة برمجة مستقلة عن الآلة تستخدم بشكل أساسي لإنشاء العديد من أنواع التطبيقات وأنظمة التشغيل مثل Windows، والبرامج المعقدة الأخرى مثل قاعدة بيانات Oracle و Git و Python interpreter والألعاب وتعتبر أساسا برمجيا في عملية تعلم أي لغة برمجة أخرى. أنظمة التشغيل والبرمجيات التطبيقية المتنوعة لمعماريات الكمبيوتر التي تتراوح من أجهزة الكمبيوتر العملاقة إلى PLCs والأنظمة المضمنة هي أمثلة على هذه التطبيقات.

تاريخ لغة C

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

سميت أول لغة عالية المستوى لطومسون B بعد لغة برمجة نظام BCPL التي بنيت عليها. أعاد طومسون كتابة B لتتناسب بشكل أفضل مع متطلبات العصر الحديث، وأجهزة نظام أفضل بعد أن اشترت Bell Labs نموذج نظام UNIX لشركة Digital Equipment Corporation (DEC) PDP-11. ونتيجة لذلك، تم إنشاء C، خليفة B. بحلول عام 1973، نضجت C لدرجة أنه يمكن استخدامها لإعادة كتابة نظام التشغيل UNIX.

احتاج مبرمجون آخرون إلى وثائق توضح بالتفصيل كيفية استخدام C قبل أن يمكن استخدامه بفعالية خارج Bell Labs. في عام 1978، أصبح كتاب براين كيرنيغان ودينيس ريتشي "لغة البرمجة C"، المعروف أحيانًا باسم K & R أو "الكتاب الأبيض" من قبل عشاق C، المصدر الأساسي لبرمجة C. الطبعة الثانية من K&R، التي نشرت لأول مرة في عام 1988، لا تزال متاحة بشكل شائع حتى كتابة هذه السطور. استنادًا إلى الكتاب، تُعرف النسخة الأولى قبل القياسية من C باسم K&R C.

طوال 1980s، سعى مطورو C إلى بناء معايير للغة من أجل منع الآخرين من تطوير لهجاتهم الخاصة. أصبح معيار المعهد الوطني الأمريكي للمعايير (ANSI) X3.159-1989 المعيار الأمريكي الرسمي لـ C في عام 1989. في عام 1990، أصدرت المنظمة الدولية للتوحيد القياسي (ISO) معيار ISO / IEC 9899:1990. تُشار إلى هذه المعايير، بالإضافة إلى تحديثاتها اللاحقة، في إصدارات C بعد K & R (C89 وC90 وC99).

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

التطبيقات الرئيسية واستخدامات لغة البرمجة سي 

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

تتضمن بعض تطبيقات لغة البرمجة C ما يلي:

نظام التشغيل

تم إنشاء لغة البرمجة C بقصد كتابة أنظمة تشغيل UNIX. وعلاوة على ذلك، فإن وقت تنفيذ البرامج المكتوبة بلغة C يمكن مقارنته بوقت لغة التجميع، مما يجعل C أهم عنصر في تطوير أنظمة تشغيل متعددة. تم استخدامه لكتابة نواة يونكس ، والأدوات المساعدة ل Microsoft Windows وتطبيقات نظام التشغيل ، وجزء كبير من نظام التشغيل Android.

أفلام 3D

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

اللغة المتوسطة

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

لعب دور مهم في تطوير لغة برمجة جديدة

البرنامج المكتوب في C سهل وسريع التنفيذ. ونتيجة لذلك ، أدت لغة البرمجة C إلى إنشاء العديد من اللغات الأخرى. C ++ (المعروف أيضا باسم C مع الفئات) ، C # ، Python ، Java ، JavaScript ، Perl ، PHP ، Verilog ، D ، Limbo ، و Unix C shell هي أمثلة على هذه اللغات. تستخدم كل لغة لغة برمجة C بدرجات متفاوتة. تستخدم بايثون ، على سبيل المثال ، C لتوفير مكتبات قياسية ، في حين أن C ++ و PHP و Perl تحتاج إلى C لبناء الجملة ومعماريات التحكم.

الأنظمة المدمجة

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

خصائص C

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

  • حجم صغير
  • الاستخدام المكثف لمكالمات الوظائف
  • الكتابة الفضفاضة - على عكس PASCAL
  • لغة منظمة
  • برمجة منخفضة المستوى (BitWise) متاحة بسهولة
  • تنفيذ المؤشر - استخدام مكثف للمؤشرات للذاكرة والصفائف والهياكل والوظائف.
  • أصبحت C الآن لغة مهنية مستخدمة على نطاق واسع لأسباب مختلفة.
  • لديها هياكل عالية المستوى.
  • يمكنه التعامل مع الأنشطة منخفضة المستوى.
  • وتنتج برامج فعالة.
  • يمكن تجميعها على مجموعة متنوعة من أجهزة الكمبيوتر.

هل c و c++ متشابهين ؟!

 C و C ++

الآن، بعد أن تعرفنا قليلاً على كلتا اللغتين، دعونا ننظر في أوجه التشابه بينهما. تُعد C++ مجموعة فائقة لـ C، ولذلك فإن لكلتا اللغتين بنية جمل وتركيب رمز وتجميع متشابهة. كما يتم استخدام جميع الكلمات الأساسية والمُشغِّلات في C وC++ بنفس الطريقة.

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

الكلمات الرئيسية التالية شائعة في كلتا اللغتين:

  • goog_748037182auto
  • break
  • case
  • char
  • const
  • continue
  • default
  • do
  • double
  • else
  • enum
  • extern
  • float
  • for
  • goto
  • if
  • int
  • long
  • register
  • return
  • short
  • signed
  • sizeof
  • static
  • struct
  • switch
  • typedef
  • union
  • unsigned
  • void
  • volatile
  • while

الاختلافات بين C و C ++

في هذا القسم ، سنلقي نظرة على أهم الاختلافات بين اللغتين.

تعريف

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

ومع ذلك ، تدعم C ++ نماذج البرمجة الإجرائية والموجهة للكائنات. وهو يركز على استخدام الكائنات والفئات.

في C ++ ، من المستحيل أن يكون لديك حقل مسمى ، لأنه كلمة رئيسية محجوزة.class

معالجة الاستثناءات

يستخدم C وظائف لمعالجة الأخطاء. يحتوي C ++ على كتل محاولة صيد مصممة بشكل جيد تجعل تصحيح الأخطاء أسهل بكثير.

امتدادات الملفات

يتم حفظ جميع برامج C بامتداد. يستخدم C ++ الامتداد..c.cpp

المتغيرات

في C ، تحتاج إلى الإعلان عن جميع المتغيرات في بداية كتلة الدالة. في C ++ ، يمكن الإعلان عن المتغيرات في أي مكان طالما تم الإعلان عنها قبل استخدامها في التعليمة البرمجية.

أنواع البيانات

باستخدام C ، يمكنك تحديد النوع الخاص بك باستخدام ، أو .structunionenum

يدعم C ++ أنواع البيانات المعرفة من قبل المستخدم أيضا. تتضمن أنواع البيانات المعرفة من قبل المستخدم C++.

ما الذي يجب تعلمه أولا؟

تعتمد الإجابة على هذا السؤال على حياتك المهنية وأهدافك البرمجية. قد يبدو أن تعلم C ++ هو الخيار الأفضل لأنه يقدم أكثر من C ، ولكن هذا ليس هو الحال دائما.

يوصي بعض المطورين بالبدء ب C للأسباب التالية:

التمارين الأساسية في C هي نفسها في C++. المؤشرات في C عرضة للخطأ، ولكن يمكنك تجنبها في C++ لفترة. تنفيذ السلاسل في C يكون صعبًا، ومع ذلك، إذا كنت مهتمًا بالبرمجة على مستوى الأنظمة، فقد تفضل تعلم C أولًا لبناء أساس متين. إذا كانت لديك خبرة مسبقة مع C#، فإن تعلم C سيكون مألوفًا لك.

بمجرد أن تكون على دراية بالبرمجة الإجرائية في C ، يمكنك بعد ذلك الانتقال إلى لغات أخرى مثل C ++ أو Java.

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

وبالمثل ، يوصى بتعلم C ++ أولا للمبرمجين الذين لديهم بالفعل بعض المعرفة ب Java.

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

هناك عدد كبير من لغات البرمجة للاختيار من بينها ، بدءا من المستوى العالي بشكل لا يصدق (مثل Visual Basic) إلى قوة التجميع منخفضة المستوى ، ومجموعة واسعة من الاحتمالات المتخصصة بينهما (Perl و Ruby و Python هي خيارات جيدة للعديد من المهام). أصبحت Java أيضا لغة برمجة شائعة لمهام معينة ، ويرجع ذلك جزئيا إلى واجهة برمجة التطبيقات الواسعة الخاصة بها وجزئيا بسبب ميزات أمان الجهاز الافتراضي.

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

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

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

يحتوي C على 32 كلمة رئيسية ومجموعة متنوعة من أنواع البيانات ومجموعة من الأنظمة التي تستخدم الوظائف التي تجعل البرمجة بسيطة.

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

هناك عدد من المترجمين في السوق التي يمكن استخدامها لتشغيل البرامج المكتوبة بهذه اللغة.

كيف تعمل لغة البرمجة C؟

C هي لغة برمجة مترجمة. هذا يعني أنه سيتعين علينا تحويل ملفاتنا المصدر (ملفات نصية قابلة للقراءة من قبل الإنسان) إلى ملفات كائنات (ملفات نصية قابلة للقراءة آليا لوحدات التحكم الدقيقة وأجهزة الكمبيوتر وأجهزة الكمبيوتر المحمولة).

التحرير

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

يمكن استخدام محرر نصوص عادي (كالمفكرة) أو محرر IDE متكامل. يجب أن تتبع شفرة المصدر قواعد بناء جمل لغة البرمجة C. بعد إتمام كتابة الملف المصدر، يُحفظ كملف.

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

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

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

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

على الرغم من أن ملف الكائن مكتمل، إلا أن بعض المراجع غير المحددة ما زالت مفقودة. هذه المراجع هي أجزاء من التعليمات البرمجية يجب استيرادها من مواقع أخرى. في سيناريونا، الدالة printf() هي المرجع غير المحدد. نحن نعلم من أين نحصل على التعليمات البرمجية لهذه الوظيفة لأن توجيهات المترجم البرمجي (#include <stdio.h>) تشير إليها.

يُعتبر stdio.h ملف رأس (بامتداد *.h) يحتوي على إعلان وظيفة printf()، بالإضافة إلى أشياء أخرى. نُحدد مكان الحصول على تعريف وظيفة printf() من خلال تضمين هذا الملف.

ربط

في هذه المرحلة، يجب أن نجمع كل الملفات اللازمة لطلبنا. بالنسبة للوظائف الخارجية، نحتاج إلى ملفات الكائنات وكذلك ملفات المكتبة الثابتة. الوظائف الخارجية المستخدمة في الملف المصدر تُعرَّف في ملفات المكتبة الثابتة (*.lib). رمز الجهاز لدالة printf() سيُخزَّن في ملف المكتبة الثابتة في سيناريونا.

الرابط هو الأداة التي تقوم بعملية الربط. هو يفحص جميع ملفات الكائنات بحثًا عن المراجع غير المحددة ويستبدلها بالرمز من ملفات المكتبة. في نهاية عملية الربط، سيكون لدينا ملف تنفيذي (*.exe لتطبيقات ويندوز، *.hex لوحدات التحكم المصغرة).

تحميل

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

الخاتمة ❤️

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

بكل حب مع فراس سويد ❤️

Feras Swed
بواسطة : Feras Swed
متخصص في تطوير البرمجيات مع خلفية مهنية راسخة، متمرس في إيجاد حلول تقنية مبتكرة. أسهمت بفاعلية في تبسيط المفاهيم التكنولوجية المعقدة من خلال منصتي الإلكترونية، Swed For You، موفرًا موارد قيمة لتعزيز الوعي والمهارات التقنية للعامة. أحرص دائمًا على الالتزام بأعلى معايير الاحترافية والابتكار، مع التركيز على تطوير مسارات جديدة لاستخدام التكنولوجيا بطرق تخدم تقدم المجتمع وتحسين جودة الحياة.
تعليقات