ما هي لغة سي؟

لغة سي (C) هي لغة برمجة مترجمة وعامة الأغراض صممها دينيس ريتشي في مختبرات بِل عام 1972، وتُتيح تحكمًا مباشرًا في الذاكرة وتُقارب سلوك المعالج الفعلي.11وثائق C قابلة للتشغيل: ما هي لغة C | Coddycoddy.techاذهب إلى المرجع ↓يُفتح في تبويب جديد22C Programming Tutorial - GeeksforGeeksgeeksforgeeks.orgاذهب إلى المرجع ↓يُفتح في تبويب جديد بفضل هذه الخصائص، ظلت سي الخيار الأساسي لتطوير أنظمة التشغيل ومشغلات الأجهزة وقواعد البيانات، حيث تُستَخدم في نوى أنظمة مثل لينكس وأجزاء من ويندوز وmacOS، وكذلك في البرمجيات المدمجة بالسيارات والأجهزة المنزلية والمتحكمات الدقيقة.11وثائق C قابلة للتشغيل: ما هي لغة C | Coddycoddy.techاذهب إلى المرجع ↓يُفتح في تبويب جديد كما تُستَخدم في بيئات تشغيل لغات أخرى مثل CPython وRedis، وفي مكتبات حسّاسة للأداء تُستدعى من لغات برمجة مختلفة.11وثائق C قابلة للتشغيل: ما هي لغة C | Coddycoddy.techاذهب إلى المرجع ↓يُفتح في تبويب جديد تُعتبر سي «أمّ» معظم لغات البرمجة الحديثة؛ فلغات مثل جافا (Java)، بي إتش بي (PHP)، وجافاسكريبت (JavaScript) استقرت على بنية نحوية وميزات مستمدة مباشرة أو غير مباشرة من سي.22C Programming Tutorial - GeeksforGeeksgeeksforgeeks.orgاذهب إلى المرجع ↓يُفتح في تبويب جديد

شعار لغة سي
شعار لغة سيالمؤلف: Pintuhembramk · الترخيص: CC BY-SA 4.0 · السنة: 2024 · المصدر: ويكيميديا كومنز
مفاهيم معيار آيزو سي لعام 1999
مفاهيم معيار آيزو سي لعام 1999المؤلف: Максим Пе · الترخيص: CC BY-SA 4.0 · المصدر: ويكيميديا كومنز

مثال برمجي يوضح تعريف دالة بسيطة في سي:

#include <stdio.h>

int main(void) {
    int a = 5, b = 3;
    int sum = a + b;
    printf("المجموع: %d\n", sum);
    return 0;
}

النشأة

نشأت لغة سي (C) في أوائل السبعينيات داخل مختبرات بيل (Bell Labs) على يد دينيس ريتشي (Dennis Ritchie) كإصدار متطور للغة بي (B).33من القهوة إلى الكوميديا.. الحكايات الخفية وراء أسماء لغات البرمجة | تكنولوجيا | الجزيرة نتaljazeera.netاذهب إلى المرجع ↓يُفتح في تبويب جديد تم إطلاقها رسميًا عام 1972، حيث صُممت لتكون لغة نظام قوية وسريعة مع قدرة عالية على المرونة في كتابة البرامج.44تاريخ لغات البرمجة وتطورها عبر العقود: رحلة من الثقوب الورقية إلى الذكاء الاصطناعيmawjknowledge.comاذهب إلى المرجع ↓يُفتح في تبويب جديد كان الهدف الأساسي من تطويرها هو تمكين بناء أنظمة تشغيل متكاملة، وقد استُخدمت في البداية لتطوير نظام يونكس (Unix).55دليل جمّال تك: لغة البرمجة Cgammal.techاذهب إلى المرجع ↓يُفتح في تبويب جديد تُعَدّ سي الجد الشرعي للعديد من لغات البرمجة الحديثة، إذ انبثقت منها أنظمة تشغيل بارزة مثل لينكس (Linux) وويندوز (Windows).44تاريخ لغات البرمجة وتطورها عبر العقود: رحلة من الثقوب الورقية إلى الذكاء الاصطناعيmawjknowledge.comاذهب إلى المرجع ↓يُفتح في تبويب جديد

مؤشر تايوبي من 2001 إلى 2025
مؤشر تايوبي من 2001 إلى 2025المؤلف: Wikideas1 · الترخيص: CC0 · المصدر: ويكيميديا كومنز

مثال برمجي بسيط يوضح بنية برنامج «Hello, World!» بلغة سي:

#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}

خصائصها

تُعد لغة سي (C) من اللغات التي تجمع بين السرعة العالية والتحكم المباشر في مكونات الحاسوب، ما يجعلها خيارًا أساسيًا لتطوير البرمجيات القريبة من العتاد. تُستَخدم هذه اللغة في كتابة أنظمة التشغيل، البرمجيات المدمجة، وقواعد البيانات، فضلًا عن التطبيقات التي تتطلب معالجة كميات ضخمة من البيانات بسرعة.

The C Programming Language
The C Programming Languageالمؤلف: Максим Пе · الترخيص: CC BY-SA 4.0 · المصدر: ويكيميديا كومنز

مثال بسيط يوضح بنية برنامج «Hello, World!» بلغة سي:

#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}

المؤشرات والذاكرة

