سي++

C++
Paradigm لغة برمجة متعددة الأنماط:إجرائية، كائنية التوجه، generic
Designed by بيارنه ستروستروپ
Developer بيارنه ستروستروپ
معامل بل
ISO/IEC JTC1/SC22/WG21
First appeared 1983
الإصدار المستقر
ISO/IEC 14882:2003 / 2003
الإطلاق الپروڤة
C++0x
Typing discipline Static, unsafe, nominative
OS عابر للمنصات (متعدد المنصات)
Filename extensions .h .hh .hpp .hxx .h++ .cc .cpp .cxx .c++
Website [{{#property:P856 {{#property:P856 ]
Major implementations
Borland C++ Builder, GCC, Intel C++ Compiler, Microsoft Visual C++, Sun Studio, Turbo C++, Comeau C/C++, clang
اللهجات
ISO/IEC C++ 1998, ISO/IEC C++ 2003
Influenced by
C, سيميولا, Ada 83, ALGOL 68, CLU, ML
Influenced
Perl, LPC, Lua, Pike, Ada 95, جاڤا, PHP, D, C99, C#, Aikido, Falcon
  • C++ Programming at Wikibooks

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

تاريخ

طور بيارنه ستروستروپ (Bjarne Stroustrup), والذي كان يعمل في مختبرات بيل, لغة السي++ في الثمانينات كتحسين للغة السي، تضم السي++ جميع مزايا السي بالأضافة إلى مزايا البرمجة الكائنية، تسهّل لغة ++C الأسلوب المهيكل والمنهجي لعملية تصميم البرامج، وتعتمد على الكائنات كبنية أساسية لتشكيل البرامج.


ومثلها مثل لغة السي، فان السي++ هي لغة متعددة الاستخدامات إلا أنها مناسبة لبرامج أنظمة التشغيل. وتخط معظم أجزاء أنظمة التشغيل وبرامج مساعدة أنظمة التشغيل باستخدام السي++ ومنها نظام جنو/لينكس.

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


بين السي والسي++

- تدعم السي++ السي بشكل تام (نظريا أوهذا ما تقوله الشركات المنتجة للمترجمات) وعمليا يمكن لمعظم برامج السى حتى تترجم بواسطة مترجمات سى++ ولهذا تسمى هذه المترجمات بمترجمات سي/سي++. - إلا حتى الأمر لا يخلومن بعض المشاكل غير المتسقطة، مثلا قد يحدث حتى تسمى متغيراً باسم new وهي حدثة محجوزة في سي++ وليست محجوزة في سي.

الجديد في سي++

لغات برمجة
لغات كائنية
سي++
++C
سي شارپ
#C
دلفي (لغة برمجة)
Delphi
ادا 95
Ada
جاڤا
Java
سمولتوك
Smalltalk
روبي
Ruby
اوبجكت پاسكال
Object Pascal
لغات تقليدية
بيسيك
Basic
سي
C
باسكال
Pascal
كوبول
COBOL
فورتران
FORTRAN
أسمبلي
Assembly
لغات وظيفية
ليسپ
Lisp
پرولوگ
Prolog
پايثون
Python
پاريس
Paris
هندسة برامج

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

وهذا بالاضافة إلى بضعة اضافات أخرى مثل :

- مخطات جديدة لأداء مهام الادخال والاخراج تعتمد على الكائنات.

- حدثة iniline التى تضمن الاجراء الفرعى في الأساسى بدلا من استنادىئه.

- استخدام الاشاره // لتضمين الملاحظات بطول سطر واحد.

سبب صعوبتها

ربما تعود مسببات صعوبة لغتى السى والسى++ لأسباب تاريخية أكثر منها واقعية وهوما يردده المبرمجين المعتادين على استخدام السى++ وهذا يعود بنا إلى أصل لغة السى وهي لغة السي بي إل CPL والتي اشتهرت بشدة تعقيدها مما تسبب في ابتعاد المبرمجين عنها فتم تطويرها وتبسيطها إلى لغة سميت BCPL ولم تلقى الكثير من النجاح ولكنها تطوت إلى لغة البي B وعندما أرادوا تطويرها سموها سى( وهذا هوأصل تسمية السي)، وبالطبع ورثت السي++ خصائص لغة سي. الا أنه لا يمكن انكار حتى مفاهيم مثل المؤشرات pointers ، والاشارات هى مفاهيم مربكة للمبرمج المبتدىء، بالضافة إلى مفاهيم التوارث Inheritance وتعدد الشكل polymorphism والقوالب Templates التى تربك حتى المبرمجين المحترفين. وكذلك لا تقدم سى++ الحماية الكافية للمبرمج كى لا يقع في أخطاء التشغيل التى قد تتسبب في توقف الحاسوب عن العمل. كيف؟

في لغة الفيجوال بيسك مثلا عندما تحدد مصفوفة بحجم 20 عنصرا مثلا كالأتي:

Dim A(20) As Integer

ثم تحاول معالجة العنصر رقم 21 مثلا فسوف يبادرك محرك الفيجوال بيسك برسالة خطأ ويتوقف برنامجك. أما في السى++ فاذا عهدت مصفوفة بنفس الحجم : int a[20] // integer a from 0-19 not from 0-20 وعندما تحاول الوصول إلى العنصر رقم عشرين مثلا تكون قد تعديت حدود المصفوفة إلى جزء من الذاكرة من الممكن تكون مخصصة لبرنامج أخر أومعلومات حساسة لنظام التشغيل. والمشكلة الأخرى التى تربك الكثيرون حتى أول عنصر بالمصفوفة هو0 وليس 1 وحجمها 20 أى حتى العنصر الأخير هو19 وليس 20 مثل البيسك.


سبب قوتها

المعروف أنه حدثا اقتربت لغة البرمجة من لغة الحاسوب (Machine Code) حدثا زادت قوتها وما يمكن حتى تعمله بها وفي الوقت نفسه حدثا زادت صعوبتها وتعقيداتها، وفي السابق كان المبرمجون يضطرون إلى كتابة برامج معينة بلغة التجميع (أسمبلي) لأنها كانت اللغة الأقرب للحاسوب الا حتى ذلك كان أمرا في غاية التعقيد والصعوبة. ومع ظهور أنظمة التشغيل بدءا بيونكس بدأت بإستخدام لغة سي بدل من لغة أسمبلي في تطوير برامجها، وبظهور مبدأ البرمجة الكائنية التوجه، وإزدياد حجم البرامج المستخدمة وعدم كون سرعة تطبيق البرمجيات قضية حرجة، وإنتشار فكرة إعادة إستخدام البرمجيات بشكل كبير مع مبدأ البرمجة الكائنية التوجه، أصبحت السى++ بديلا جيدا للغات سابقة من ضمنها لغة التجميع ولغة سي وغيرها من اللغات التقليدية يريح المبرمجين من عنائها وفي الوقت نفسه لا تدفع بالمبرمج إلى تقديم التنازلات التى تتطلبها لغات مثل بيسك وكوبول وباسكال وغيرها. ورغم حتى السى والسى++ هما في النهاية لغات عالية المستوى الا انه قد تم تصنيفهم كلغات متوسطة بين اللغات العالية المستوى مثل بيسك وكوبول ولغة التجميع وتسمى ب لغات متوسطة المستوى Intermediate Language وتم اعتبار السى كمستوى ثالث بين مستوى رابع ومستوى ثانى ( لغة التجميع أوأسمبلي) . ويتطرف بعض المبرمجين أكثر من ذلك ويصفون السي والسي++ بأنها لغة تجميع ننطقة Portable Assembly. يضاف إلى ذلك حتى هذه اللغة تدعم برمجة كائنية التوجه مما يجعلها قابلة لللإستخدام لكائنية التوجهية أوعدمها والذي يجعلها لغة مرنة وذات شعبية لها جماهيرها الواسعة من المبرمجين المحبين للغة السي أوالمبرمجين الذين اعتادوا على لغات برمجة قائمة على كائنية التوجه مثل لفة الجافا.


أمثلة

مثال Hello, World بالسي++

#include <iostream>
int main ()
{
 std::cout << "Hello, world!" << std::endl;
return 0;
 


انظر أيضاً

  • The C++ Programming Language
  • C++0x, the planned new standard for C++
  • Comparison of integrated development environments for C/C++
  • مقارنة لغات البرمجة
  • List of C++ compilers
  • List of C++ template libraries
  • Comparison of Java and C++

الهامش

  1. ^ Stroustrup, Bjarne (1997). "1". The C++ Programming Language (Third ed.). ISBN . OCLC 59193992. |access-date= requires |url= (help)

وصلات خارجية

  • صفحة بيارنه ستروستروب
  • مرجع في ال ++C
  • مترجم مجاني لنظام ويندوز
  • المترجم الحر من جنو
هناك كتاب ، برمجة:سي بلس بلس، في فهم الخط.


تاريخ النشر: 2020-06-04 16:04:37
التصنيفات: Pages using citations with accessdate and no URL, Pages using deprecated image syntax, سي++, Class-based programming languages, C programming language family, Programming languages created in 1983, Cross-platform software, Algol programming language family, لغات برمجة كائنية التوجه

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

آل الشيخ يعلن عن "مباراة الأبطال" بين ألميريا والهلال

المصدر: RT Arabic - روسيا التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:26
مستوى الصحة: 80% الأهمية: 90%

"سوناطراك" الجزائرية تكتشف احتياطيات غاز في حقل حاسي الرمل

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:17:12
مستوى الصحة: 88% الأهمية: 100%

دراجة قائدهم البارز تفحمت.. من هم "حراس الدين"؟

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:52
مستوى الصحة: 77% الأهمية: 92%

فيديو للنطق بالحكم على قاتل نيرة أشرف.. يشعل زوبعة!

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:49
مستوى الصحة: 88% الأهمية: 97%

موسكو: أي اعتداء على القرم سيشعل حرباً عالمية ثالثة

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:37
مستوى الصحة: 79% الأهمية: 94%

العقارية السعودية تسدد مبكراً الرصيد المتبقي من قرض بـ535 مليون ريال

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:17:11
مستوى الصحة: 93% الأهمية: 85%

الغاز السام يحصد المزيد.. والوضع يعود لطبيعته في العقبة

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:36
مستوى الصحة: 88% الأهمية: 94%

تركيا- اليونان: معارك على جبهة الطاقة شرقي المتوسط

المصدر: RT Arabic - روسيا التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:28
مستوى الصحة: 95% الأهمية: 88%

محادثات أميركية إيرانية.. وواشنطن تؤكد"لا مطالب إضافية"

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:58
مستوى الصحة: 93% الأهمية: 85%

الوساطة الروسية للتخفيف من حدة الخلاف بين الهند والصين مستبعدة

المصدر: RT Arabic - روسيا التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:29
مستوى الصحة: 83% الأهمية: 97%

مجلس الأمن الدولي يعقد اجتماعا بناء على طلب أوكرانيا

المصدر: RT Arabic - روسيا التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:24
مستوى الصحة: 76% الأهمية: 85%

مصر تصدر دعوة دولية لتقديم عروض توريد كمية غير محددة من القمح

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:17:09
مستوى الصحة: 81% الأهمية: 86%

بالفيديو.. فنان العرب يستفز مشجعي الأهلي السعودي

المصدر: RT Arabic - روسيا التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:26
مستوى الصحة: 75% الأهمية: 97%

بوان تعتزم شراء أسهم خزينة بحد أقصى 3 ملايين سهم

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:17:15
مستوى الصحة: 87% الأهمية: 94%

حاكم تكساس يحمل بايدن مسؤولية مقتل عشرات المهاجرين

المصدر: RT Arabic - روسيا التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:16:22
مستوى الصحة: 86% الأهمية: 85%

هذه مصروفات الموازنة المصرية خلال 11 شهراً.. ارتفعت 11.2%

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:17:18
مستوى الصحة: 86% الأهمية: 88%

أرباح "رتال" ترتفع 62% إلى 63.4 مليون ريال في الربع الأول

المصدر: العربية - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-28 09:17:19
مستوى الصحة: 92% الأهمية: 91%

تحميل تطبيق المنصة العربية