کمپیوٹر پروگرامنگ اور C لینگویج

مبشرا لاسلام گوہر ابن شیخ مشتاق

            اس سے پہلے کہ ہم Cلینگویج میں پروگرام لکھنا شروع کریں، آئیے دیکھتے ہیں کہ پروگرامنگ کیا ہے؟Cلینگویج کیا ہے؟ اس کا وجود کیسے آیا؟اور اس کا موازنہ دوسری پروگرامنگ زبانوں سے کس طرح کیا جا سکتا ہے؟اس باب میں ہم مندرجہ بالا موضوعات پرمختصراً روشنی ڈالیں گے۔

ٖکمپیوٹر پروگرامنگ کیا ہے؟

کمپیوٹر پروگرامنگ، کمپیوٹر کو دی جانے والی ہدایات کا نام ہے جس کے ذریعے کمپیوٹر مختلف کام انجام دیتا ہے اور یہ کام یوزر(استعمال کنندہ)کا کوئی خاص مقصد پورا کر تا ہے۔ جو شخص یہ ہدایات پروگرامنگ کی شکل میں لکھتاہے اُسے پروگرامر کہا جاتا ہے۔ کمپیوٹر پروگرام مختلف چیزیں مثلاًconditions,statements,اورfunctionsکا مجموعہ ہوتاہے۔ پروگرام لکھنے کے بعدترتیب دیا جاتا ہے، اس میں موجود غلطیاں دور کی جاتی ہیں۔ اور اسے run یاexecute کیا جاتا ہے۔

کسی بھی پروگرامنگ زبان کے چار اہم پہلو جو اس کی مقبولیت اوراستعمال کر نے کی صلاحیت میں اضافہ کرتے ہیں، مندرجہ ذیل ہیں :

1) ڈاٹا کس طرح محفوظ(store) کر تی ہے۔

2)ڈاٹاکس طرح آپریٹ کرتی ہے۔

3) ان پٹ اور آوٹ پٹ کو کس طرح پورا کر تی ہے اور

4) کیسے آپ کوپروگرام میں دی گئی ہدایات کوتسلسل سے پورا کر نے کا اختیار دیتی ہے۔

Cلینگویج کیا ہے؟

Cایک پروگرامنگ لینگویج ہے جو AT & T کی بل لیبارٹری(امریکہ)میں وجود میں آئی۔ یہ 1972ء کا سال تھا جب اسے کمپیوٹر سائنسداں ’ڈینس ریچی‘ نے منظر عام پر لایا۔ بہت جلد Cلینگویج نے اس زمانے کی مشہور پروگرامنگ زبانوں مثلاً PL/I,FORTRAN کی جگہ لے لی۔ ’ڈینس ریچی‘  بہت حیرت زدہ ہوئے جب انہیں معلوم ہو ا کہ اس وقت کے پروگرامرCلینگویج کو پرانی پروگرامنگ زبانیں مثلاً PL/I,FORTRAN اورجدیدپروگرامنگ زبانیں مثلاًPascal,APLپر ترجیح دیرہے ہیں۔

ممکنہ طور پر Cلینگویج بہت مشہور نظر آتی ہے کیونکہ یہ قابل اعتماد، سادہ اور استعمال میں آسان ہے۔ علاوہ ازیں پرصنعتوں میں جہاں روزآنہ کئی پروگرامنگ زبانیں جنم لیتی ہیں اوردم توڑ دیتی ہیں، Cلینگویج کاچار دہائیوں تک زندہ رہنا اس کے اچھے اور موثر ہو نے کی دلیل ہے۔

Cلینگویج  کے بارے میں رائے عامہ جو کئی بار سنی جاتی ہے کہ’’Cلینگویج  پر پہلے ہی جدید زبانیں جیسےC++,C#اورJavaفوقیت حاصل کر چکی ہیں تو پھرCلینگویج  سیکھنے کا کیا فائدہ؟‘‘میری رائے اس معاملے میں کچھ مختلف ہے۔ اس کی بہت ساری وجوہات ہیں۔ چند وجوہات مندجہ ذیل ہیں۔

1)میرا ماننا ہے کہ کوئی بھی براہِ راست C++,C#اورJavaنہیں سیکھ سکتا۔ چونکہ جدید پروگرامنگ زبانیں سیکھنے کے دوران ہمارا سامنا مختلف چیزوں مثلاً  objects, classes, inhertance, polymorphism, templates, expception handling,references,  وغیرہ سے ہوتا ہے۔ بنیادی معلومات کے بغیر ان پیچیدہ اصطلاحات اور تصوارت کو سمجھنا بہت مشکل ہو تا ہے۔ اسی لیے سب سے پہلے ہمیں Cلینگویج کے ذریعے پروگرامنگ کے بنیادی تصورات کو سمجھنا چاہیے۔ حالانکہ پروگرامنگ سیکھنے کا یہ دو مرحلے والاعمل زیادہ وقت لے گامگرآخر میں آپ اسے بہت ہی زرخیز اور میعاری پائیں گے۔

