سي (لونڭاج)
سي
| ||
معلومات عامة | ||
نوع د لّونڭاج | لغة برمجة أمرية، لغة برمجة إجرائية، لغة برمجة مهيكلة، لغة مجمّعة، لونڭاج و مصطلح ف لانفورماتيك | |
شكون ختارعو | دينيس ريتشي | |
شكون طورو | مختبرات بل، دينيس ريتشي، المعهد الوطني الأمريكي للمقَايِس، المنظمة الدولية للمعايير و كين تومسن | |
متأتر ب | ألڭول 68، بي، لغة تجميع، فورتران، PL/1، سي بي إل، لغة البرمجة الأساسية المختلطة، ألڭول 60 و ألڭول | |
لفلسفات د لبرمجة | برمجة أمرية، برمجة مهيكلة و برمجة إجرائية | |
تّنواع | manifest typing و weak typing | |
جّرات د لفيشي | c و h | |
مايتخالطش معا | C | |
سّيت رّسمي | https://www.iso.org/standard/74528.html و https://www.open-std.org/jtc1/sc22/wg14/ |
لونڭاج سي (نّݣليزية: C language) هوّا لونڭاج د التخدام لعام لي ختارعو عالم لانفورماتيك دينيس ريتشي ف السبعينات د لقرن 20. هاد اللونڭاج باقي مخدم بزاف ل حد الساعة، و كان و مزال عندو تأتير كبير ف لمجال ديال لبرماجة.
اللونڭاج سي مخدم ف لكتابة ديال لكوض سورس د پروڭرامات بحال السيستيمات د التشغيل، درايڤرات، و سطاك د پروطوكول (تطبيق ديال پروطوكول د الريزو لمعلوماتي). كاينين أپليكاصيونات مكتوبين ب سي، ولاكين هاد التخدام ولّا قل من قبل، حيت أغلبية د لموبرميجين كيفضّلو يخدمو ب لونڭاجات خرة بحال جاڤا ؤلا پايثون، ف التطبيقات لي ماكاتطّلبش تدبير دقيق ديال لميموار، و كاتكون لحساسية د مدة لبرماجة و الصيانة د لپروڭرام عندها أهمية كبر من السرعة د التنفيد ديالو. بزاف ديال لمودولات د لونڭاجات بحال پايثون كيتكتبو ب سّي (متلاً نامپاي ديال لحساب د لماطريسات)، باش تطلع لفعّالية ديال لپروڭرام لي مكتوب بيهوم.
هاد اللونڭاج تسمّا "سي" C، حيت جا باش يخلف لونڭاج بي B language، و طوّرو دينيس ريتشي فاش كان خدام ف مختبرات بيل، مابين 1972 و 1973، باش يصاوب پروڭرامات ديال الصيانة ف سيستيم ؤنيكس.
ف 2023، لونڭاج سّي مكلاصي التاني ف لانديكس د تيوبي TIOBE Index ديال اللونڭاجات لي مطلوبة بزاف، مورا پايثون، و قبل من سي++ لي مبني عليه.[1]
نضرة عامة
بدلسّي كيتّعتابر لونڭاج أمري ب لپروصيات. و تّبنا على الساس ديال ألڭول (فاميلة د اللونڭاجات لي بانو ف اللخر د لخمسينات). عندو سيستيم د التيپاج تابت (عكس پايثون متلاً لي خدام ب سيستيم ديناميكي، بحيت التيپاج ديال شي پاراميطر كيقدر يتبدّل على حساب شنو كيدير بيه لپروڭرام). لكوض ديال السي لي كيكون قابل ل التنفيد، كيكون ديما وسط فونكسيونات. لپاراميطرات ديال لفونكسيونات كيدوزو ف لعادة ب لقيمة ديالهوم call by value، ولاكين ف لحالة ديال الليستات arrays كيتدوّزو ب پوانتور pointer لي كاتكون فيه لادريسة ف لميموار ديال لقيمة اللولة ف الليستة. فاش كايتدوّز شي پاراميطر ف فونكسيون ب پوانتور كانڭولو بلي دوّزناه ب لإحالة call by reference ؤلا passing by reference.
لكوض سورس ديال سّي كيكون ب ب فورما حر، يعني يقدر لواحد يكتب لكوض كاملو ف سطر واحد طويل يلا بغا، ؤلا يفرّقو على بزاف د السطورا. كلا تعليمة ضروري تّسالا ب فاصيلة منقوطة، و كلا بلوك ديال التعليمات كيكون مجموع ب معقوفات.
اللونڭاج سي كيتميّز ب هاد لمزيات ؤلا لعناصر:
- كلمات خاصة بحال
if/else
،for
،do while
،while
،switch
، و غيرها. لپروڭرامور فاش يسمّي لپاراميطرات ديالو خاصو يحضي باش مايخدّمش هاد لكلمات لخاصة، حيت غادي تعطي غالبا شي غالاط ف لپروڭرام. - رموز د لحساب بحال
+
,+=
,++
,&
,||
- پاراميطرات ؤلا متغيرات لي كاتكون كلا وحدة منها عندها سمية وحيدة، و تيپاج محدّد.
- تيپاج لي كيحدد نوع الداطا لي كاتكون ف شي پاراميطر متلاً. بحال
int
ب النسبة ل لأعداد الطبيعية،char
ب النسبة ل كاراكطير... - فونكسيونات:
- لفونكسيون لي كاتدير شي عملية بلا ماترد تا شي قيمة كاتكون ف لعادة مسبوقة ب لكلمة لخاصة
void
. ف هاد لحالة كاتسمّى "پروصي" procedure. - لفونكسيون لي كاترد شي قيمة كاتكون مسبوقة ب لكلمة لخاصة ديال التيپاج ديال الداطا لي كاترد. متلا شي فونكسيون سميتها
calculate
كاترد عدد طبيعي غادي تّكتب ب هاد الشكلint calculate(){}
- يلا فونكسيون عندها پاراميطرات د لإنپوت، كيخصهوم يتكتبو بين جوج قواس ديال لفونكسيون ب التيپاج ديالهوم، متلاً شي فونكسيون كاتدير لجمع ديال جوج أعداد طبيعية سميتها
add
غادي تّديكلارا ب هاد الشكلint add(int a, int b){}
- لفونكسيون تقدر تعيّط ل راسها، هاد لبلان كيتسمّى الترياص recursion.
- يلا تعرّف شي پاراميطر وسط لفونكسيون، كيكون لمدا scope ديالو غير وسط ديك لفونكسيون. يعني يلا تعيّط ل داك لپاراميطر ب سميتو برا لفونكسيون إما لكومپيلاتور كيعطي غالاط، ؤلا كاتخدّم قيمة خرة ديال شي پاراميطر عندو نفس السمية برا لفونكسيون.
- لفونكسيون لي كاتدير شي عملية بلا ماترد تا شي قيمة كاتكون ف لعادة مسبوقة ب لكلمة لخاصة
ميتال ديال پروڭرام
بدلهادا پروڭرام بسيط ب لونڭاج سي كيطبع "hello, world" فوق الشاشة:[2]
#include <stdio.h>
int main(void)
{
printf("hello, world\n");
}
عيون لكلام
بدل- ^ "TIOBE Index for January 2023". يناير 2023. مأرشيڤي من لأصل ف 2023-10-15. تطّالع عليه ب تاريخ 13 يناير 2023.
- ^ "C "Hello, World!" Program". مأرشيڤي من لأصل ف 2023-09-05. تطّالع عليه ب تاريخ 2023-01-13.