عند تحميل البرنامج في ذاكرة الوصول العشوائي (RAM)، يترابط كل جزء فيه — بما في ذلك المتغيرات (Variables) — بعنوان محدد في الذاكرة.1010ناسا بالعربي - لا تبدأ فورًا بكتابة الكود، استخدم المكتباتnasainarabic.netاذهب إلى المرجع ↓يُفتح في تبويب جديد وعند استدعاء أي اقتران، تُحمل كافة البيانات المتعلقة به في الذاكرة طوال فترة تشغيله للحصول على النتيجة، وتنشئ لغة C نسخة من البيانات الممررة إلى الاقتران.1010ناسا بالعربي - لا تبدأ فورًا بكتابة الكود، استخدم المكتباتnasainarabic.netاذهب إلى المرجع ↓يُفتح في تبويب جديد وتُعد المؤشرات (Pointers) أدوات أساسية لإدارة الذاكرة؛ إذ يُعرف المؤشر بأنه متغير يُستخدم لتخزين عنوان الذاكرة لبيانات أخرى، وله نوع بيانات يتيح له التمييز بين البتات المشيرة إلى موقع الذاكرة.1010ناسا بالعربي - لا تبدأ فورًا بكتابة الكود، استخدم المكتباتnasainarabic.netاذهب إلى المرجع ↓يُفتح في تبويب جديد وتُنشأ المؤشرات بوضع رمز العامل غير المباشر * مباشرة قبل اسم المتغير.1010ناسا بالعربي - لا تبدأ فورًا بكتابة الكود، استخدم المكتباتnasainarabic.netاذهب إلى المرجع ↓يُفتح في تبويب جديد

The Cover of the book "The C Programming Language"
The Cover of the book "The C Programming Language"المؤلف: Emil Engler · الترخيص: CC0 · المصدر: ويكيميديا كومنز
int i;
int *p;

تختلف المؤشرات عن المصفوفات (Arrays) في خصائص متعددة تتعلق بالذاكرة وطرق معالجتها:1111المؤشرات مقابل المصفوفات في لغة C: الفرق والاستخداماتt10blogs.comاذهب إلى المرجع ↓يُفتح في تبويب جديد

الاستخدامات

تُعَدُّ لغة C من الأدوات الأساسية في مجال البرمجة، حيث تُستَخدم في طيف واسع من التطبيقات التقنية بفضل سرعتها ومرونتها.1313مشاريع برمجة بلغة C: من المبتدئ إلى المحترفarabic.techاذهب إلى المرجع ↓يُفتح في تبويب جديد

دينيس ريتشي خلال حفل مؤسسة جائزة اليابان في مايو 2011.
دينيس ريتشي خلال حفل مؤسسة جائزة اليابان في مايو 2011.المؤلف: Denise Panyik-Dale · الترخيص: CC BY 2.0 · المصدر: ويكيميديا كومنز

من أبرز المجالات التي تُستَغل فيها هذه اللغة:

مثال بسيط يوضح بنية برنامج C أساسي:

#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}

تأثيرها في اللغات الأخرى

تُعَدُّ لغة C حجر الأساس للعديد من لغات البرمجة الحديثة، إذ تُستَندُ عليها في بنية النحو والهيكلية العامة للغات التي تلتها.88لغة C - Reemat Platformreemat.netاذهب إلى المرجع ↓يُفتح في تبويب جديد77مميزات و عيوب لغات البرمجة – Maddiemkh034450.wordpress.comاذهب إلى المرجع ↓يُفتح في تبويب جديد فقد أثرت صيغتها وإمكانياتها على تطوير لغات مثل C++ و Java و Python و PHP، التي تُعَدُّ جميعها فروعًا أو مشتقات مباشرةً من C.77مميزات و عيوب لغات البرمجة – Maddiemkh034450.wordpress.comاذهب إلى المرجع ↓يُفتح في تبويب جديد كما أن المفاهيم الأساسية التي قدمتها C، مثل المؤشرات (pointers) وإدارة الذاكرة على مستوى منخفض، تُدرَّس كقاعدة أساسية لفهم أي لغة برمجة معاصرة.22C Programming Tutorial - GeeksforGeeksgeeksforgeeks.orgاذهب إلى المرجع ↓يُفتح في تبويب جديد

دينيس ريتشي في حفل مؤسسة جائزة اليابان مع زميله السابق دوغلاس (دوغ) ماكلروي في مايو 2011.
دينيس ريتشي في حفل مؤسسة جائزة اليابان مع زميله السابق دوغلاس (دوغ) ماكلروي في مايو 2011.المؤلف: Denise Panyik-Dale · الترخيص: CC BY 2.0 · المصدر: ويكيميديا كومنز
دينيس ريتشي في شاليه بالجبال المحيطة بمدينة سولت ليك في ولاية يوتا، صيف عام 1984، خلال مؤتمر Usenix.
دينيس ريتشي في شاليه بالجبال المحيطة بمدينة سولت ليك في ولاية يوتا، صيف عام 1984، خلال مؤتمر Usenix.المؤلف: Perry Kivolowitz · الترخيص: CC BY-SA 3.0 · المصدر: ويكيميديا كومنز

من الناحية العملية، يُستَخدم نهج C في تصميم لغات جديدة لتوفير كفاءة الأداء وإمكانية الوصول إلى موارد العتاد، ما يجعلها نموذجًا يُحتذى به في تطوير الأنظمة المدمجة، قواعد البيانات، شبكات الحاسوب، ومحركات الألعاب.22C Programming Tutorial - GeeksforGeeksgeeksforgeeks.orgاذهب إلى المرجع ↓يُفتح في تبويب جديد

إليك أمثلة على بعض اللغات التي استلهمت من C:

#include <stdio.h>

int main(void) {
    int a = 10, b = 20;
    int *p = &a;          // مؤشر إلى المتغيّر a
    *p = b;               // تعديل قيمة a عبر المؤشر
    printf("%d\n", a);   // يطبع 20
    return 0;
}

أنظر أيضاً