2)C++,C#اورJava پروگرام کو منظم کرنے کے لیےObject-Oriented Programming(OOP) نامی اصول کا استعمال کر تے ہیں۔ یہ اصول استعمال کر نے کے بہت سارے فوائد ہیں۔ لیکن اس اصول کواستعمال کرتے وقت بھی آپ کوCلینگویج کے بنیادی عناصرپر مہارت اورپکڑلازمی ہے۔

3)آپریٹنگ سیسٹم مثلاًونڈوز، یونکس اور لینکس کے بہت سے حصّے Cلینگویج  میں لکھے گئے ہیں۔ اس کی ایک خاص وجہ ہے وہ یہ کہ جب کبھی بھی کار کر دگی(عملدرآمدکی رفتار) کی بات آتی ہے، Cلینگویج کو کوئی بھی نہیں ہرا سکتا۔ آج بھی جب کوئی بھی آپر یٹنگ سیسٹم کی توسیع کر تا ہے تاکہ نت نئے کمپیوٹرآلات ساتھ موافقت پیدا ہو سکے، اس کے لیے انہیں خاص پروگرام لکھنا ہو تا ہے جسے ڈوایس ڈرائیو رپروگرام (Device Driver Program)کہا جاتاہے۔ یہ پروگرام خصوصی طور سےCلینگویج  میں لکھے جاتے ہیں۔

4)آج کے ترقی یافتہ دور میں جہاں مواصلاتی آلات مثلاً موبائیل فونس اور ٹیبلٹ اسمارٹ سے اسمارٹ تر  ہوتے جارہے ہیں۔ وہی پرروزمرہ میں استعمال ہو نے والے آلات جیسے مائکرویو اون، واشنگ مشین اور ڈیجیٹل کیمرہ بھی بہت آگے نکل چکے ہیں۔ ان سبھی کا راز ایک مائیکروپروسیسر، ایک آپریٹنگ سیسٹم اور ایک خاص پروگرام میں چھپا ہو ا ہے۔ یہ خاص پروگرام نہ صرف تیز رفتار ہو تا ہے بلکہ بہت کم میموری میں کام بھی کر تا ہے۔ آپ کو جان کر حیرت ہو گی کہ یہ خاص پروگرامس ـCلینگویج میں لکھے جاتے ہیں۔ Cلینگویج کے انہی خواص’ وقت‘ اور’ جگہ‘(میموری)کی وجہ سے پروگرامر بھی اسے دوسری پروگرامنگ زبانوں پر ترجیح دیتے ہیں۔

5)آپ نے ایسے بہت سارے پروفیشنل کمپیوٹر ۳ڈی گیمس کھیلے ہونگے جہاں پلیئر(یوزر) کو کسی ایک چیز کو ایک جگہ سے ہٹا کر دوسری جگہ لے جا نا ہو تا ہے۔ مثلاً ایک ایسا گیم جس میں آپ خلائی جہاز میں بیٹھے ہو ئے ہیں اور آپ کو حملہ آور پر گولیاں چلانی ہیں۔ ایسے تمام گیمس کی روح و جان رفتار(speed) ہوتی ہے۔ کہنے کی ضرورت نہیں ہے کہ ایسے گیمس ہرگز مشہور نہیں ہو تے جہاں پر آپ کو خلائی جہاز کو ہٹانے میں وقت لگتا ہے یا پھر گولی چلانے میں۔ پلیئر کی توقعات پرپورا اترنے کے لیے گیم کو تیزی سے یوزر ان پٹ پر ردِ عمل کا اظہار کر نا پڑتا ہے۔ یہی وہ جگہ ہے جہاں پرCلینگویج  دوسری زبانوں پر سبقت لے جا تی ہے۔ بہت سارے مشہور گیم فریم ورک مثلاًDirectX، Cلینگویج  کا استعمال کرکے بنائے گئے ہیں۔

مجھے امید ہے کہ مندرجہ بالا وجوہات آپ کو اس بات پر قائل کر دیں گے کہ کیوں آپCلینگویج کو مختلف پروگرامنگ زبانیں سیکھنے کی جدوجہد میں پہلی اور اہم ترجیح دیں۔

تبصرے بند ہیں۔