الخميس، مارس 26، 2009

تاريخ السي C

بيل كلينتون يكرم دينيس ريتشي و كين تومسون

السي هي لغة برمجة طورها دينيس ريتشي Dennis Ritchie بين 1969 و 1973 في معامل at&t لكي تساعد في تطوير نظام التشغيل يونكس Unix .

حاليا تعتبر الـ C اللغة الاولى او الثانية على العالم من حيث الشعبيه، عدد مبرمجي الـ سي وكمية الكود المتاحة على الانترنت، ونظم التشغيل المكتوبة بالـ سي، من الويندوز لـ اللينوكس، كل هذا عظم من مكانة الـ سي وأصبحت تقريبا الاساس لكل لغات البرمجة المطورة بعد ذلك، كلغة الـ سي++ ++C التي بدأت أصلا كنسخة من السي لكن محدثة على اتجاه أخر هو الـ object oriented programming (ترجمتها بالعربي سيئه جدا، برمجة الكائنات او حاجه زي كده)، بعكس الـ سي function oriented programming، وكل نوع منهم له مميزاته وعيوبه، وحسب البرنامج والمطلوب منه يتم اختيار اللغة.

الكمبيوتر كجهاز لا يفهم لغة معينة، كل اللي يفهمه هو تسلسلات من الـ 0 و 1 التي تمثل قيمتين من الفولت او فرق الجهد، قيمة صغيرة ممكن 1 فولت هي الـ 0 وقيمة اعلى زي 5 فولت تمثل الرقم واحد، باستخدام تلك القيمتان بني الكمبيوتر على نظام ارقام او تشفير هو النظام الثنائي binary،وكل شيء ينفذه معالج الكمبيوتر او البروسيسور من أغاني او عرض صور هو في النهاية مشفر بالنظام الثنائي، والماشين كود Machine code او الكود المفهوم للمعالج هو عباره عن نظام الارقام الثنائي.

لكي تأمر الكمبيوتر بتنفيذ عمليات معينه على بيانات، او تطور برنامج، يجب ان توصف للمعالج تلك الاوامر بنظام الارقام الثنائي الـ binary، لتسهيل تلك العملية طورت شبه لغه اسمها الـAssembly language او اللغة التجميعيه، وهي عباره عن اوامر محفوظه تتغير من معالج لمعالج حسب المصنع، وهي لغة تعتبر صعبه كذلك، بسبب كثرة الكود المطلوب لتنفيذ البرامج.

هنا تظهر الـ سي، عبقرية تلك اللغة انها سهلت عملية البرمجه جدا، اوامرها وكلماتها من الانجليزي، وبعد كتابة البرنامج، المترجم او الـ compiler يترجمه للغة معظم معالجات السوق، فالكود واحد ويعمل على اجهزة مختلفة وأنظمة تشغيل مختلفة.

اللغة عباره عن كلمات محجوزة او key words محجوزة، بمعنى ان المبرمج لا يستطيع ان يسمي متغير مثلا بكلمة من تلك الكلمات لانها لها معنى، كلمات كـ int-float-if-while، وبالكلمات المحجوزة وقواعد معينة كتبت المكتبة او الـ library، المكتبه تحتوي على ملفات اسمها header files، كـ stdio.h و math.h، معرف فيها الدوال او الـ functions المطلوبة لكل البرنامج.

بعد انتشار اللغة، بدات تظهر نسخ مختلفة من اللغة، فكل شركة تطور compiler وتزود في المكتبه قليلا، وتزود قواعد لتسهيل اللغة، فالـ compiler تبعها ينتشر ويبيع اكثر، وهذا خطر على اللغة لانها تتحرف لنسخ مختلفه، في 1983، كونت الهيئة الوطنية الامريكية للمعايير "American National Standards Institute "ANSI لجنة لوضع المعايير او النسخة الاساسية للغة، 1989 صدق على المعايير وسميت ANSI X3.159-1989 "Programming Language C."، او ANSI C، وفي 1990 تبنت مؤسسة المعايير العالمية International Organization for Standardization او "ISO" تلك النسخة وسميت ISO/IEC 9899:1990. أخر نسخة اقرت في 1999 واسمها ISO/IEC 9899:1999.

يوجد حاليا الكثير من الـ compilers اشهرها GCC و Microsoft visual studio ، SUN studio و Geany.

معظم البرامج المذكورة تسمى IDE او Integrated Development Environment، لانها تحتوي علي text editor لكتابة الكود، والـ Compiler لترجمة الكود للغة المعالج، والـ debugger لتصليح الاخطاء.