الرئيسية > السؤال
السؤال
سي بلس بلس ( لغة برمجة ) : أذكر ما تعرفه عنها ؟
***سي++
***(تنطق: سي بلس بلس)
***(بالإنجليزية: ++C)
***هي لغة برمجة للاستخدامات العامة،
**** قل لنا معلوماتك عنها ؟
علوم الحاسب الآلي | البرمجة | الكمبيوتير والإنترنت 20‏/12‏/2009 تم النشر بواسطة meladely (الدكتور محمود العادلي).
الإجابات
1 من 2
سي++ (تنطق: سي بلس بلس) (بالإنجليزية: ++C) هي لغة برمجة للاستخدامات العامة، تعتبر لغة السي++ لغة برمجة كائنية. والتي يعتبرها الكثيرون اللغة الأفضل لتصميم التطبيقات ذات الواجهة الكبيرة و للتعامل مع البنية الصلبة للحاسب. ولغة السي بلس بلس ++C من لغات البرمجة العالية المستوى وفي نفس الوقت قريبة من لغة التجميع ذات المستوي المحدود كما أنها تعد لغة برمجة إجرائية(يمكن كتابة برنامج يحتوي على إجراءات و توابع فقط) كما تعد لغة غرضية التوجه(البرنامج المكتوب عبارة عن صفوف و تستخدم الخواص المتاحة من كبسلة و تعددية الأشكال و الوراثة و التركيب...). وهي لغة ناشئة من لغة C الذي قام بتطويرها بيارن ستروستروب إلي ++C.
[عدل] تاريخ السي بلس بلس
طور بيارن ستروستروب (Bjarne Stroustrup)، والذي كان يعمل في مختبرات بيل، لغة السي++ في الثمانينات كتحسين للغة السي، تشمل السي++ جميع مزايا السي بالأضافة إلى مزايا البرمجة الكائنية، تسهّل لغة ++C الأسلوب المهيكل والمنهجي لعملية تصميم البرامج، وتعتمد على الكائنات كبنية أساسية لتشكيل البرامج.

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

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

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

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

-الصفوف والكائنات.

-التحميل الزائد للعمليات:ويعتبرها الكثير اهم إضافة في لغة سي++، لانها جعلت من لغة سي++ لغة قابلة للتوسع، هناك اكثر من 30 عملية يمكن التحميل الزائد عليها.

-القوالب.

-التعددية الشكلية.

-الوراثة: وهي إمكانية تطوير صف جديد يمكنه ان يرث جميع خصائص صف آخر، وفي هذه الحالة، يسمى الصف بصف مشتق.

[عدل] إضافات أخرى
- استخدام الاشاره // لتضمين الملاحظات بطول سطر واحد و التي يتم تجاهلها من قبل المترجم عند القيام بعملية الترجمة.

[عدل] سبب صعوبتها
ربما تعود أسباب صعوبة لغتي السي والسي++ لأسباب تاريخية أكثر منها واقعية وهو ما يردده المبرمجين المعتادين على استخدام السي++ وهذا يعود بنا إلى أصل لغة السي وهي لغة السي بي ال 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 مثل البيسك.

[عدل] أمثلة
[عدل] مثال لطباعة !Hello, World بالسي++
# include <iostream>

using namespace std;

int main(){

  cout << "Hello, World!" << endl;
  return 0;

}
مثال اخر

# include<iostream>
using namespace std;
void main()
{
cout<<"i love my country";
}
ملاحظة: في المصرفات القديمة وبعض المصرفات الحديثة يجب وضع iostream.h عوضاً عن iostream لتعمل الشيفرة.

