سی (پروگرامنگ زبان)
دی سی پروگرامنگ بولی (کتاب)(جو "K&R توں مشہور اے )، سی بولی اُتے پہلی کتاب۔ | |
پیراڈائم | Imperative (procedural)، structured |
---|---|
اشاعت | 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، CPL)، ALGOL 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 توں ) //
سطر دے اختتام تک استعمال کیتے جاندے نيں۔
کیریکٹر سیٹ
سودھوبنیادی سی سورس کیریکٹر سیٹ وچ تھلے لکھے محارف شامل نيں:
- لوور کیس تے اپرکیس حروف:
a
–z
A
–Z
- عشری اعداد:
0
–9
- گرافک کیریکٹرز:
! " # % & ' ( ) * + , - . / : ; <=> ? [ \ ] ^ _ { | } ~
تازہ ترین سی معیار (سی 11) وچ غالباً سی دے سورس ٹیکسٹ وچ یونیکوڈ کیریکٹرز شامل کرنے دی اجازت دتی اے، کسی وی یونیکوڈ کیریکٹر نوں شامل کرنے دے لئی \uDDDD
استعمال کيتا جاسکدا اے، اس وچ DDDD دی بجائے یونیکوڈ کیریکٹر کوڈ درج کيتا جاندا اے، اُتے اس وادھا نوں وڈے پیمانے اُتے استعمال نئيں کيتا جا رہیا اے۔
کلیدی لفظاں
سودھوسی 89 وچ 32 کلیدی لفظاں (keywords) (ایداں دے لفظاں جو مخصوص مفہوم دے حامل نيں) نيں:
|
سی 99 وچ ہور 5 کلیدی لفظاں دا وادھا کيتا گیا:
|
|
|
سی 11 وچ ہور ست کلیدی لفظاں شامل کیتے گئے:[۶]
|
|
|
|
بعد وچ شامل کیتے جانے والے اکثر کلیدی لفظاں انڈرسکور تے کیپیٹل حرف توں شروع ہُندے نيں۔ پہلے سی بولی وچ اک کلیدی لفظ entry
وی شامل سی، لیکن اسنوں کدی استعمال نئيں کيتا گیا؛ لہذا ہن اسنوں بطور کلیدی لفظ سی بولی توں خارج کر دتا گیا اے۔[۷]
آپریٹرز
سودھوسی بولی وچ کثیر تعداد وچ آپریٹرز استعمال ہُندے نيں، آپریٹرز انہاں علامات (symbols) نوں کہیا جاندا اے جو کسی متغیر دی قدر تبدیل کرنے یا کسی وی ڈیٹا نوں بہتر انداز وچ پراسس کرنے وچ پروگرام نوں مدد فراہم کردے نيں، مثلاً کسی دو متغیرات نوں جمع کرنے دے لئی + دی علامت استعمال کيتیاں جاندیاں نيں۔ سی وچ تھلے لکھے آپریٹرز استعمال ہُندے نيں:
- حسابی:
+
، تفریق (ریاضی)، ضرب (ریاضی)،/
،%
- اسائنمنٹ:
=
- آگمنٹڈ اسائنمنٹ:
+=
،-=
،*=
،/=
،%=
،&=
،|=
،^=
،<<=
،>>=
- بٹ وائز لاجک:
~
،&
،|
،^
- بٹ وائز شفٹs:
<<
،>>
- بولین لاجک:
!
،&&
،||
- کنڈیشنل ایوولیوشن:
? :
- ایکوالٹی ٹیسٹنگ:
!=
- کالنگ فنکشنز:
( )
- انکریمنٹ تے ڈیکریمنٹ:
++
،--
- ممبر سیلیکشن:
.
،->
- آبجیکٹ سائز:
sizeof
- آرڈر ریلیشن:
<
،<=
،>
،>=
- ریفرینس تے ڈی ریفرینس:
&
،*
،[ ]
- سیکوینسنگ:
,
- سب ایکسپریشن گروپنگ:
( )
- ٹائپ کنورژن:
(typename)
سی بولی وچ =
آپریٹر کسی وی قدر (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
دے اندراج توں رن ٹائم سسٹم کامیاب ایگزیکیوشن کردا اے۔[۸]
حوالے
سودھو- ↑ «Programming Language Popularity». 2009. بایگانیشده از اصلی در 2009-01-16. دریافتشده در 16 جنوری 2009. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک); تاریخ وارد شده در|accessdate=
را بررسی کنید (کمک) - ↑ «TIOBE Programming Community Index». 2009. بایگانیشده از اصلی در 2018-12-25. دریافتشده در 6 مئی 2009. نامعلوم پیرامیٹر دا
|url-status=
نظر انداز کردا (کمک); تاریخ وارد شده در|accessdate=
را بررسی کنید (کمک) - ↑ 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=
را بررسی کنید (کمک) - ↑ WG14 N1570 Committee Draft — اپریل 12, 2011
- ↑ (2002) C: A Reference Manual, 5th, Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-089592-X. Contains a BNF grammar for C.
- ↑ ISO/IEC 9899:201x (ISO C11) Committee Draft
- ↑ Kernighan, Brian W. (1996). The C Programming Language, 2nd, Prentice Hall, 192, 259. ISBN 7 302 02412 X.
- ↑ Klemens, Ben (2013). 21st Century C. O'Reilly Media. ISBN 1-4493-2714-1.