التخطي إلى المحتوى الرئيسي

اشهر لغة برمجه في العالم

                                                     بسم الله الرحمن الرحيم

ما هيا اقوى لغة برمجه في العالم؟
من جهة نضري هيا  لغة ال سي بلس بلس

لغة السي بلس بلس

تعتبر لغة السي الآن من أشهر اللغات , وأكثرها أنتشارا في الدول المتقدمة ,وبدا المبرمجون من كافة الاختصاصات يكتبون برامجهم بها .
وقد ولدت لغة السي ونشات وترعرعت في أحضان نظام يونيكس الذي صمم في مختبرات شركة AT&T الامريكية , حيث كتب نظام يونيكس أول ما كتب , بلغة التجميع Assembly لأجهزة PDP-7 , ثم طوره الباحثان ثومبسون Thompson وريتشي Ritchie ليناسب اجهزة PDP-11 الأكثر تطورا .

وقد فضلت شركة Bell الأمريكية وغيرها من الشركات نظام يونيكس بسبب أنه قابل للتنقل بين أنظمة التشغيل المختلفة Portable وعلى عكس لغة التجميع المرتبطة بالمعالجات الدقيقة , وغير قابلة للنقل.
في الوقت نفسه , كان ثومبسون نفسه يطور بعض لغات البرمجة التي تناسب أنظمة تشغيل مختلفة , ومن هذه اللغات : لغة Basic Combined Programming BCPL التي صممها مارتن ريتشاردز Martin Richards في كامبردج عام 1967 ,وهذه اللغة كانت قد انبثقت من لغة أخرى هي Combined Programming Language CPL التي صممت في جامعة لندن في حوالي عام 1960 , وهذه الاخيرة استعارت بعض تعليماتها من لغة الجول 60 AGOL 60 قام بعد ذلك ثومبسون بتطوير BCPL وسماها لغة B فقط ومن الجدير بالذكر أن جميع هذه اللغات المذكورة آنفا تعتبر كلغة التجميع ,لعات الآلة Machine Languages .
بعد ذلك قام ريتشس فأخذ من B أحسن تعليماتها وغير في كثير من قيودها وأضاف إليها تعليمات أخرى جديدة , مثل أنواع المعطيات ومواصفات التخزين وجعل منها لغة برمجة Software Language كما هي لغة الآلة وسماها لغة C - وهو حرف ابجدي متقدم على الحرف B فولدت بذلك لغة سي عام 1972م , على يد ريتشي نفسه في مختبرات AT&T الامريكية .
وقد تطورت لغة السي بعد ذلك تطورات سريعة وأصبحت من اكثر لغات البرمجة شعبية وإقبالا وذلك لسببين رئيسيين وهما :
الأول: مرونة لغة السي , فهي تصلح لكافة التطبيقات , وتعطي المبرمج حرية التصرف , على مستوى البرمجيات Spftware أو الاجهزة Harware . 
الثاني : شعبية وانتشار نظام يونيكس , كنظام تشغيل يكتب بلغة السي , فهي تدعم نظام يونيكس , وهو يدعمها.
وتعتبر لغة سي الآن من أشهر اللغات وأكثرها انتئارا والدول المتقدمة وبدأ المبرمجون من كافة الاختصاصات يكتبون برامجهم بها, وعلى سبيل المثال لا الحصر , ظهر كتاب "برامج المايكرو كمبيوتر للمهندسين والكيميائيين"عام 1987 عن دار ماجرو هيل الامريكية , مكتوبا من ألفخ إلى يائه بلغة سي , ومعنى ذلك أنه يفترض أن جميع المهندسين والمبرمجين في امريكا يفهمون لغة السي , ويتعاملون بها.
زبعد ذلك قام بيرون ستروستروب Stroustrup بتطوير C - وهي الاكثر شعبية في الحقل البرمجي كي توائم البرمجة الكائنية بعد انتشار التحليل والتصميم الكائني . ثم ابتكر ++C , وفي أقم من عقد انطلقت من نطاق مبرمجي AT&T لتصبح لغة البرمجة المفضلة لدى المبرمجين المحترفين .
إن ++C هي إطار موسع للغة C ويمكن القول أن كل برنامج C يعتبر برنامجا شرعيا بلغة ++C ولكن لا تركن لهذا المر فالوثبة من C إلى ++C أكبر مما يبدو.
وقد استفادت ++C ولعدة سنوات من علاقتها بلغة C إذ استطاع كثير من مبرمجين C استعمال ++C بسهولة ، علما أن معظم المبرمجين رأوا أنهم مضطرين للتخلي عن كثير من المفاهيم السابقة واعتماد رؤية أخرى لحل مشاكل البرمجة إن هم رغبوا في الاضطلاع بهذه اللغة.
سي بلس بلس والبرمجة الكائنية
تدعم لغة ++C المقومات الاربعة للبرمجة الكائنية .التغليف أو الكبسلة،إفاء البيانات ، الوراثة وتعددية الأشكال.
التغليف وإخفاء البيانات:
تدعم ++C صفة التغليف وإخفاء البيانات عبر إنشاء أنواع جديدة تسمى بالصفوف Classes ومن ثم يقوم الصف المحدد بالعمل ككائن مغلف تماما ويستعمل كوحدة متكاملة بحيث يبقى عمله الداخلي مستورا لا يحتاج المستعمل- مستعمل الـ Class - إلى فهم هذا العمل المخبأ حيث ينبغي أن يعرف كيفية استعماله فقط.
الوراثة وإعادة الاستعمال:
توفر ++C دعما فعالا لإعادة الاستعمال من خلال الوراثة Inheritance . يمكن إعلان نموذج جديد يكون امتدادا لصف موجود والاشتقاق منه. ونسمي الصف الجديد صفا مشتقا أحيانا.
تعدد الاشكال:
إن دالة الرسم واحدة ، ولكن اطوراها متعددة بحسب نوع الفصيلة . وهذا هو أحد المبادئ الاقتصادية في لغة ++C لتوفير الوقت والجهد ، استخدام نفس الدالة لتحقيق مهام مختلفة .

