#1  
قديم 08-31-2018, 05:58 PM
admin... admin متواجد حالياً

 
تاريخ التسجيل: Aug 2018
المشاركات: 106
افتراضي الفرق بين لغة السي والسي بلس بلس


لغة C هي لغة تصنف كـ لغه متوسطة المستوى وفي بعض الاحيان متدنية المستوى لانها قريبا جدا من المعالج و الذاكره و سريعه جداً وهذه احد مميزات اللغات متدنية المستوى عن اللغات عالية المستوى , صممت لغة C في الاصل لتستخدم للتطوير والعمل على نظام يونكس , سميت بلغة C لان جزئاً كبيراً منها مقتبس من لغة B و ظهرت لغة C في اوائل السبعينيات على يد كل من كن تومسون , برايان كرنيغان و دينيس ريتشي.

لغة C ++ بدأ تطويرها كـ لغة من لغة C على يد بيارن ستروستروب في 1979 اي بعد ظهور لغة C ب حوالي 9 اعوام وسميت ب C++ من باب الدعاية لكي تكون هي الجزء الثاني من لغة C , لاقت لغة C++ شيوعاً كبيراً و استخدمت في بناء انظمة التشغيل و التعامل مع البنية الصلبة للحاسوب (المكونات الماديه).

بعد ان قرأت نبذه عن كل من اللغتين دعونا ندخل في لب الموضوع

هناك العديد من اللغات بنية من لغة C او يعتبرها البعض قريباً جداً منها مثل C++ , C# ,JAVA وغيرها .

ان الفرق بين لغة C و لغة C++ بحسب نظري

اولاً : في الحجز الديناميكي , في لغة C نستخدم الدوال malloc and free , اما في C++ نستخدم new and delete .

ثانياً : في تعريف المتغيرات , في C كنا نعرف المتغيرات في بداية البرنامج , اما في

C++ نقوم بتعريف المتغيرات متى مااحتجنا لها في اي مكان بالبرنامج .

ثالثاً : عند التصريح عن المتغيرات من نوع struct او enum , كنا نعيد كتابة الكلمة فيC قبل تعريف المتغيرات
مثل
struct STRUCT_NAME a,b;


أما فى ال++C نكتفي ب
STRUCT_NAME a,b;

رابعاً : اوامر الادخال والاخراج ,في C printf & scanf في C++ cout & cin
خامساً : دوال التعامل مع الملفات
سادساً : سطور التعليقات في C كنا نستخدم \**\ اما في C++ فنستخدم \\



سابعاً : لغة C++ اسهل من حيث الاوامر مثل اوامر الحجز الديناميكي مثلا في C type *ptr = (type)malloc(sizeof(type)); لاكن في C ++ type *ptr =new type;


ثامناً: وهو بنظري اهم فرق بين اللغتي ال Classes

إضافة لذلك, فاللغتان لغتان مختلفتان, و الشبه بينهما يرجع لأسباب تاريخية, و السبب الرئيسي هو تأثر لغة ++C بلغة C, كما تأثرت عشرات اللغات المستخدمة حالياً في عالم البرمجة و التطوير, لكن ما يميز لغة ++C هو أنها لم تكتفي باتباع نهج لغة C في الـ Syntax و لكنها أكملت مسيرة و مفهوم لغة C, هناك فروق عديدة, فمن ناحية لغة ++C تعتبر ذات أنواع قوية يتم التحقق من العمليات فيما بينها وقت الترجمة كمعظم اللغات الأخرى كـ Java بينما لغة C هي لغة حرة, أي أنها تسمح بكل شيء, و ما يكتبه المبرمج هو ما يحصل بعبارة أخرى, إضافة إلى ذلك, فإن لغة C هي لغة Procedural أو لغة إجرائية, و هذا النوع هو السهل الممتنع في عالم البرمجة, بينما لغة ++C لا تتبع منهجاً معيناً و لكنها توفر للمبرمج أدوات عدة مناهج يمكن اتباعها, فمثلاً يمكنك اتباع طريقة الـ C و هذا ما يحصل مع المبرمجين الجدد في العادة, إضافة إلى ذلك فإنها توفر البرمجة الكائنية, و الـ Generic Programming و كل منهج له أدواته و عدته في ++C و اختر ما يحلو لك, لغة ++C ليست لغة كائنية المنحى OOP و لكنها توفر امكانية تطبيق هذا المنهج,
إضافة إلى ذلك و هو الأهم, ما الهدف الذي أنشأت لأجله اللغتان ؟


مثلاً لغة Java هي لغة موجهة في الغالب للـ Portable Applications و لذلك تشتهر في عالم الشبكات و تطبيقات هواتف الاندريد كما أعتقد,
لغة C تعتبر لغة برمجة عامة جداً أي أنها ليست موجهة نحو تطبيق معين في عالم البرمجة و لكنها لغة Very General و في منتصف الطريق بين اللغات عالية المستوى و اللغات منخفضة المستوى,
لغة ++C ليست عامة جداً كما هو الحال في لغة C, و لكنا صممت لحل مدى واسع من المسائل البرمجية, بالطبع هناك غمار لا تخوضها ++C و تستخدم C في برمجتها في الغالب,

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

