- التاريخ
- تصميم و تنفيذ
- الإصدار الأولي
- سي 2.0
- نسخة موحدة
- التحديثات الأخيرة
- ميزات C ++
- لغة شعبية
- وجوه المنحى
- إجرائية
- برمجة منظمة
- إدارة الذاكرة
- المؤشرات
- لغة مجمعة
- أنواع البيانات في C ++
- - ابتدائي
- كثافة العمليات
- تطفو
- شار
- مزدوج
- فارغة (خالية)
- منطقي
- - ثانوي
- ترتيبات
- المؤشرات
- المميزات
- - تعريف المستخدم
- الهياكل
- اتحاد
- ما هو C ++؟ التطبيقات
- التطبيقات
- أنظمة التشغيل
- المجمعين
- ألعاب
- متصفحات الانترنت
- انترنت الأشياء
- السحابة / الأنظمة الموزعة
- الوصول إلى قواعد البيانات
- أمثلة
- مكتبات
- مميزات
- سرعة
- قريب من الأجهزة
- كفاءة
- حرية اختيار أساليب البرمجة
- القدرة على حل المشاكل المعقدة
- القدرة على اكتشاف الأخطاء قبل التنفيذ
- سلبيات
- استخدام المؤشرات
- قضايا أمنية
- لا يوجد جامع قمامة
- عدم وجود موضوع
- البرامج المترجمة
- يمكن أن تكون معقدة
- المراجع
C ++ هي نسخة محسنة وممتدة من لغة البرمجة C ، والتي تم تطويرها بواسطة Stroustrup في عام 1979 كجزء من مشروع الدكتوراه الخاص به. صمم Stroustrup ما أسماه "C مع الفصول" ، والذي سمي فيما بعد C ++ ، لأنه يعتقد أن لغات البرمجة الحالية لها حدود وليست الأفضل للمشاريع الكبيرة.
لهذا السبب استخدم لغة C لتطوير لغة البرمجة التي كان يبحث عنها ، لأن C كانت لغة فعالة وسريعة التشغيل.
المصدر: pixabay.com
C ++ هي لغة برمجة ذات أغراض عامة مصقولة وقوية. هذه اللغة المجمعة ذات الشكل الحر هي الأنسب لمبرمجي المستوى المتوسط.
ومع ذلك ، سيجد أولئك الذين يرغبون في بدء البرمجة باستخدام C ++ أنه يمكنهم بسرعة تعلم مفاهيم البرمجة التي ستأخذهم شوطًا طويلاً في حياتهم المهنية.
إنه متوافق مع البرمجة الشيئية ، مع أخذ جميع خصائصه. تجعل هذه المفاهيم لغة C ++ مختلفة وتستخدم بشكل أساسي لتطوير التطبيقات بطريقة سهلة ومفهومة.
التاريخ
تصميم و تنفيذ
تم تصميم وتنفيذ C ++ في عام 1980 من قبل Bjarne Stroustrup في AT&T Bell Labs ، حيث دمج بشكل جميل مفاهيم البرمجة الإجرائية والموجهة للكائنات.
في لغة C ، يتم استخدام عامل التشغيل ++ لزيادة متغير ، مما يوضح فكرة Stroustrup بأن C ++ ستكون الجيل التالي من لغة C.
الإصدار الأولي
تم إصدار C ++ في عام 1985 لأول مرة في السوق. في عام 1986 ، نشر Stroustrup كتابه الشهير The C ++ Programming Language ، وأصبح الدليل المرجعي للغة.
سي 2.0
كان أهم إصدار من C ++ هو C 2.0 في عام 1989 ، وتم توثيقه بواسطة Ellis و Stroustrup في الدليل المرجعي C ++ Annotated. كانت لغة موضوعية تمامًا.
نسخة موحدة
تم إصدار أول إصدار قياسي ، C ++ 98 ، في عام 1998. تم تطوير هذا المعيار الدولي لـ C ++ بواسطة المعهد الوطني الأمريكي للمعايير (ANSI) ومنظمة المعايير الدولية (ISO).
في عام 2003 ، تم نشر معيار C ++ 03 التالي بهدف تصحيح الأخطاء المحددة في C ++ 98 والتأكد من أن اللغة لديها قابلية أكبر للنقل والاتساق.
التحديثات الأخيرة
جاء التحديث الرئيسي التالي للغة في عام 2011 ، وكان يسمى C ++ 11. تمت إضافة العديد من الميزات لتحسين أداء وقت التشغيل.
ثم تم إصدار C ++ 14 ، حيث تم إجراء بعض التحسينات وإصلاح أخطاء C ++ 11. الإصدار التالي الذي تم إصداره في عام 2017 كان C ++ 17 ، والذي يحتوي على العديد من الميزات الجديدة ومكتبة قياسية أكثر شمولاً.
ميزات C ++
لغة شعبية
يستخدم المطورون C ++ على نطاق واسع ، وخاصة في التطبيقات. يحتوي على جميع الأجزاء المهمة ، مثل اللغة الأساسية التي توفر جميع كتل التطوير المطلوبة ، مثل المتغيرات وأنواع البيانات والحرفية ، إلخ.
إنها رابع أكثر لغات البرمجة شيوعًا ، وفقًا لمؤشر مجتمع البرمجة TIOBE.
استخدامات C ++ تجعلها اللغة الأكثر ملاءمة ، نظرًا لخصائصها. إنها أول لغة بدء تشغيل لأي مطور مهتم بالعمل مع لغات البرمجة. من السهل تعلمها لأنها لغة قائمة على المفاهيم البحتة.
تركيبها بسيط للغاية ، مما يسهل الكتابة ، ويمكن تكرار الأخطاء بسهولة. قبل استخدام أي لغة أخرى ، يفضل المبرمجون تعلم C ++ أولاً ثم استخدام الآخرين.
ومع ذلك ، يحاول معظم المطورين التمسك بـ C ++ نظرًا لتنوع استخدامها وتوافقها مع العديد من الأنظمة الأساسية والبرامج.
وجوه المنحى
الترقية الرئيسية من C إلى C ++ هي البرمجة الموجهة للكائنات. هذا يعني أن التركيز يكون على "الكائنات" والتعامل مع هذه الكائنات.
يتبع مفاهيم تعدد الأشكال ، والوراثة ، والتغليف والتجريد ، وتسهيل التطوير والصيانة.
إجرائية
يدعم C ++ مفهوم الإجراءات والروتينات الفرعية ، التي تحيط بأجزاء من التعليمات البرمجية في كتل قابلة لإعادة الاستخدام ، والتي يمكن "استدعاؤها" لأداء المهام الفردية.
تُعرف الإجراءات والروتينات الفرعية بالوظائف في C ++. يمكن أن تأخذ الدالة صفرًا أو أكثر من المعلمات ، وتعيد صفرًا أو قيمة.
برمجة منظمة
كود C ++ معياري ، بدعم من الوظائف والفئات والكائنات ، الوحدات مناسبة بحرية.
تتشابه عبارات التحكم في التدفق في C ++ مع تلك الموجودة في العديد من لغات البرمجة المنظمة الأخرى. هذه هي if-else لتنفيذ منطق القرار ، و for و while و do-while لتنفيذ التكرارات أو الحلقات.
إدارة الذاكرة
يدعم C ++ تخصيص الذاكرة الديناميكية. وبالتالي ، يمكنك تحرير الذاكرة المخصصة في أي وقت.
المؤشرات
إنها متغيرات تخزن عنوان متغير آخر. يشير المؤشر إلى موقع ذاكرة المتغير. يدعم C ++ المؤشرات لتوفير حلول للعديد من المشكلات التي تتطلب الوصول إلى موقع الذاكرة.
لغة مجمعة
قبل أن يتم تنفيذه ، يجب ترجمة برنامج C ++ إلى الإرشادات الأصلية للجهاز الهدف بواسطة برنامج يسمى مترجم. بدون تجميع ، لا يمكن تشغيل أي برنامج C ++. يقوم المترجم بترجمة برنامج C ++ بحيث يمكن تشغيله لاحقًا.
أنواع البيانات في C ++
- ابتدائي
كثافة العمليات
يتم استخدامه لتخزين الأعداد الصحيحة. تعتمد الذاكرة التي يشغلها على المترجم (32 أو 64 بت). تشغل 4 بايت من الذاكرة عند العمل مع مترجم 32 بت.
تطفو
يتم استخدامه لتخزين الكسور حتى 7 أرقام عشرية. يُعرف بنوع النقطة العائمة ذات الدقة الواحدة. تشغل 4 بايت من الذاكرة.
شار
يتم استخدامه لتخزين مجموعة من جميع الأحرف. يمكن أن يتضمن أحرف الأبجدية والأرقام وكذلك الأحرف الخاصة. إنها تشغل 1 بايت من الذاكرة ، كونها أصغر وحدة قابلة للعنونة في الجهاز.
مزدوج
تستخدم لتخزين الكسور حتى 15-16 رقمًا عشريًا. يُعرف عمومًا بنوع النقطة العائمة مزدوج الدقة.
فارغة (خالية)
يشير إلى قيمة صفر أو لا عودة. تستخدم بشكل عام لتعيين قيمة فارغة عند التصريح عن دالة.
منطقي
يشير نوع البيانات هذا إلى قيمة منطقية أو منطقية. يمكن أن تأخذ قيمة صواب أو خطأ.
- ثانوي
ترتيبات
إنها مجموعة من البيانات التي لها نفس نوع البيانات ، والتي يتم الوصول إليها باسم شائع.
المؤشرات
وهي في الأساس متغيرات تُستخدم لتخزين عنوان الذاكرة لمتغير آخر.
المميزات
إنها مجموعة من الجمل التي تؤدي مهمة محددة. الوظائف هي مكتبات مدمجة أو محددة من قبل المستخدم.
- تعريف المستخدم
الهياكل
إنه نوع من البيانات يمكن من خلاله تكوين مجموعة من أنواع البيانات المختلفة والوصول إليها من خلال كائن.
اتحاد
يوفر القدرة على تخزين أنواع مختلفة من البيانات في نفس موقع الذاكرة.
ما هو C ++؟ التطبيقات
التطبيقات
تم تطوير العديد من التطبيقات على أنظمة Adobe بلغة C ++ ، مثل Illustrator و Photoshop و Adobe Premiere و Image Ready.
أنظمة التشغيل
يتم استخدام C ++ في جميع أنظمة التشغيل الرئيسية ، مثل Linux و Windows و macOS ، حيث إنها لغة برمجة منخفضة المستوى.
المجمعين
تتم كتابة معظم المجمعين بلغة C ++. أيضًا المجمعات التي تُستخدم لتجميع لغات أخرى ، مثل C # و Java وما إلى ذلك.
ألعاب
إنه يعمل على التخلص من تعقيد الألعاب ثلاثية الأبعاد ، مما يساعد على تحسين الموارد. بالإضافة إلى ذلك ، فهو متوافق مع خيار تعدد اللاعبين في الشبكات.
متصفحات الانترنت
يسمح بالتنفيذ السريع والتمثيل للرسومات ، وهو أمر بالغ الأهمية للمستخدمين الحاليين ، الذين يطلبون محتوى يمكن أن يظهر بسرعة في متصفحات الويب. تم استخدام C ++ لجعل متصفحات الإنترنت Google Chrome و Mozilla Firefox.
انترنت الأشياء
تستخدم العديد من منتجات إنترنت الأشياء ، مثل الساعات الذكية والسيارات والغسالات وأجهزة التوجيه والمفاتيح ، C ++ لأنها تتطلب رمزًا قريبًا من الأجهزة قدر الإمكان.
السحابة / الأنظمة الموزعة
يتم استخدامه في السحابة في أنظمة التخزين والأنظمة الموزعة ، حيث تحتاج أنظمة الملفات القابلة للتطوير إلى العمل بشكل وثيق مع الأجهزة والتوافق مع الأجهزة المختلفة أمر بالغ الأهمية أيضًا.
الوصول إلى قواعد البيانات
يتم استخدامه لتطوير برامج قاعدة بيانات مفتوحة المصدر. برنامج إدارة قواعد البيانات الشائع جدًا المستخدم في المؤسسات ، MySQL ، مكتوب بلغة C ++ بفضل الفوائد التي يقدمها.
هناك تطبيقات أخرى تعتمد على الوصول إلى برامج قواعد البيانات ، وهي Wikipedia و Yahoo و YouTube و Quora وما إلى ذلك.
أمثلة
يستقبل هذا البرنامج عددًا صحيحًا موجبًا من المستخدم ويخزنه في المتغير n. ثم يتم تنفيذ حلقة for ، والتي تتحقق مما إذا كان الرقم المدخل قابلاً للقسمة تمامًا على io أم لا.
تبدأ الحلقة for بقيمة أولية لـ i تساوي 2 ، مما يزيد من قيمة i مع كل تكرار. إذا كان الرقم الذي أدخله المستخدم قابلاً للقسمة تمامًا على i ، فسيتم تعيين isPrime على خطأ ولن يكون الرقم عددًا أوليًا.
ومع ذلك ، إذا لم يكن الرقم قابلاً للقسمة تمامًا على i حتى يصبح شرط الاختبار i <= n / 2 صحيحًا ، فهذا يعني أنه لا يمكن القسمة إلا على 1 ونفس الرقم. إذن فالعدد المعطى هو عدد أولي.
مكتبات
يمكن للمطورين الوصول إلى العديد من الوظائف المضمنة التي توفرها لغة C ++. هذا يوفر الوقت ويسرع التنمية. بعض ملفات رأس C ++ مع الوظائف المتوفرة هي:
- iomanip: يحتوي على معالجات التدفق التي تقوم بتنسيق تدفقات البيانات.
- iostream: يحتوي على وظائف الإدخال والإخراج القياسية.
- cstdlib: يحتوي على وظيفة تحويل الأرقام إلى نص والعكس صحيح ،
- cmath: يحتوي على وظائف مكتبة الرياضيات ، وتخصيص الذاكرة ، والأرقام العشوائية ، والعديد من وظائف المرافق الأخرى.
- fstream: يحتوي على وظائف تقوم بإدخال وإخراج الملفات على القرص.
- ctime: يحتوي على وظيفة للتعامل مع الوقت والتاريخ.
- الذاكرة: تحتوي على الفئات والوظائف التي تستخدمها مكتبة C ++ القياسية لتخصيص الذاكرة.
مميزات
سرعة
نظرًا لأن C ++ هي نسخة موسعة من C ، وهي لغة برمجة منخفضة المستوى ، فهي واحدة من أسرع اللغات المتاحة. هذا يجعلها مفيدة في تلك المجالات التي يكون فيها الأداء المطلوب أمرًا بالغ الأهمية.
قريب من الأجهزة
C ++ هي إحدى لغات البرمجة الأقرب إلى الأجهزة. هذا مفيد للغاية في تلك المساحات حيث يجب أن يكون للبرنامج علاقة وثيقة مع الأجهزة من أجل أداء دعم منخفض المستوى بكفاءة.
كفاءة
يحتوي C ++ على مكتبة قياسية من القوالب التي يمكن استخدامها على نطاق واسع عند الترميز. توفر هذه المكتبات خوارزميات فعالة تسمح للمبرمج بتوفير الوقت والجهد ، الأمر الذي قد يضيع لولا ذلك في إنشاء التعليمات البرمجية.
حرية اختيار أساليب البرمجة
يدعم C ++ حوالي سبعة أنماط مختلفة من الترميز ، مما يجعلها لغة برمجة متعددة النماذج. وبالتالي ، يمكنك تحديد نمط يناسب حالة استخدام معينة ، دون الحاجة إلى استخدام الكائنات.
القدرة على حل المشاكل المعقدة
يمكن لـ C ++ حل المشكلات المعقدة بشكل حدسي عن طريق إنشاء الكائنات. بالإضافة إلى ذلك ، تتيح لك وظائف C ++ تقسيم التعليمات البرمجية الخاصة بك إلى كتل تعليمات برمجية واضحة وسهلة الفهم وسهلة الاختبار والتعديل.
القدرة على اكتشاف الأخطاء قبل التنفيذ
يحتوي C ++ على نوع ثابت ، مما يعني أن المترجم لا يضع أي افتراضات حول ما يكتبه المبرمج. الفائدة هي أن المترجم يمكنه اكتشاف الأخطاء والإخفاقات قبل التنفيذ ، مما يوفر الوقت على المدى الطويل.
سلبيات
استخدام المؤشرات
تعتبر المؤشرات مفهومًا صعب الفهم نسبيًا وتستهلك أيضًا قدرًا كبيرًا من الذاكرة. يمكن أن يؤدي إساءة استخدام المؤشر إلى توقف النظام أو التصرف بشكل غير طبيعي.
المشكلة الرئيسية هي عندما تكون نقاط البيانات متشابهة من نقطتي بداية مختلفتين ، مما يسبب مشكلة كبيرة ، ويولد مشاكل مربكة داخل التشفير.
قضايا أمنية
على الرغم من أن البرمجة الموجهة للكائنات توفر قدرًا كبيرًا من الأمان للبيانات التي يتم التعامل معها ، لا تزال هناك بعض المشكلات الأمنية بسبب توفر وظائف الأصدقاء والمتغيرات والمؤشرات العالمية.
لا يوجد جامع قمامة
يمنح C ++ المستخدم تحكمًا كاملاً في إدارة ذاكرة الكمبيوتر. يفتقر إلى وظيفة جامع البيانات المهملة لتصفية البيانات غير الضرورية تلقائيًا وبالتالي لا يدعم تخصيص الذاكرة الديناميكي.
عدم وجود موضوع
C ++ لا يدعم المواضيع المضمنة. مفهوم الخيط جديد نسبيًا في C ++ ، لأنه لم يكن موجودًا في الأصل. الآن C ++ قادر على دعم وظائف lambda.
البرامج المترجمة
كلغة ترجمة ، الملفات القابلة للتنفيذ التي ينتجها المترجم من التعليمات البرمجية المصدر ليست محمولة وسيتم تشغيلها فقط على النظام الأساسي الهدف (الأجهزة بالإضافة إلى نظام التشغيل) الذي تم تجميعها من أجله ، أو على نظام أساسي ثنائي مدعوم.
يمكن أن تكون معقدة
يمكن أن يكون C ++ معقدًا ، لأنه يسمح بالفئات ، وهي وظائف بنفس الاسم. لذلك ، يجب استخدام نظام معالجة الرموز. علاوة على ذلك ، فهو معقد بالنسبة لبرنامج رفيع المستوى كبير جدًا. يستخدم C ++ بشكل شائع للتطبيقات الخاصة بالنظام الأساسي.
المراجع
- Simplilearn (2020). C ++ برمجة للمبتدئين: التاريخ والفوائد والتطبيقات. مأخوذة من: simpleilearn.com.
- Educba (2020). استخدامات C ++ في العالم الحقيقي. مأخوذة من: educationba.com.
- دميتري راسوخين (2020). لغة البرمجة C ++ في المعلوماتية والكيمياء الحسابية. مجلة Cheminformatics. مأخوذة من: jcheminf.biomedcentral.com.
- Edureka! (2020). ما هي أهم 10 ميزات في C ++؟ مأخوذة من: edureka.co.
- أمان جويل (2020). لغة C ++: الميزات والاستخدامات والتطبيقات والمزايا. هاك. مأخوذة من: hackr.io.
- Steemit (2020). C ++: تعلم البرمجة. التاريخ والمزايا وعيوب لغة C ++. مأخوذة من: steemit.com.
- ذوق البيانات (2019). تعلم أنواع البيانات في C و C ++ مع مثال في 4 دقائق فقط. مأخوذة من: data-flair.training.