تعليقات

المشاركات الشائعة من هذه المدونة

شرح + اسئله لموضوع Pointers في لغة c++

شرح + اسئله لموضوع Pointers في لغة c++ Lab 2: Using Pointers Lab Objectives: In this lab students will learn: ü Memory concept of variables, pointers and how to use variable identifiers and pointers to refer to the variable. ü Pointer variable declarations and initialization. ü Direct and indirect referencing a variable using the pointer operators. ü Using * and address (&) operators.   Background: When declaring a variable, it is located at a specific location in memory, the memory address. The task of locating variables is automatically performed by the operating system during runtime. In some cases we need to know the address where the variable is being stored during runtime. Variable which stores a reference to another variable is called a pointer. We can directly access the value stored in the variable using a pointer which points to it. Syntax: 1. Pointer Declaration: Syntax: Pointer_type *Pointer_name; Example: int *Ptr1; double *Ptr2; 2. Pointer initializati

شرح + اسئله عن موضوع Arrays في لغة c++

شرح + اسئله عن موضوع  Arrays في لغة c++  1: Arrays   Lab Objectives: ü Learn how to use the array data structure to represent a set of related data items. ü Learn how to declare arrays, initialize arrays and refer to the individual elements of arrays. ü Learn how to pass arrays to functions. ü Learn how to declare and manipulate Two-dimensional arrays. ü  Background:   Definition Array: A collection of individual values, all of the same data type, stored in adjacent memory locations. One Dimensional Array: An array with a single variable index. Using the array name together with an integral valued index in square brackets refers to the individual values. The first array element always has the subscript 0. The second array element has the subscript 1, etc. The base address of an array is its beginning address in memory.   Declaring an Array: Use the following syntax below. DataType ArrayName [Const Int Expression]; The example below shows the declaration of an integ

شرح واسئله عن Friend function & friend class.

موضوع Friend function & friend class Task #6: Friend function & friend class.   Create and destroy objects dynamically. Static data members and member functions.     Objectives:   Using friend functions, and friend classes.   Using this pointer.    Creating and destroying objects dynamically with operators new and delete, respectively.    Creating dynamic array class.   Using static data members and member functions.   Student Learning Outcomes:   You will: Be able to write a friend function and friend class. Be able to allocate and de allocate objects dynamically.   Background:   You have learned the syntax of friend function, friend class, this pointer, and delete and new operators. You have also learned how to write a static data members and member functions.