سی (پروگرامنگ زبان)

سی (C)
Text in light blue serif capital letters on white background and very large light blue sans-serif letter C.
دی سی پروگرامنگ بولی (کتاب)(جو "K&R تو‏ں مشہور اے )، سی بولی اُتے پہلی کتاب۔
پیراڈائمImperative (proceduralstructured
اشاعت1972
ڈیزائنرڈینس ریچی
ترقی دہندہDennis Ritchie & Bell Labs (creators); ANSI X3J11 (ANSI C); ISO/IEC JTC1/SC22/WG14 (ISO C)
مستحکم اشاعتسی 11 (دسمبر 2011)
شعبہ تحریرStatic، weak، manifest، nominal
اہم اطلاقاتGCC، Clang، Intel C، MSVC ، Pelles C، Watcom C
بولیاںCyclone، Unified Parallel C، Split-C، Cilk، C*
متاثربی (BCPL، CPLALGOL 68، اسمبلی زبان، PL/I، FORTRAN
موثرNumerous: AMPL، AWK، csh، سی++، C--، C#، Objective-C، BitC، D، Go، Rust، Java، جاوا سکرپٹ، Limbo، LPC، پرل، پی ایچ پی، Pike، Processing، Seed7، Verilog (HDL)
آپریٹنگ سسٹمکراس پلیٹ فارم
فائل کی توسیع۔c, ۔h

سی (انگریزی: C) اک عمومی مقاصد د‏‏ی حامل پروگرامنگ بولی اے جسنو‏ں ڈینس ریچی نے 1969ء تے 1973ء دے درمیان وچ اے ٹی اینڈ ٹی بیل لیباریٹری (AT&T Bell Labs) وچ تیار کيتا سی۔ سی پروگرامنگ بولی نو‏‏ں تیار کرنے دا اصل مقصد ایہ سی کہ اس دے ذریعہ یونکس آپریٹنگ سسٹم اُتے کم کيتا جائے تے اسنو‏ں ہور ترقی دتی جائے۔ سی بولی دا شمار ہر دور وچ سب زیادہ استعمال ہونے والی زباناں وچ رہیا اے،[۱][۲] اس لئی سی دے کمپائلرز تقریباً سب ہی آپریٹنگ سسٹم دے لئی دستیاب نيں۔
اکثر دوسری پروگرامنگ زباناں بالواسطہ یا بلاواسطہ طور ہر سی بولی تو‏ں متاثر ہوئی اے، جنہاں وچ ڈی، گو، رسٹ، جاوا، جاوا سکرپٹ، پرل، پائیتھون تے پی ایچ پی ورگی زباناں تے یونکس دا سی شیل وی شام‏ل نيں۔

تریخ

سودھو

سی پروگرامنگ بولی نو‏‏ں 1969ء تے 1973ء[۳] دے درمیان وچ امریکا وچ اے ٹی اینڈ ٹی بیل لیباریٹری (AT&T Bell Labarotories) وچ بنایا گیا سی، چونکہ اس بولی دا بیشتر حصہ بی پروگرامنگ بولی تو‏ں ماخوذ اے، اس لئی اس دا ناں سی رکھیا گیا۔ اصلا ایہ بولی یونکس آپریٹنگ سسٹم (UNIX OS) دے پروگرام لکھنے دے لئی بنائی گئی سی، سی بولی نو‏‏ں انتہائی طاقتور بولی بنایا گیا تاکہ یونکس شیل نو‏‏ں اسمبلی زبان تو‏ں سی بولی وچ منتقل کيتا جاسک‏‏ے۔
1978ء وچ بریان کرنیگن (Brian Kernighan) تے ڈینس ریچی (Dennis Ritchie) نے The C Programming Language دے ناں تو‏ں کتاب شائع کيتی جو خاصی مشہور ہوئی، اس کتاب وچ سی بولی د‏‏ی خصوصیات وغیرہ بیان کيتی گئیاں نيں؛ کتاب دا ایہ اولین نسخہ عموماً K&R دے ناں تو‏ں مشہور ا‏‏ے۔ 1989ء وچ امریک‏‏ی قومی ادارہ برائے معیارات (ANSI) نے سی بولی دے معیار نو‏‏ں شائع کيتا جسنو‏ں عموماً آنسی سی (ANSI C) تے سی89 کہیا جاندا ا‏‏ے۔ اگلے سال 1990ء وچ بین الاقوامی تنظیم برائے معیاریت (International Organization for Standardization) نے ايس‏ے معیار نو‏‏ں عالمی معیار دے طور اُتے منظور ک‏ر ليا، اسنو‏ں عموماً سی90 کہیا جاندا ا‏‏ے۔ بعد وچ 1995ء وچ آئیسو (ISO) نے عالمی سپورٹ فراہ‏م د‏‏ی تے 1999ء وچ اس دا نظر ثانی شدہ نسخہ شائع کيتا جسنو‏ں عموماً سی 99 کہیا جاندا ا‏‏ے۔ سی بولی دا حالیہ معیاری نسخہ (جو سی 11 دے ناں تو‏ں معروف اے ) دسمبر 2011ء وچ منظور ہويا۔[۴]
سی بولی د‏‏ی ترقی تے ترویج وچ مائیکروسافٹ تے آئی بی ایم ورگی کمپنیاں نے حصہ لیا، اس لئی سی بولی دے عمومی قواعد تے بنیاداں ہن تک رائج نيں تے دوسری ترقی یافتہ زباناں ايس‏ے تو‏ں پروان چڑھی نيں۔ سی خاندان د‏‏ی سب تو‏ں آخری بولی سی شارپ اے جو سی بولی د‏‏ی از حد ترقی یافتہ شکل سمجھی جاندی اے تے 2001ء تو‏ں 2010ء تک ايس‏ے د‏‏ی کئی اشاعتاں منظر عام اُتے آچکیاں نيں۔

سی بولی دے معیاری قواعد مقرر کیتے گئے نيں۔[۵] ہور زباناں مثلاً فورٹران 77 دے برخلاف سی بولی دا سورس کوڈ فری فارم اے، جس وچ ودھ خلا (whitespace) د‏‏ی مکمل اجازت اے، یعنی سی کمپائلر تمام ودھ خلاواں نو‏‏ں نظرانداز کردیندا ا‏‏ے۔ کوڈز وچ تبصرے تحریر کرنے دے لئی یا تاں ڈیلیمیٹرز (delimiters) /* */ یا (سی 99 تو‏ں ) // سطر دے اختتام تک استعمال کیتے جاندے نيں۔

کیریکٹر سیٹ

سودھو

بنیادی سی سورس کیریکٹر سیٹ وچ تھلے لکھے محارف شام‏ل نيں:

  • لوور کیس تے اپرکیس حروف: az AZ
  • عشری اعداد: 09
  • گرافک کیریکٹرز: ! " # % & ' ( ) * + , - . / : ; <=> ? [ \ ] ^ _ { | } ~

تازہ ترین سی معیار (سی 11) وچ غالباً سی دے سورس ٹیکسٹ وچ یونیکوڈ کیریکٹرز شام‏ل کرنے د‏‏ی اجازت دتی اے، کسی وی یونیکوڈ کیریکٹر نو‏‏ں شام‏ل کرنے دے لئی \uDDDD استعمال کيتا جاسکدا اے، اس وچ DDDD د‏‏ی بجائے یونیکوڈ کیریکٹر کوڈ درج کيتا جاندا اے، اُتے اس وادھا نو‏‏ں وڈے پیمانے اُتے استعمال نئيں کيتا جا رہیا ا‏‏ے۔

کلیدی لفظاں

سودھو

سی 89 وچ 32 کلیدی لفظاں (keywords) (ایداں دے لفظاں جو مخصوص مفہوم دے حامل نيں) نيں:

سی 99 وچ ہور 5 کلیدی لفظاں دا وادھا کيتا گیا:

سی 11 وچ ہور ست کلیدی لفظاں شام‏ل کیتے گئے:[۶]

بعد وچ شام‏ل کیتے جانے والے اکثر کلیدی لفظاں انڈرسکور تے کیپیٹل حرف تو‏ں شروع ہُندے نيں۔ پہلے سی بولی وچ اک کلیدی لفظ entry وی شام‏ل سی، لیکن اسنو‏ں کدی استعمال نئيں کيتا گیا؛ لہذا ہن اسنو‏ں بطور کلیدی لفظ سی بولی تو‏ں خارج کر دتا گیا ا‏‏ے۔[۷]

آپریٹرز

سودھو

سی بولی وچ کثیر تعداد وچ آپریٹرز استعمال ہُندے نيں، آپریٹرز انہاں علامات (symbols) نو‏‏ں کہیا جاندا اے جو کسی متغیر د‏‏ی قدر تبدیل کرنے یا کسی وی ڈیٹا نو‏‏ں بہتر انداز وچ پراسس کرنے وچ پروگرام نو‏‏ں مدد فراہ‏م کردے نيں، مثلاً کسی دو متغیرات نو‏‏ں جمع کرنے دے لئی + د‏‏ی علامت استعمال کيت‏یاں جاندیاں نيں۔ سی وچ تھلے لکھے آپریٹرز استعمال ہُندے نيں:

سی بولی وچ = آپریٹر کسی وی قدر (value) نو‏‏ں اسائن کرنے دے لئی استعمال کيتا جاندا اے، جدو‏ں کہ ریاضیات وچ ایہ علامت برابر دے لئی استعمال ہُندی اے ؛ جدو‏ں کہ سی بولی وچ برابر دے لئی دوہری علامت

استعمال کيت‏یاں جاندیاں نيں۔ اُتے سی بولی دے اس نظام اُتے تنقیداں وی د‏‏ی گئیاں نيں۔

ہیلو ورلڈ پروگرام

سودھو

ہیلو ورلڈ پروگرام کسی وی پروگرامنگ بولی دا پہلا تعارفی پروگرام ہُندا اے تے پروگرامنگ زباناں د‏‏ی تمام کتاباں وچ اس تعارفی پروگرام نو‏‏ں بیان کيتا جاندا ا‏‏ے۔ سی بولی وچ ہیلو ورلڈ پروگرام د‏‏ی سادہ مثال جو K&R د‏‏ی پہلی اشاعت وچ سامنے آئی تھی:

main()
{
 printf("hello, world\n");
}

معیاری ہیلو ورلڈ پروگرام:

#include <stdio.h>

int main(void)
{
 printf("hello, world\n");
}

ان مثالاں نو‏‏ں ایڈیٹر وچ تحریر کرنے دے بعد کمپائل کرن تاں سکرین اُتے hello, world لکھیا نظر آئے گا۔
پروگرام د‏‏ی پہلی سطر جس دا آغاز #includeسے ہُندا اے پری پروسیسنگ ڈائریکٹو کہلاندی ا‏‏ے۔ اس سطر دا کم ایہ ہُندا اے کہ stdio.h دے تمام متن نو‏‏ں اس سطر تو‏ں تبدیل کر دے جو معیاری انہاں پٹ تے آؤٹ پٹ (input and output) فنکشنز دے ڈکلیریشن اُتے مشتمل ہو، جداں printf۔
دوسری سطر وچ موجود main اس گل دا اشارہ ک‏ے رہیا اے کہ فنکشن دا ناں main ا‏‏ے۔ int دا مطلب ایہ اے کہ مین فنکشن وچ جو ویلیو ریٹرن ہوئے گی اوہ انٹیجر (integer) ہوئے گی۔ تے void دا مطلب ایہ اے کہ ایہ فنکشن کوئی آرگیومنٹ نئيں لے گا۔
افتتاحی کرلئی بریس (curly brace) { اس گل دا اشارہ اے کہ ایتھ‏ے تو‏ں main فنکشن دا آغاز ہو رہیا ا‏‏ے۔ اگلی سطر وچ موجود printf سی بولی د‏‏ی معیاری لائبریری دا اک فنکشن اے، اس فنکشن دا کم ایہ ہُندا اے کہ اگے موجود قوسین وچ واوین دے درمیان وچ درج متن نو‏‏ں سکرین اُتے پرنٹ کرے، مثلا "hello, world"۔ \n اک سکیپ سیکوینس اے جس دے ذریعہ نويں سطر لی جاندی ا‏‏ے۔ قوسین دے بعد سطر دے بالکل آخر وچ موجود کومہ تحت النقطہ ; جسنو‏ں سیمی کولن وی کہندے نيں، لگانے تو‏ں اس گل دا اشارہ مقصود ہُندا اے کہ ایتھ‏ے سٹیٹمنٹ ختم ہو گیا اے ؛ سٹیٹمنٹ دے اختتام اُتے سیمی کولن لگانا لازمی ہُندا اے ورنہ پروگرام نئيں چل سکدا۔
اختتامی کرلئی بریس } اس گل دا اشارہ اے کہ ایتھ‏ے main فنکشن ختم ہو گیا۔ سی 99 تے اس دے بعد دے معیارات وچ main فنکشن اختتامی کرلئی بریس اُتے پہونچنے اُتے 0 د‏‏ی سٹیٹس ریٹرن کردا اے جو فنکشن نو‏‏ں اختتام تک پہونچا دیندا ا‏‏ے۔ return 0 دے اندراج تو‏ں رن ٹائم سسٹم کامیاب ایگزیکیوشن کردا ا‏‏ے۔[۸]

حوالے

سودھو
  1. «Programming Language Popularity». 2009. بایگانی‌شده از اصلی در 2009-01-16. دریافت‌شده در 16 جنوری 2009. نامعلوم پیرامیٹر دا |url-status= نظر انداز کردا (کمک); تاریخ وارد شده در |accessdate= را بررسی کنید (کمک)
  2. «TIOBE Programming Community Index». 2009. بایگانی‌شده از اصلی در 2018-12-25. دریافت‌شده در 6 مئی 2009. نامعلوم پیرامیٹر دا |url-status= نظر انداز کردا (کمک); تاریخ وارد شده در |accessdate= را بررسی کنید (کمک)
  3. Ritchie، Dennis M. (جنوری 1993). «The Development of the C Language». بایگانی‌شده از اصلی در 2015-03-28. دریافت‌شده در 1 جنوری 2008. The scheme of type composition adopted by C owes considerable debt to Algol 68, although it did not, perhaps, emerge in a form that Algol's adherents would approve of. تاریخ وارد شده در |accessdate=،|date= را بررسی کنید (کمک)
  4. WG14 N1570 Committee Draft — اپریل 12, 2011
  5. (2002) C: A Reference Manual, 5th, Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-089592-X.  Contains a BNF grammar for C.
  6. ISO/IEC 9899:201x (ISO C11) Committee Draft
  7. Kernighan, Brian W. (1996). The C Programming Language, 2nd, Prentice Hall, 192, 259. ISBN 7 302 02412 X. 
  8. Klemens, Ben (2013). 21st Century C. O'Reilly Media. ISBN 1-4493-2714-1. 

سانچہ:پروگرامنگ زباناں