جار التحديث ...
جار التحديث ...

ماهي لغة C, وماهي خصائصها؟

  • 0

 

 

ماهي لغة C؟

قام دينيس ريتششي Ritchie Dennis من معامل بل Labs Bell في سنة 1972 بتطوير لغة البرمجة المشهورة جدا C. سي تبني وتقتبس كثيرا من سابقته B وسابقات لغة B مثل .BCPL و CPl.

 

م لغة CPL طورت لهدف أساسي هو أن تكون لغة برمجة عالية المستوى والا  تكون مرتبطة بمعالج أو نظام معين بالاضافة لاتاحة الفرصة  للمبرمج للتحكم بالامور التحتية Low Level. ولكن نقطة ضعف هذه اللغة كانت أنها كبيرة جدا في الاستخدام لعدة تطبيقات وفي سنة 1976 وطورت BCPL وهي عبارة عن نسخة مصغرة CPL مع الحفاظ على خصائص واداء اللغة الام وفي سنة 1970 قام كين تومسن Thompson Ken من معامل بيل بإنشاء لغة B والتي هي الاخرى تصغير للغة BCPL مع هدف أساسي وهو برمجة  النظم وفي نهاية المطاف قام دينيس ريتشي بإعادة بعض المزايا العاة من BCPL إلى B لتظهر إلى الوجود اللغة فائقة الشهرة C.

 

وعندما ظهرت قوة سي وقابليتها العالية للتطوير أعيد كتابة نظام التشغيل Unix بشكل شبه كامل باستخدام سي وقد كان مبرمجا في الاساس بلغة ألاسمبلي، وعلى مدى السبعينات انتشرت هذه اللغة في الجامعت والكليات لارتباطها بنظم يونكس وتوفر أدوات التصنيف Compilers . الخاصة بها ومع انتشار سي وتبني كل مؤسسة تطوير نسخة خاصة ظهرت مشكلة عدم التوافقية، مما حدى المعهد المريكي الوطني للمواصفات ANSI إلى تشكيل لجنة خاصة لتبني تعريف ومواصفات موحدة للغة سي.

 

لغات أثرت على لغة سي:

 • ALGOL68

• FORTRAN

• B, BCPL,CPL 

• Assembly

• PL/I

 

لغات تأثرت بلغة سي:

 • C++

• C#

•  JAVA

•  Perl

• AWK

• Limbo 

 

خصائص اللغة:

• لغة مترجمة تستخدم Compilerتتميز بالسرعة الكبيرة.

• لغة تتيح الوصول إلى الاوامر والمهام التحتية Level Low مع أسلوب  كتابة عالي المستوى فهي لذلك تصلح لبرمجة  نظم التشغيل جنبا الى جنب مع برمجة التطبيقات المعتادة.

• أغلب الميزات مفصولة من قلب اللغة وتضاف كمكتبات جاهزة الاستخدام.

• لغة ممنظمة وإجرائية.

• أسلوب الكتابة ثابت وضعيف.

 

 

 ترخيص اللغة: مترجم جنو الخاص باللغة. GNU General Public License

مثال برمجي:

برنامج تخمين رقم بين 1 و 10.

 

 

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
int n;
int g;
char c;
srand(time(NULL));
n = 1 + (rand() % 10);
puts("I'm thinking of a number between 1 and 10.");
puts("Try to guess it:");
while (1) {
if (scanf("%d"، &g)! 1) {
/* ignore one char, in case user gave a non-number */
scanf("%c"، &c);
continue;
}
if (g == n) {
puts("Correct! );
return 0;
}
puts("That's not my number. Try another guess:");
}
}

شاركنا معلومات اخرى لم تذكر (:

 

 

المصدر: كتاب مختصر دليل لغات البرمجة

إجابات المستخدمين (1)


  • مسؤول
  • قديم العهد
  • قبل أشهر 7
شكرا على معلوماتك اخي
  • 0
رد على التعليق (0)

الردود :


لا يوجد ردود بعد


سجل الدخول لاضافة رد
سجل الدخول لاضافة اجابة جديدة


ملئ الشاشة

اضافة سؤال جديد