[عدل] التطور المستقبلي
لا تزال لغة سي++ تواصل تطورها. فهناك نسخة جديدة من سي++ قيد التطوير، وتسمى سي++0اكس، وقد صدرت في مارس 2009، يشير العمل الحالي بأنّ سي++ سيواصل الاستفادة من طبيعته متعددة المثال. boost مجموعة تعمل للاستفادة إلى أبعد الحدود من سي++ في شكله الحالي. هم يتوسّعون كثيرا في سي++ من حيث الوظيفية والقدرات وينصحون أيضا لجنة معايير سي++ التي تعمل فيها الميزّات حسنا والتي تحتاج التحسين.
21‏/12‏/2009 تم النشر بواسطة بدون اسم.
2 من 2
سي++ (تنطق: سي بلس بلس) (بالإنجليزية: ++C) هي لغة برمجة للاستخدامات العامة، تعتبر لغة السي++ لغة برمجة كائنية. والتي يعتبرها الكثيرون اللغة الأفضل لتصميم التطبيقات ذات الواجهة الكبيرة و للتعامل مع البنية الصلبة للحاسب. ولغة السي بلس بلس ++C من لغات البرمجة العالية المستوى وفي نفس الوقت قريبة من لغة التجميع ذات المستوي المحدود كما أنها تعد لغة برمجة إجرائية(يمكن كتابة برنامج يحتوي على إجراءات و توابع فقط) كما تعد لغة غرضية التوجه(البرنامج المكتوب عبارة عن صفوف و تستخدم الخواص المتاحة من كبسلة و تعددية الأشكال و الوراثة و التركيب...). وهي لغة ناشئة من لغة C الذي قام بتطويرها بيارن ستروستروب إلي ++C.
[عدل] تاريخ السي بلس بلس
طور بيارن ستروستروب (Bjarne Stroustrup)، والذي كان يعمل في مختبرات بيل، لغة السي++ في الثمانينات كتحسين للغة السي، تشمل السي++ جميع مزايا السي بالأضافة إلى مزايا البرمجة الكائنية، تسهّل لغة ++C الأسلوب المهيكل والمنهجي لعملية تصميم البرامج، وتعتمد على الكائنات كبنية أساسية لتشكيل البرامج.

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

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

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

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

-الصفوف والكائنات.

-التحميل الزائد للعمليات:ويعتبرها الكثير اهم إضافة في لغة سي++، لانها جعلت من لغة سي++ لغة قابلة للتوسع، هناك اكثر من 30 عملية يمكن التحميل الزائد عليها.

-القوالب.

-التعددية الشكلية.

-الوراثة: وهي إمكانية تطوير صف جديد يمكنه ان يرث جميع خصائص صف آخر، وفي هذه الحالة، يسمى الصف بصف مشتق.

[عدل] إضافات أخرى
- استخدام الاشاره // لتضمين الملاحظات بطول سطر واحد و التي يتم تجاهلها من قبل المترجم عند القيام بعملية الترجمة.

[عدل] سبب صعوبتها
ربما تعود أسباب صعوبة لغتي السي والسي++ لأسباب تاريخية أكثر منها واقعية وهو ما يردده المبرمجين المعتادين على استخدام السي++ وهذا يعود بنا إلى أصل لغة السي وهي لغة السي بي ال 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 مثل البيسك.

[عدل] أمثلة
[عدل] مثال لطباعة !Hello, World بالسي++
# include <iostream>

using namespace std;

int main(){

 cout << "Hello, World!" << endl;
 return 0;

}
مثال اخر

# include<iostream>
using namespace std;
void main()
{
cout<<"i love my country";
}
ملاحظة: في المصرفات القديمة وبعض المصرفات الحديثة يجب وضع iostream.h عوضاً عن iostream لتعمل الشيفرة.

[عدل] التطور المستقبلي
لا تزال لغة سي++ تواصل تطورها. فهناك نسخة جديدة من سي++ قيد التطوير، وتسمى سي++0اكس، وقد صدرت في مارس 2009، يشير العمل الحالي بأنّ سي++ سيواصل الاستفادة من طبيعته متعددة المثال. boost مجموعة تعمل للاستفادة إلى أبعد الحدود من سي++ في شكله الحالي. هم يتوسّعون كثيرا في سي++ من حيث الوظيفية والقدرات وينصحون أيضا لجنة معايير سي++ التي تعمل فيها الميزّات حسنا والتي تحتاج التحسين.
21‏/12‏/2009 تم النشر بواسطة عنايات الماحي (عنايات الماحي).
قد يهمك أيضًا
ما هي لغة ال ++C ؟
ماهو مفهوم الترجمه أو خلفية مفهوم الترجمة مثل ( جافا ) ( php) ( سي بلس بلس )
مهى طريقة كتابة مقدمة عن طريق جوجل بلس
ما هو سكربت؟
مشكلة في سي بلس بلس
تسجيل الدخول
عرض إجابات Google في:: Mobile | كلاسيكي
©2014 Google - سياسة الخصوصية - مساعدة