ومثل ما تكلمت في اول التدوينة , لغة C بطبعها لغة متوسطة المستوى (أو فى بعض الاحيان تصنف لغة منخفضة المستوي ), و بالتالي فهي قريبة من المعالج و الذاكرة و سريعة جداً,
و لكن في لغة ++C زيادة الأداء يكون بطرق أكثر أماناً و تعطي تلك الطرق كفاءة تفوق كفاءة C في أحيان عدة,


كـ Inlining و الـ MetaProgramming و الـ Templates و اللذان يعتبران أدوات الـ Generic Programming في لغة ++C,
لن يسعني طبعا الحديث عن هذه الميزات كلها , أعتقد أن Google كفيل بذلك,

عموماً الناحية الوحيدة, التي ينتقدها مناصرو C هي الكائنات في لغة ++C, بالطبع لا تنسى أن برامج عملاقة كتبت بـ ++C كـ Office و غيره, و باستخدام البرمجة الكائنية على ما أعتقد.
الآن لماذا يحدث هذا البطئ المنشود عند استخدام OOP في لغة ++C هذا يمكن أن يكون مقالاً بحاله .

المصدر: http://princeinf.blogspot.com/2015/12/c-c.html
رد مع اقتباس
  #2  
قديم 08-31-2018, 06:02 PM
admin... admin متواجد حالياً

 
تاريخ التسجيل: Aug 2018
المشاركات: 106
افتراضي

الفرق بين ال C و ال C++
هو ال oop او ال object oriented programming

و للتوضيح اكثر

ان لغة ال c تعتبر هي ام لغات البرمجه و تعتبر اقوي لغة برمجه و اسهلها و لكن كان قبل وجود لغة ال C++ كان علي المبرمج ان يكتب الكود ويتم تنفيذه سطر سطر من قبل المعالج يعني ما كان ينفع ان ننتقل مثلا من السطر رقم 122 في البرنامج الي السطر رقم 4 لكي يتم تنفيذ كود معين و كانت العمليه صعبة للغايه علي المبرمجين وخصوصا ان مفهوم الدوال و التركيبات و الوراثة ما كانت موجوده

و لكن مع ظهور لغة ال c++ اصبح منظور البرمجه بهذه اللغه ياخذ طابع اكثر سهوله و اكثر مرونه فيمكن للمبرمج مثلا ان ينشئ داله مكتوب فيها مجموعه من السطور من الاكواد ويقوم باستدعاء هذه الداله في اي جزء من البرنامج كما هو يريد

و بهذا فان ال oop غيرت مسار البرمجه
فاصبحت البرامج المكتوبه بال c++ تتميز بالسرعه في التنفيذ وقلة حجم البرامج و المرونه في كتابة الاكواد
فاصبح المبرمج وكانه فنان يمسك بفرشاه يحركها كما يشاء ليبدع في تصميمه

المصدر: https://barmaja-ar.blogspot.com/2016/09/c-c.html
رد مع اقتباس
  #3  
قديم 09-05-2018, 09:06 PM
MAYAR... MAYAR غير متواجد حالياً
عضو جديد
 
تاريخ التسجيل: Sep 2018
الدولة: ᴏᴜᴛ ᴏꜰ ᴜɴɪᴠᴇʀsᴇ -
المشاركات: 3
افتراضي رد: الفرق بين لغة السي والسي بلس بلس

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته ،،

بعد قرائتي للموجز عن الفرق بين اللغتين أدركت إختلافات صغيرة
بينهما ، بالرغم من أنني لم أجرّب إستخدام لغة الـc من قبل ، وأذكر أنّي
درست أساسيات البداية لكيفية كتابة اكواد باستخدام الـ c++ ، لكن الآن عرفت أن
الـc++ بسطّت بعض الأمور عن الـc ، ورفعت من سهولة التحكّم بين الكودات
رغم إسهاب تخصصات البرمجة في دراسة الجافا في الوقت الحالي ، إلّا أنني لازلت
أرى الـc ++ بداية جيّدة وجميلة لفهم اللغة وأساسيات تكوينها -
لذلك بفضل تعلّمي لمحة عن الأساسيات في بداية تعرّفي على البرمجة ، سهّل علي
خوض لغة الجافا وفهم الفروق بينهما ، وهدفي بإذن الله أن أحسّن من معلوماتي ومهاراتي
وأصلح نقاط الضعف التي أواجهها .
يعطيك العافية على الطرح الوافي
رد مع اقتباس
إضافة رد

مواقع النشر

أدوات الموضوع
انواع عرض الموضوع

ضوابط المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

بإشراف موسوعة الدول





الساعة الآن 12:23 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, vBulletin Solutions, Inc. Trans by