 اسلام علیکم یہ ہے CS201 انٹردکٹشنٹر پروجرامنگ اور یہ ہے لیکچر No.2 اس لیکچر کے اندر آج ہم شروع کریں گے تھوڑسی سوفر کتیگریز کے بارے میں بات کرنی تھوڑسی سوفر اپلکیشن سوفر اور پھر وہاں سے چلتے چلتے ہم آئیں گے سی لنگوچ کے بارے میں تھوڑسی انٹردکٹن دیں گے آپ کو اور سی لنگوچ کی تھوڑسی ہیسٹری تھوڑسی اولوشن تھوڑسی جسٹیفکیشن کہ ہم اس کوس میں سی کیوں استعمال کر رہے ہیں اس کو استعمال کریں گے اور پھر اس کے بعد اس لیکچر کا زیادہ تر حصہ وہ آپ کی جو development environment آپ نے استعمال کرنی ہے اس کوس کے اندر اس کے اوپر ہم آپ کو سکریم کی مدد سے یا کمپیوٹر کی مدد سے اس کو اوپریٹ کرنا دکھائیں گے اور اسی اوپریشن کے اندر اپنی آپ کا پہلا سی کا پروجرام لکھا جائے گا سو آئے اب شروع کرتے ہیں سوپر کتیگریز کے ساتھ یہ چیزیں نہیں ہونی چاہیے آپ کے لیے یہ چیزیں وہی ہیں جو انٹروڈکٹنٹو کمپیوٹنگ میں آپ کچھ پڑھ چکے ہیں ہم نواملی کمپیوٹر سوپر ایک اور موٹا موٹا دو کتیگریز میں دیبائٹ کرتے ہیں ایک کتیگری ہے سسٹن سوپر اور دوسی کتیگری ہے اپلکیشن سوپر یہ بتاتا چلوں کہ اس کوس کے اندر تو ہم اپلکیشن سوپر ہی لکھ رہے ہوں گے اور دیویلپ کر رہے ہوں گے ہوبفلی جیسے میں پیچھلے لکھ جا میں ذکر کیا تھا کہ آپ اپنی اپنی فیلز اف ایکسپرٹیز دیویلپ کریں گے اور اپنا شوک دیکھیں گے کدھر کو جاتا ہے سو maybe some of you become سسٹن پروجرامرز maybe you are writing very fancy operating سسٹنز of tomorrow اب اگر ہم دیکھیں کہ سسٹن سوپر کرتا کیا ہے سسٹن سوپر primarily اس کا کام ہے کہ جیسے کمپیوٹر کو کنٹرول کرنا اس کے hardware کے ساتھ انٹریکٹ کرنا ہر aspect of operation جو ہے اس کو کنٹرول کرنا اس کی چند let's say کہ جیسے کتیگریز سب کتیگریز بن جاتی ہیں ایک کتیگری آپ اس سے فیملیر ہیں operating system تو operating systems کے بارے میں بھی آپ نے کچھ سونا ہوا ہے کچھ پڑھا ہوا ہے کہ جیسے آپ کے بیسک کمپیوٹر ہے اس کے ہر چیز کو کنٹرول کرنا وہ operating system کا کام ہے ساتھ اور بھی system software کی کتیگریز ہیں ایک کتیگری ہے let's say device drivers ہیں آپ ایک نئی کسم کی چیز لیتے ہیں اس کو اٹیچ کرتے ہیں اس کے ساتھ کمپیوٹر کی بات شاہت کرنے کے لیے ایک آپ کو special software چاہیے ہوتا ہے اس کا نام ہے device driver اور پھر اور ہیں let's take them one at a time operating systems کیاگر examples لیں تو most probably جو آپ operating system استعمال کر رہے ہیں وہ ہے microsoft windows بہت ہی popular operating system لیکن ہر جس یہ اکیلہ نہیں ہے بہت سارے or operating systems ہیں unix کا نام آپ نے سونا ہوگا very popular on the web worldwide web پہ بہت سارے computer ہیں سنکرو یا ہزاروں کے حصاب سے جو کہ unix operating system کیا پہ چلتے ہیں in fact یہ mention کرتا چلوں کہ جو ہمارا virtual university of pakistan کا mail server ہے جس پہ آپ کی ساری email آتی جاتی ہے وہ unix کے ایک flavor لائی نکس جس کو کہتے ہیں اس کے اوپر وہ چلتا ہے اس کا operating system مختلف ہے آپ جو استعمال کر رہے ہیں وہ مختلف ہیں operating system اگر صرف microsoft windows کو لے لیں تو اس کے اندر ہی بڑی variety آتی ہے کئی آپ میں سے ہوں گے وہ بیٹھے ہوں گے windows 98 machine کے اوپر so windows 98 is one type of operating system then some of you might be working on windows 2000 professional so windows 2000 is another type of operating system look and feel تقریبن وہی ہے لیکن اندر سے بہت سیادہ فرق ہے اس کے بعد کہیں پہ آپ کی lab میں شاید کوئی server بھی لگا ہو server جو ہوگا وہ شاید windows 2000 server ہو یا windows nt server ہو so جب nt کہتے ہیں یا 2000 server کہتے ہیں یہ yet another operating system کا example ہے پھر میں اگر اپنی machine کو دیکھوں میری machine پر windows xp دلا ہوا ہے یہ بھی ایک operating system ہے so بہت سارے operating system دنیا میں پائے جاتے ہیں صرف windows نہیں unix ہے mainframes کے ہیں ibm کی machine کے اپنے ہیں os 400 آجاتا ہے son کا آپ نے نام سنا ہوگا ان کا solaris ہے operating system وہ بھی ایک unix کا variant ہے جو ہمارے زیادہ چھوٹی machine ہیں let's say pcs یا work stations اس میں آپ کو microsoft windows ملے گی son کا solaris یا unix کے variants ملے گے اور apple کا macintosh کا جو operating system ہے اس کا نام system ہے اس طرح کی چیزیں آپ کو ملیں گی اب اگر ہم آئیں device drivers کی طرف تو آپ نے اپنے computer کے ساتھ دیکھا ہوگا کہ جی نام طور پہ ایک monitor تو لگائی ہوا ہے ایک keyboard لگا ہوا ایک mouse لگا ہوا ہے اگر آپ جا کے ان کی properties دیکھیں تو آپ کو پتہ چلے گا کہ جی جو operating system ان کو کنٹرول کر رہا ہے اس کو بھی معلوم ہے کہ جی monitor کیس کسم کا ہے mouse کیس کسم کا ہے اور ان کو چلانے کے لیے اس نے ایک special piece of system software load کر رکھا ہے وہ software ہے let's say device driver یہ صرف keyboard اور mouse تک مہدود نہیں ہے کئی computers کے ساتھ آپ نے scanner دیکھا ہوگا scanner کے ساتھ بھی driver آتا ہے وہ load کرنا پڑتا ہے اگر ہمارے computer میں let's say cd writer لگا ہوا تو cd writer جو ہے اس کا بھی اپنا driver آتا ہے and so on so یہ device drivers چھوٹے چھوٹے pieces of system software ہیں جو کہ operating system اپنا حصہ بنا لیتا ہے ان کو اپنے پاس load کر لیتا ہے لیکن استعمال کرتا ہے main computer unit کی communications کے لیے with these devices چھوٹی سی interesting بات بتاتا چلنو اگر آپ scanner پے کبھی آئیں گے تو جو عام طور پہ ہمیں scanners ملتے ہیں اس میں آپ دیکھیں کیکی جی لکھا ہوگا train driver t-w-a-i-n یہ نام تو خیر اس دنیا میں بہت سارے ہیں جارگن بھی بڑی ہے لیکن train is an interesting ایکرونیم تکنولوجی without an interesting نیم یعنی scanner بنا گیا ان کا ایک interface بنا گیا اس کسم کی cable ہوگی یہ computer کے ساتھ کنیکٹ ہوگی لیکن اس کا نام کوئی نہیں بنا تو پھر نام کے لیے انہوں نے train drivers لکھنے شروع کر دیئے تو device drivers بھی کوئی چیز ہے very important component اس کے بعد ہمارے پاس کچھ utility software آتا ہے utility software میں again شاید آپ کی مشین پر آپ نوٹس کریں کہ disk compression ایک utility چل رہی ہے یعنی جب بھی آپ کوئی file لکھ کے save کرنا چاہتے ہیں disk کے اوپر تو وہ اس کا size compress ہوکے disk کے اوپر لکھا جاتا ہے فائدہ کیا ہوتا ہے اسی disk بھی زیادہ چیزیں سٹور کی جا سکتی ہیں جب آپ اس کو extract کرتے ہیں یا واپس بلاتے ہیں file کو تو expand ہوکے normal form میں آپ کو ملتی ہے disk compression utilities یہ بھی system software کا حصہ بن جاتی ہیں disk defragmenting یہ بھی ایک interesting چیز ہے شاید آپ نے computer hardware میں تھوڑا سا disks کے بارے میں سنا ہوگا یا دیکھا بھی ہوگا آپ کا اپنا interest ہے تو آپ نے کھولنے کی کوشش کی ہوگی نہ کھولیے گا پھر نہیں چلے گی disk اگر hard disk کی ہم بات کر رہیں لیکن hard disk وہ ایک let's say disk ہے goal high speed پہ گھوم رہی ہے اس کے اوپر data لکھا جا رہے اس سے پڑھا جا رہے جیسے جیسے کمال چلتا جاتا ہے in disks تو data لکھتے ہوئے it's a read write medium so that means your data مٹایا بھی جا سکتا ہے اب دیکھیں ہوتا کیا ہے آپ نے ایک بڑی ساری file لکھی اس نے disk پہ کچھ جگے لے لی آپ واپس آئے آپ نے 10 چھوٹی file لکھی پھر آپ نے ایک اور بڑی file لکھ دی تو اب disk کا area consume ہوتا جا رہا ہے بچ میں آئے آپ نے ایک چھوٹی file ڈلیٹ کر دی کیا ہوگا وہاں پہ چھوٹا سا حصہ جو ہے وہ unused پڑا ہوگا یہ نہیں available to be written on again as time goes on disk کے یہ تکڑے جو ہیں اسٹمال شدہ اور blank یا empty جن پہ آپ لکھ سکتے ہیں یہ پورے surface کے اوپر تکڑے تکڑے بنا ہوتے ہیں اس کو ہم عام اسطلاق اندر کہتے ہیں کہ disk fragment ہو گئی ہے اس کا یہ نہیں مطلب کہ disk کے تکڑے تکڑے ہو گئے but disk کا جو area ہے جس پہ لکھا جاتا ہے جس کابی کا کاغرز ہے اس کاغرز کے اوپر اگر آپ پینسل سے لکھیں اور کاغرز بھر جا ہے تو درمیانوالی دو لائنے مٹا دیں پھر ایک اور لائن مٹا دیں تو کافی سارے blank spaces ڈیچ میں بیچ میں بن جاتے ہیں تو paper becomes fragmented اسی طریقے سے disk becomes fragmented اس fragmentation کو اگر دور کر لیا جائے تو آپ کے ساحتم کی performance بہتر ہو جاتی ہے programs جلدی پڑے جاتے ہیں دیتا جلدی لکھا جاتا ہے اس کے لیے بھی سرطن یوٹلیٹی سوفیرز بنائے جاتے ہیں آپ کو ملتے بھی ہیں they are called disk defragmentors so وہ بھی یا سسٹم سوفیر کا حصہ بن جاتے ہیں اس کو ہم سسٹم سوفیر کہتے ہیں اس کے علاوہ اور کسن کی یوٹلیٹیز ہیں جیسے ہمارے جو ہمارے از for programmers tools of the trade بنتے ہیں compilers interpreters ویرہ ویرہ آج ہم ایک سپیسفک کمپائلر یا انوائرمنٹ کی بات کریں گے یہ بھی سسٹم سوفیر گنا جاتا ہے اب یہ جو ساری سسٹم سوفیر کی چیزیں ہیں یہ probably جیسے میں نے پہلے ذکر کیا کری آپ down the road when you are professional and working in the industry you might be developing these programs but by and large the demand and the requirement is for writing application software so application software کیا ہے بھئی وہی جن کی ہم بات کرتے رہے ہیں کہ جی ایک accounting کا program ہے ایک payroll کا program ہے ایک inventory control سسٹم آپ لکھ رہے ہیں آپ کوئی guidance سسٹم لکھ رہے ہیں آپ کوئی maybe plane کا کیا کہنا چاہیے جوگریفکل positioning سسٹم کے ساتھ interact کرنے والا program لکھ رہے ہیں آج کا لگر دیکھیں تو گاریوں میں ایک بڑی fancy کسم کی دوائیس آنی شروع ہو گئی ہے پاکستان میں ابھی تھوڑی سی کم ہے آ جائے گی وہ جو gps سیٹلائٹس بہر بیٹھے ہیں وہ اپنا signal بھیجتے رہتے ہیں تو گاری آپ کو کار کے اندر بیٹھے بے بتا سکتے کہ جی پرسائس لی اس وقت اب کھاں پہ ہیں تھوڑی سی اس کے اندر programming شامل کریں تھوڑا سا survey کر کے نکشہ ڈال دیں گاری کو کہ دیں کہ جی میں نے airport جانا ہے وہ خود آپ کو بتاتی جائے گی کہ جی یہاں سے 10 گز کے بعد right کو مڑیں سوگز آگے چاہ کے left مڑیں اور آپ کو منجل تک پہنچا دے گی these are all very interesting examples of application software so all the way from مڑین مڑین meaning you everyday applications business کی ہوتی ہیں all the way to something very fancy like a gps سسٹن یہ سارے application software ہیں اس کو اس میں obviously زیادہ تر ہم application software بنا رہے ہوں گے اب ہم تھوڑی سی بات کرتے ہیں see language کی see language جو ہے وہ بیل لیبز میں اجاد ہوئی in the late 60s early 70s bcpl اور b یہ دو مختلف languages تھی جو وہاں پہ ہی develop ہو کے استعمال ہو رہیں تھی for writing various system software even operating systems تو دینس ریچی ایک صاحب تھے انہوں نے ان لنگوجز کو let's say ان کا good salient features لے کے ایک general purpose programming language the see programming language یہ develop کی یہ see language جو ہے وہاں پہ اسی کے through you next operating system لکھا گیا اب تھوڑا سہ complicated ہو جاتی ہے بات کے جی see کا compiler جو ہے وہ بھی عام طور پیں see میں ہی لکھا جاتا ہے یہ اتنی powerful language ہے جنہاں اس کی most system utilities in vogue today operating systems and other system software they are also written in see so it's a very very powerful language جیسے آپ کو پتا ہے ہر کسم کی power کے ساتھ کچھ responsibilities بھی آتی ہیں وہ responsibilities as programmers you will have to live up to problem کیا ہے see کی جہاں پہ power ہے وہ تقریباں کہ لیں کہ computer کے حوالے سے تقریباں unlimited power آپ چاہیں تو computer کی ایسا program کر دیں کہ اس کی کوئی device off کر دیں کوئی device on کر دیں hard disk کے ساتھ آپ کھیل سکتے ہیں پریفرل کے ساتھ کھیل سکتے ہیں but these are tricky things you have to be very careful in programming see کے ساتھ آپ خلط program لکھنا جو کے چلتے ہوئے computer کو بٹھا دے بہت آسان ہے so we have to be careful all the time we have to be careful so then is richie basically wrote the see language which was then used to develop the unix operating system and scientific community کے اندر جو بڑی university's وگیرہ ہیں اس کے اندر دونوں unix operating system or see language وہ اتنے زیادہ popular ہو گئے ایک دم آگی طرح پہلے ساری community نے ان کو اپنا لیا اور ہر جگہ پہ بات ہو رہی تھی see language and unix operating system وہ جب میں سکول میں پڑھتا تھا یہ وہی زمانہ تھا تو میں نے بھی see کے اوپر ہاتھ کھولا اب بیکوز یہ ساری اس community میں پھیل گئی تو جہاں پہاہی وی ریسارچہ کام کر رہا ہوں تو وہ اپنے تھوڑے سی بیچ میں additions کرنے شروع کر دیتے ہیں وہ additions ہوتی گئی اور see کے variants بننے شروع ہو گئے یہ والی see کنسی ہے جی فلانی university کی see ہے اس میں دو نئے features ہیں اس میں تین نئے feature ہے ایسا چاہت سے خیچڑی see پکٹی شروع ہو گئی جو ہماری industry میں تقریباً طریقہ ہے evolution کا وہ طریقہ یہ ہے کہ جی پہلے تقریب ایک چیز جو ہے نا وہ ایک let's say popularity گین کر لیتی ہیں اور popularity کے بعد اس کو ایک اسم کا standard تصور کرنے لگ پڑتے ہیں ہم standard بننے کے لیے پھر کچھ خاص committees بیٹھتی ہیں اور وہ کہتے ہیں کہ جناب اس کے کون کون سے features ہیں جن کو ہم standard کے اندر لکھ سکتے ہیں جناب یہ اس طرح سے اس کا behavior ہوگا تو see کے اوپر بھی ایک standard's committee بیٹھی اور early 70's کے اندر see کا standard you have publish ہو گیا وہ تھا n c c a n s i can american national standard's institute کی see language جو میں کتاب کا ذکر کیا تھا کہ the see programming language وہ kerningan brine kerningan اور denis richie نے لکھی ہے اور وہ ہی بات کے جی جب language کو author کوئی لکھ رہا ہوتا بات تو مزا بھی آتے پڑھنے کا سمجھ بھی آتی کہ جس کا design کس طرح سے کیا گیا اور اس میں کیا features ہیں see language کی power میں تھوڑی سے آپ پہلے ذکر کر چکا ہوں کہ جناب اس کے ساتھ آپ system software بھی لکھ سکتے ہیں اور application software بھی لکھ سکتے ہیں اور آرچال کا بہت زیادہ code جو ہے وہ see میں لکھا جا رہا ہے یا see میں لکھا جا رہا تھا تھا اس باستے کہ جی evolution تو ہوتی گئی آپ کو پتا ہے ہماری industry جو ہے computer science یا information technology یہ بہت تیز جلتی ہے so اس میں نئی نئی اجادات ہوتی گئی نئی features آتے گئی نئی languages آتی گئی see plus plus ایمیجٹ لی اس کے فارن باد آئی بیانس توو سٹرپ ایک اور programmer ہیں بڑے کمپلسٹ ہیں انہوں نے see plus plus لکھی جس کو پہلے اس کا نام پڑا see with objects پھر eventually اس کا نام see plus plus آگیا see plus plus ہے وہ object oriented language ہے لیکن اس کے اندر see کی تمام power موجود ہے تو ہم جو development environment استعمال کریں گے اس کوس کے اندر وہ actually see plus plus کی environment ہے یعنی اس میں objects method سب کچھ موجود ہے لیکن ہم اس کوس کے اندر religiously اس چیز کو avoid کریں گے ہم object oriented programming کو touch نہیں کریں گے اخیر پہ جاکے اس کا flavor ضرور آپ کو دے دیں گے لیکن اس کے لیے علیدہ کوس ہے سو see کے بعد see plus plus آگیا اس کے بعد because these languages were very powerful and they were capable of not running properly if or rather the programs could cause problems اگر کوئی اناڈی programmer ان کو لکھنے لگ بڑے تو پھر یہ feel ہوا کہ جی آپ ساتھ ہی ساتھ آپ دیکھے کہ evolution کیا ہوری ہے کہ the internet آگیا worldwide web آگئی اب آپ کو ایسی ایک لینگوٹ چاہیے تھی جو کہ کام زیادہ تر کر سکے لیکن اس کی دیواریں ذرہ پکی کر دو تاکہ وہ in advert and few چیزیں جو ہم نے design میں نہیں رکھی ہوئی وہ نہ ہو پائیں سو اس evolution کا جو نتیجہ تھا that was the Java programming language جاوہ جو ہے نام نیا ہے آپ نے جاوہ script بھی دیکھلی وہ بھی ویرینٹ ہے یہ ساری اگر آپ دیکھیں گے تو جب آپ see programming چورو کریں گے آپ کہیں گے یہ تو see ہی ہے سو see ہی ہی لگتی ہے کہ جاوہ میں لکھاوہ کوڑ ہو یا جاوہ script میں لکھاوہ کوڑ ہو یا c++ میں لکھا ہو so very very similar the syntax is almost the same except جاوہ کے اندر تھوڑی سی چیزیں add کی اور بہت ساری چیزیں subtract کی جن سے حامفل side effects جو ہیں programs کے وہ eliminate ہو سکیں so see in that sense is very powerful and very capable and a mature language this basically is the reason that we chose see as the vehicle for this course see plus plus کی environment جو ہے جس کی طرح ہم یہ see programming کریں گے وہ اس پاس دیکھی کہ اس کو تھوڑا سم explain کرتا چلوں گے جیسے ہم اس میں جائیں گے کہ کچھ ایریہ ہیں جو کہ conceptually understand کرنے آسان رہتے ہیں جیسے screen پر output کیا ہے آپ کا کوئی program کو output اگر دینا چاہتا ہے تو see plus plus میں بڑا آسان ہے میں آپ کو ایک command بتا دوں گا آپ کا کام شروع ہو جائے گا see میں وہی کام کرنے کیلئے پہلے مجے اتنی ساری چیزیں explain کرنی پڑھیں گی یا آپ کو on faith لینی پڑھیں گی تو on faith ابھی تو آپ لیں گے کچھ چیزیں آگے چلے آپ ان کو سمجھتے جائیں گے اب we should take a look at کی جی ہمارے tools of the trade کیا ہے tools of the trade meaning کی جی دیکھیں ایک تو ہم as programmers ہم اپنی کوئی capabilities بنا رہے ہیں develop کر رہے ہیں those are the tools that we will use in our lives down the road لیکن to develop these capabilities ہمیں کچھ software tools already چاہیں سو دیکھیں ہمارا یہ تقریب ان tools وہی ہیں جیسے میں ابھی بات کروں گا کی جی program کا life cycle ہوتا کہ یہ program development کا life cycle کیا ہے وہ tools ان کے ساتھ چلتے ہیں سب سے پہلے program لکھنے کے لیے آپ کو کوئی ایسا tool چاہیے جسے آپ کو تاک کر سکیں computer کے اندر simple tool ہم اس کو editor کہتے ہیں can you use microsoft word for example a word processing program to type your code the answer is yes you can لیکن یہ خیال رکھیں کہ ایک word processor جو ہے وہ اتنا بڑا ایک monster ہے اس کے اندر bold کرنا اور highlight کرنا اور underline کرنا اور بہتلے fonts اور ان کے sizes رنگ روگن یہ سب چیزیں موجود ہیں جب آپ فائل سیف کرتے ہیں تو یہ ساری جو میں اس کو رنگ روگن کہہ رہا ہوں یہ چیزیں فائل کے ساتھ سیف ہو جاتی ہیں لہذا جو فائل دسک پر پڑی ہوئی ہے وہ وہ چیز نہیں ہے جو آپ نے کیبوڈ سے تاک کی تھی اس کے اندر اور بہت چیزیں موجود ہیں جب ہم پرگرمنگ کرنے لگتے ہیں تو ہمیں وہ چیزیں نہیں چاہیے ہوتی ہمیں simple text چاہیے ہوتا ہے جو کہ program کے الفاظ ہیں program کی commands ہیں program کا حصہ ہے اس باستے بھی normally differentiate کہ یہ word processing اور چیز ہے editor اور چیز ہے یہ text editors کہلاتے ہیں جو simple language آپ جو تاک کریں صرف اسی کو دسک پر سیف کریں so editor ہمیں چاہیے اس کے بعد we also need some kind of a compiler remember کہ یہ جو ہماری programming languages and sees one of them یہ they are English like یعنی وہی alphabet you have کیبوڈ سے تاک کرتے ہیں اس سے ہم programs لکھتے ہیں اور وہ ہم پر سکتے ہیں as human beings اور ہم اس کو سمجھ سکتے ہیں لیکن جیسا آپ کو پہلے بتایا گیا تھا computer اس لنگج کو نہیں سمجھتا پہلے اس کو traslate کرنا پڑتا ہے کسی طریقے سے into the binary language and the electrical impulses جو کہ computer جو ہے وہ understand کر سکے اور execute کر سکیں اس کان کے لیے جو tools استعمال ہوتے ہیں وہ موٹی موٹی دو کتیگریز ہے ان کی ایک ہے interpreter اور ایک ہے compiler یہ بھی آپ کو بتایا گیا تھا ان دونوں کا فرق جو ہے interpreter جو ہے وہ program کو لیکے line by line execute کرتا ہے تو اگر آپ نے 20 لینوں کا program لکھا ہوا ہے ایک interpreter پہلے پہلی line لے گا اس کو انگریزی کی نما جو language let's say see اس کو traslate کرے گا into machine code اور computer اس کو execute کرے گا اور execution کے بعد وہ دوسی line پہ جائے گا اس کا فائدہ یہ ہوتا ہے کہ ہم program جو ہے اس کی جو analysis کر رہے ہیں یا debugging کر رہے ہیں یا اس میں سے غلطیہ نکال رہے ہیں وہ عاستہ عاستہ عاستہ ہم دیک دیکھیں ان کو نکال سکتے ہیں problem یہ ہے کہ جب جب ہمارا program بڑا ہو جاتا ہے تو جناب یہ اس طرح سے اس کو operate کرنا زرہ سا مشکل ہو جاتا ہے اور interpreter جو ہیں یہ پہلے basic language کے ساتھ آئے تھے اور وہاں پہ تو بہت popular لہے لیکن interpreter کے اندر ایک built in کا بہت یہ ہے کہ پوری environment کے اندر آپ کا program چل رہا ہے تو پیچھے operating system اس کے آگے interpreter اس کے آگے آپ کا program so programs cannot run with the same speed and efficiency with which compiled programs can run the other issue that comes in is کیوںکہ interpreter line by line code کو execute کرتا ہے وہ پوری تصویر نہیں حاصل کرتا ہے یہ پورا program کیا کر رہا ہے یا اگلی line پے کیا آئے گا as a result it cannot optimize یہ ہم جب compilers کی تھوڑی بات کریں گے اور actually تو جب آپ compilers کا course پڑیں گے تو پھر آپ کو optimization کے بارے میں بہت بتایا جائے گا کہ جی program آپ نے تو لکھ دیا آپ computer اس کو efficient لی یا تیز طریقے سے execute کرنے کے لیے بیچھے tricks کیا کرتا ہے وہ سارا compiler تھیری میں آئے گا so interpreters are slow but they are convenient and they can quickly allow you to debug the code اب آجیں compilers کی طرف compiler is the second way of translating a program from English like languages جوکہ ہم پر سکتے ہیں اور سمجھ سکتے ہیں into a language that the computer can understand. compiler اور interpreter کا فرق ہے کہ compiler پہلے پورے program کو اٹھا کے ایک وقت میں اس کو machine language میں translate کر دیتا ہے اب pluses and minuses کیا ہیں compiler کے ساتھ جب ہم بات کر رہے ہوتے ہیں وہ کیونکہ پورے program کو translate کرنے کی کوشش کرتا ہے جہاں پے گلتی آئے گی جہاں پے syntax error آئے گا وہ compiler وہی رکھ جائے گا کوئی machine code generate نہیں کرے گا interpreter جو ہے وہ پہلے ساری لائنے execute کرتا جائے گا اور جس لائن پے گلتی ہوگی وہاں آ کے رکھ جائے گا so compiler جو ہے اس کو ایک correct syntactically correct program چاہیے before it can produce machine code دیکھیں again i am highlighting کہ syntactically correct logicalی correct یہ بھی میں نے بات نہیں کی وہ compiler نی determine کر سکتا ہے کہ یہ آپ کو logic کیک ہے کہ نہیں وہ تو آپ خود test کریں گے اور run کریں گے تو پھر پتا چاہے گا so interpreters بھی ہیں compiler بھی ہیں ہم compiler استعمال کریں گے اس کے بعد an important tool and a programmer better know how to use that tool وہ tool ہے debugging کے لیے بگز کا تو اب تو آپ کو پتا ہے وہ computer errors یا logical flaws یا syntax errors جو ہمارے سے program میں رہ جاتے ہیں اور ان کو ہم کی کرنے کے لیے جو action پر فام کرتے ہیں اس کو ہم debugging کہتے ہیں تو special programs بنائے گئے ہیں اور آپ کی development environment ہوگی جو آپ استعمال کریں گے اس میں بھی debugger موجود ہے جو آپ کو a allow کرتا ہے ہے کہ جی program کو چلایا جائے کسی ایک جگے پر اس کو روک لیا جائے اور پھر دیکھا جائے کہ جی جو ہمارے variables بیچ میں تھے x تھا y تھا z تھا بندے کا نام تھا اس کی salary تھی اچھا تھا ان کی اس وقت computer کی میمری میں values کیا ہیں اس value کو انٹریکٹی بھی چینج کر لیں اس کو آگے پیچھے کر لیں اور پھر باقی کا program چلا لیں so it's a very very powerful tool obviously وہی بات کہ جی powerful ہے تو complex بھی ہوگا so تھوڑا سا سیکھنے کی ضرورت پڑتی ہے compiler جو ہے وہ syntax errors نکال دے گا logic errors کو trace کرنے کے لیے آپ کو debugger کی ضرورت پڑتی ہے اب ہم نے program لکھ لیا compile کر لیا چیک ہے اور hopefully سمجھا کہ جی یہ logic لی بھی کر ایک تھے کیا program جو ہم نے لکھا وہ اکیلہ چل سکتا ہے کئی دفعا یہ اکیلہ نہیں چل سکتا بہت ساری اس کے اندر اور routine یا functions یا sub programs کی ضرورت ہوتی ہے جو کہ computer ان کو اس program کے ساتھ ایک کتھا کرے تو پھر ایک سیکھے گا یہ جو باقی routine سیں جن کو ہم ایکٹھا کر کے اپنے program کے ساتھ بنا کے executable بناتے ہیں اس process کو ہم linking کہتے ہیں so that is pretty obvious کہ دی لنک کرنا programs کو جہا ہے وہ ہمارا لکھا با program اپنی support routine کے ساتھ لنک کر کے ایک چلنے والا یا executable program بنتا ہے finally اب یہ program جو ہے executable یہ disk پہ بیٹھا ہوتا ہے اس کو execute کرنے کے لیے پہلے تو تھا executable بنانے کے لیے یا executable تیار کرنے کے لیے linking کی اب اس کو execute کرنے کے لیے پہلے اس کو memory میں لانا ہے اور memory میں لاکے خاص جگہ پہلجا کے پھر processor کو کہنا ہے کہ یہ پہلی instruction ہے یہاں سے کام شروع کر دو وہ process ہے وہ loading کہلاتا ہے so linker or loader یہ سارے آپ کی programming environment کا حصہ بن جاتے ہیں اور یہ system software category میں آتے ہیں of course ہم زندگی کچھ اپنی اسان بھی بنانا چاہتے ہیں کچھ چیزیں انوزیبل ہو جاتی ہمارے دی ہے اگر unix میں بیٹھے ہم کام کریں تو صرف program کا نام command front کے اوپر آپ نے دے دیا enter the bio وہ program چلنا چاہتا ہے یعنی loader پیچھے چھپ کر کے چل گیا آپ کو کوئی loader بلانے کی ضرورت نہیں رہی ہے اگر younix میں بیٹھے ہم آج کل کے زمانے میں کیونکہ ایک اور چیز آگئی ہے اس کو ہم کہتے ہیں integrated development environment یہ جو ہیں environment ان کو ہم ڈی for short integrated development environment وہ کہتے ہیں ڈی جو ہیں ان کے اندر editor بھی موجود ہے compiler بھی موجود ہے ڈی برگر بھی موجود ہے linker بھی موجود ہے loader بھی موجود ہے سارہ کچھ ایک انٹنٹ face کے تحت آپ کو محیہ کر دیا جاتا ہے وہی بات فائدہ بھی ہے نقصان بھی ہے فادہ یہ ہے کہ جی کوئی کمان جیاد کرنے کی ضرورت نہیں ہے program لکھو بیچ میں سے کمپائل کرو چلالو نقصان یہ ہے typically environment بڑی complex ہو جاتی ہے یعنی اتنے سارے buttons ہوتے ہیں menu items ہوتے ہیں بہت چیزیں سیکھنے کی ضرورت ہوتی ہے ہم نے جو آپ کے لیے environment choose کی ہے وہ ایک اسی طرح کی ہی integrated development environment ہے choose کرنے کا وجہ یہ تھی کہ جی آپ کیونکہ جب real world میں جائیں گے as professional programmers 99 out of 100 times آپ کو integrated development environment میں کام کرنا پڑے گا so کیونہ ہم پہلے دن سے ہی ایسی environment میں کام کرنا شروع کر دیں ساتھ یہ development environment جو آپ کو ایسی طرح کی جاری ہے یہ public domain software ہے so you can easily download it from the internet and install it on any computer you have اس طریقے سے آپ گھر پے کام کر رہے ہیں آپ نے virtual campus میں کام کر رہے ہیں کہی پے بھی کام کر سکتے ہیں کر رہے ہیں آپ legally اس کو استعمال کر سکتے ہیں اور یہ کافی powerful environment ہے اب ایک چیز کو ہم دیکھتے ہیں کہ جناب یہ پورا process you know program کا لکھنے کا اور پھر چلانے کا یہ کیسے آگے پیچے چلتا ہے اور کہاں پے یہ جو فائلیں ہیں یہ کہاں سٹور کی جاتی ہیں اور ان کو ہم استعمال کیسے کرتے ہیں سب سے پہلہ کام جو ہے وہ ہے program کا لکھنا وہ ڈیٹر ہم استعمال کر دیں so again آپ کی ڈی کے اندر ڈیٹر built-in ہے آپ اس کے اندر ہی کام کریں گے جب ڈیٹر کا کام ختم ہوتا ہے یہ نہیں آپ نے program ڈیٹ کر لیا تو آپ اس کو save کر دیتے ہیں جی کے نا save means اس کو disk پے لکھ دیا جیسے آپ کو معلوم ہے جب آپ ڈیٹ کر رہے ہوتے ہیں یہ ہی سارا آپ کا کام ram یا random access memory میں موجود ہوتا ہے ram جو ہے وہ volatile ہے اگر بیجلی چلی جائے تو آپ کا کام زایا ہو جائے گا so چھوٹیسی کہانی وہ ہی بات کے جب ہم user interface اور friendliness کی بات کر رہے تھے اور users کی wisdom کی بات کر رہے تھے you know the secretary again start typing a ڈیٹر پورا لیٹر ڈیٹ کر کے ہی ہے کہ ہاں اب میں computer بند کر دوں تو میرا کام save ہو گیا right and you have to shout and say hey wait wait wait پہلے اس کو disk کے اوپر لکھ لو پھر یہ save ہوگا otherwise computer off ڈیا تو کام زایا ہو جائے گا so back to programming جب ہم نے program لکھا تو اس کو پہلا کام کریں save کر دیں ہماری environment hostile ہے best ڈیگے پی بھی چلے جائے بیجلی فیل ہو جاتی ہے so کام کرتے کرتے occasionally save کر دینا ایک اچھی عادت ہے ڈیٹر کے بعد ایک اور کام آتا ہے اس کے اندر بہت ہے pre-processing کا pre-processing unfortunately ایک تھوڑا سا complex topic ہے so ہم استعمال تو اس کو آج بھی کریں گے اور پہلے دن سے کرنا چروے کر دیں گے لیکن اس کے بارے میں بات ہم course کے اخیر پہ جاکے کریں گے کیا اس میں اور کیا کچھ کہا جا سکتا ہے تھوڑا ساک کو ہنچ دیتا چاہلوں pre-processor خاص طور پہ c language میں ایسی ایک فیصلیٹی ہے جس کے اتہت آپ کا c program بلکل یہ بھی ہو سکتا ہے کہ وہ نظم لکھیں آپ ایک poem لکھیں جو پرنے والوں کو poem ہی نظر آئے لیکن چلائیں تو وہ actual program ہو شاید وہ کوئی payroll ہی کالکلیٹ کیوں نہ کر رہا ہو اس کے بعد آپ نے program لکھا اس کو save کر دیا وہ pre-processor سے گزرہ گزرنے کے لیے disc سے اٹھا میمری میں آیا pre-process ہوا اس کے ساتھ اور چیزیں ایڈ ہوئی کمپائلر میں چلا گیا کمپائلر نے جو اپنی output فائل بنائی disc پی لکھ دی سو ساتھ ساتھ کام سیف ہوتا جا رہا ہے کمپائلر کی output فائل جو ہے disc سے اٹھائی وہ linker نے استعمال کی linker نے اس کے اندر جو library routine سیں جو کہ اس کو چلنے کے لیے ضرورت ہے ان کو ان میں شامل کیا اور شامل کر کے ایک executable فائل ہے وہ بھی disc پی لکھ دی تو آپ کے development environment میں کچھ جو ہے وہ steps کو ہیڈ کرے گی لیکن کچھ جگہ پہ آپ سے پوچھے گی یہ کہاں لکھنا ہے program اس کا نام کیا ہے executable فائل کا نام کیا ہوگا سو وہ آپ disc پے سیف کرتے جائیں گے اور اس کے بعد اس کو execute کرنا یا debug کرنا وہ بھی اسی process کا حصہ ہے وہ ڈی کے through ہی آپ کو ملے گا آج کا جو باقی کا لیکچر ہے وہ اب ہم کمپیوٹر پر بیٹھ کے لیب میں اس کا استعمال کریں گے اور یہی آپ کو جو آپ کی development environment ہے اس کو introduce کریں گے اور اس کے rudiment three steps آپ کو بتائیں گے کیسے فائل بنانی ہے کیسے program لکھنا ہے کیسے اس کو save کرنا ہے کیسے compile کرنا ہے کیسے چلانا ہے یہ ساری چیزیں ہم وہاں پے discover کریں گے ساتھ ساتھ ہم ایک important cheese کبھی ذکر کریں گے وہ ہے command prompt کا کہ آج کل آپ کے سارے کمپیوٹر جو ہے وہ گر microsoft windows پہ چل رہے ہیں تو وہی graphical user interface استعمال کر رہے ہیں سو موز ہے اور کیبوٹ ہے لیکن آپ درک کی کمپیوٹر کو command نہیں لکھتے ہاں ایک جگہ پے command بھی لکھ سکتے ہیں وہ run کے start اور run کے ساتھ لیکن ہم آپ بات کر رہے ہیں جو پرانے زمانے والی command prompt تھی کہ جی windows کے اندر سے ہی آپ ایک دبا کھول لیتے ہیں کالا سکرین آجاتا ہے اس کے اندر see یا کچھ ایسی چیز لکھی ہوتی اور وہاں پے آپ commands دے سکتے ہیں کیونکہ ہم see language اور اس کی programming پر زور لگان چاہتے ہیں اس وقت ہم graphical interface or graphics programming کے بارے میں زیادہ attention پے نہیں کریں گے سو most of your programs if not all of your programs will be running from the command prompt so it will be necessary for you to learn something about how to type things at the command prompt it's very simple it's easier than trying to master a complex interface so now let us stop here for the moment and switch to the lab session جہاں پے ہم dev c++ which is your development environment and the computer itself اس کی screen کی مدد سے آپ کو باقی steps کے بارے میں introduction دے آئے تو اب ہم اپنے development environment یعنی dev c++ کے بارے میں بات کرتے ہیں اور compute پے دیکھتے ہیں اس کی شکل صورت کیا ہے اور اس کو استعمال کس طرح کیا جاتا ہے dev c++ ہے کیا ایک فلی فیچرد گرافکہ کل انٹگریٹیڈ دیویلپنٹ انوارنمنٹ ہے اور اس کے ذریعے ہم ونڈوز پروگرمز بھی بنا سکتے ہیں یا console بیست c++ پروگرمز بھی بنا سکتے ہیں یہ بلڈ سیڈ سوفٹ فیر ایک کمپنی ہے وہ یہ اس کو پبلش کرتے ہیں لیکن یہ ہے فریویر ان اتھویرز اس کے لیسنس کیلئے آپ کو پے نہیں کرنا پڑتا لیکن جو کوپی رہیٹ سوفٹ فیر ہے اور کوپی رہیٹ کا مطلب یہ ہے کہ جی آپ اس میں تبیلی نہیں کر سکتے اوٹھر کی اجازت کے باکر تو شروع یہاں سے کرتے ہیں کہ پہلے اس کو اپنے کمپیوٹر پر انسٹول کر کے دیکھتے ہیں کہ جی انسٹولیشن کیسطرا کی جاتی ہے آپ کو انسٹول کرنے کی ضرورت نہیں ہوگی کیونکہ آپ کے پیسیز کے اوپر یہ پری انسٹولٹ آپ کو ملے گا آپ کے کمپس کے اندر ہاں اگر آپ گھر پر انسٹول کرنا چاہیں تو آپ بلڈسیڈ سوفٹور کی سائٹ پہ چڑے جائیں وہاں سے دانلوٹ کر کے اپنے کمپیوٹر کے اوپر بھی انسٹول کر سکتے ہیں اس وقت میں نے کیا یہ ہے کہ یہ ایک فولڈر جس کا نام ڈیب سی پی پی ہے ڈیسٹوک پے رکھا ہوا ہے اس کے اندر ان انسٹولڈ جو ہے ہمارے پاس جو ڈیب سی پی پی ہے وہ ان انسٹولٹ پڑا ہوا ہے تو اس کو کھوڑتے ہیں اس کو رائیٹ کھر کے میں ایکسپلور کر لیتا ہوں ان کا نام بھی وہ ہوتا ہے setup.exe آپ کو نظر آئے گا اس کو دبل کلک کر لیں یا جیسے میں نے سیلکٹ کیا ہے سیلکٹ کر کے انٹر دبادیں تو یہ پروگرم چل پڑتا ہے میں اس کو دبل کلک کر کے چلاتا ہوں میں نے دبل کلک کیا تو یہ ڈیب سی پلس پلس وورجن 4 کا set-up program چلا ہے سب سے پہلے یہ آپ کو اپنا لائسنس جنرل پوبلک لائسنس دکاتا ہے جو جلی اس کے اندر کافی کچھ لکھا ہوتا ہے کہ یہ آپ کیا کر سکتے ہیں کیا نہیں کر سکتے ہیں لیکن بیسکلی یہ free software ہے کیونکہ یہاں پر لکھا ہے do you accept all terms ہم کہتے ہیں yes آگے چل پڑیں اب اس کے اندر installation options آتی ہیں can you typical, compact, custom آپ اس فکر تپکل لیجے because this is recommended for most users yes destination directory یہ کہہ رہا ہے c colon backslash def-c plus plus جس کو میں چینج کر دیتا ہوں میں کہتا ہوں اس کے لیے یہاں پہ سلکت کر کے میں change کر کے میں کہتا ہوں کہ this dev cpp مجھے directory چاہی ہے یہ سمجھتے ہیں windows کا folder ہے جس میں یہ environment یہ install ہوگی اب میں ok دباتا ہوں تو یہاں سے next کئی دفعہ اگر یہ folder آپ کے computer پینا بنا ہو تو computer پوچھ لے گا کہ یہ folder کرنا ہے you should answer yes and then you can press next اس کے بعد یہ file install ہو رہی ہیں آج کلکہ computer بہت تیز ہیں جلدی سے install کر دیتے ہیں تو let's just wait while it is installed in the meantime میں آپ کو بتاتا چلوں کہ یہ computer کے لیے کیا کچھ ہنا لازمی ہے recommended configuration جو ہے وہ تو ہے کہ جی windows 98 ہو یا nt ہو یا windows 2000 ہو آپ دیکھ رہے ہوں گے اس وقت یہ آپ نے icons create کر رہا ہے آپ نے ایک folder کے اندر یہ start menu کے اندر create کر رہا ہے یہ بعد میں ہمیں نظر آئیں گے اور ساتھ windows کے علاوہ 32 MB RAM ہونی چاہیے come as come 233 MHz Intel compatible CPU یہ recommended ہے come as come نہیں کہنا چاہیے and 45 megabytes of free disk space کئی دفعہ ذکر ہوئے آج کل کے programs بہت موٹے ہو چکے یعنی 45 megabytes اس کو free disk space چاہیے لیکن جب ہم دیکھتے ہیں یہ ہماری disks جو ہے وہ now gigabytes میں چلی گئی ہیں تو 45 MB کوئی بڑی چیز نہیں لگتی لیکن ساتھ اس کی minimum جو ہے نا configuration وہ ہے windows 95 8 MB RAM 100 MHz CPU ہونا چاہیے اور 30 Mb free disk space یہ چل جاتا ہے in the meantime آپ دیکھیں گے کہ جی program کی installation complete ہو گئی ہے finish دبانے سے set up complete ہو جائے گا جہاں پہ میں نے چلایا تھا جس foldر سے وہ ہمیں نظر آ رہے لیکن اب ہم اس کی ضرورت نہیں ہے تو ہم اس کو بند کر دیتے ہیں اب dev c++ کو چلانے کے لیے start menu میں جائیں programs میں جائیں programs میں کافی list ہے programs کی اس computer کے اوپر بہت کچی install دے شہد آپ کے computer پہ کم ہو لیکن یہاں پہ دیکھیں تو یہ dev c++ نظر آ گیا جیسے ہی میں dev c++ کیا تو اس کے ساید پہ یہ سب menu کھلیا ہے جس میں کافی ساری option ہیں debugger ہے help file ہے dev c++ ہے یہ ہماری working environment ہے یہ gdb debugger کی help ہے debugger ہم کفسیل سے بعد میں کاور کریں گے licenses کا read me کوئی آخری منٹ پہ چینجز ہوں تو usually ایسی file کے اندر ہوتے ہیں standard template library ہمارے اس کے ساتھ کوئی کرز نہیں ہے اس وقت tutorial بھی دیا ہوا ہے dev c++ کے بارے میں تو آپ اپنے طور پہ tutorial ضرور explore کی جائے گا اس وقت کے لیے ہم dev c++ کو start کرتے ہیں یہ والی menu choice لی اور اس پہ کلک کر دیا یہ dev c++ چل پڑا ہے اس میں دیکھیں گے تو جو main paints ہیں یہ 1 یہ 2 اور یہ 3 3 حصوں میں screen divide ہوا ہے سب سے important حصہ یہ والا ہے نیچے والا جس میں line unit اور message کے title ہیں 3 columns کے اوپر جب ہم program لکھتے ہیں اور اس کو compile کرتے ہیں تو اگر اس میں کوئی mistake ہو یا کوئی error ہو تو وہ messages اس جگے پہ نظر آئیں گے یہ list لمبی چاڑی بھی ہو سکتی ہے لیکن کیوں کہ اس کے ساتھ line number دیا ہوتا ہے تو ہم دیکھ سکتے ہیں کہ یہ کہاں گلتی ہے اور اوپر جاکے program کو تیک کرنے for the moment بہت سارے icons ہیں یہاں پہ اوپر کافی سارے menu's ہیں menu's بھی لمبے چاڑے ہیں گھورانے کی کوئی ضرورت نہیں ہے ہمیں اس وقت دو تین چیزیں چاہیں ہیں اور ان سے ہم اپنا کام چلا لیں گے لیکن میں آپ سے ضرور کہوں گا کہ لیے آپ اپنے طور پہ اس کو خوب ایکسکلور کریں اور اس کے features دیکھیں کہ کیا کیا ہیں اس وقت کے لیے ہم ایک نیا project start کرتے ہیں یا ایک نئی source file یہ icon جو ہے اس پے mouse لاکے چھوڑیں تو یہ دکھا دیتا ہے کہ یہ new source file otherwise آپ یہاں سے file سے بھی جا سکتے ہیں یہاں سے menu میں دیکھیں تو پھر new source file کی option آئی ہوئی ہے یاد ہوگا کہ source file یا source code اس کو کہتے ہیں جو ہم لکھتے ہیں یعنی see language میں لکھیں گے یا جو بھی English like programming languages ہوتی ہیں ان کا original code جو as human beings ہم تائپ کرتے ہیں اس کو ہم source code کہتے ہیں ہم کہتے ہیں new source file تو ہمارے پاس یہ ایک open menu بلکہ ایک untitled program آجاتا ہے اوپر اس کا option جو caption ہے وہ دکھا رہا ہے کہ یہ untitled one اس program کا نام ہے اور کچھ چیزیں c++ نے پہلے سے ہمارے لیے لکھ دی ہیں میں نے بتایا تھا آپ کو کہ یہ sharp include iostream.h ہم استعمال کرتے ہیں for input and output یہ ہم c++ کا input output سسٹم استعمال کر رہے ہیں پھر یہ ایک اور line ہے include standard lib.h اس کو ہم استعمال نہیں کریں گے سسٹم پوز ابھی ان چیزوں کی بات نہیں کرتے ابھی میں file کو بند کر دیتا ہوں کیونکہ ہم ابھی اس کو استعمال نہیں کرنا چاہتے جب میں بند کرنے لگا ہوں تو اس نے کہا ہے کہ اس کے چینجز سیف کرنے ہیں میں کہتا ہوں نہیں اس فتح ہم dev c++ کی انوارمنٹ کو کنفگر کرنا چاہ رہے ہیں اس میں آپ یہاں پے جائیں وہ ہے options کا menu options menu کے اندر جاکے آپ دیکھیں گے تو دو مجھور options نظر آ رہی ہیں پہلہ ہے compiler options اور دوسرا ہے environment options سب سے پہلے تو ہم جاتے ہیں compiler options میں as usual بہت سری چیزیں آپ کو نظر آئیں گی اس سے کوئی آپ کو گھبرانے کی ضرورت نہیں ہے یہ نیچے دیریکٹریز دی ہوئی ہیں folders ہیں جس میں dev cpp نے cpp نے اپنی file لکھی ہیں ہم ان کو بالکل چینج نہیں کریں گے کیونکہ یہاں پر program انسٹول ہو چکا ہے اس وقت آپ سیدہ چلے جائیں linker والے tab کے اوپر اور یہاں پر دیکھیں گے تو یہ چار چیک بوکس بنا ہوئے ہیں اس میں سے صرف ہمیں دوسرا والا چاہیے generate debugging information اس کو ایک دفعہ چیک کر دیں اور اس کو ok کر دیں یہ debugging information کا مطلب ہے کہ بعد میں اگر ہم programs کو debug کرنا چاہیں یعنی ان میں errors ڈیٹرمین کر کے ٹھیک کرنا چاہیں تو وہ information debugger کو مل سکے گی اگر یہ ہم چیک نہیں کرتے اس بوکس کو تو program جہاں وہ strip ہوکے بناتا ہے یعنی executeable file جو computer نے چنا نی ہے اس میں کوئی extra information نہیں ہوتی جس سے ہم trace back کر سکیں کہ کلتی کہاں پے ہوئی تھی so it is useful at least for development کہ جو debugging information ہے وہ include کی جائے تو آپ اس کو چیک کر دیجیں اور پھر ok دبا دیں دوسی چیز ہم environment options کو select کرنا ہے یہاں پر environment options کے اندر باقی چیزیں آپ ابھی چھوڑ دیں لیکن default directory جو ہے اس میں probably ہم اپنے programs جو بھی لکھیں وہ ایک خاص جگہ پے سٹور کرنا چاہیں گے so میں چاہوں گا کہ جی ہم اپنے کوئی folder کرلیں windows کے اندر اور وہ folder کر کر کے اس کے اندر ہمارے programs پڑے ہو otherwise یہ my documents میں لے جاتا ہے program کو and my documents your folder ہے windows کا اس میں اور بہت ساری چیزیں پڑی ہوتی ہے اور وہاں پھر confusion ہو جائے گا کہ یہ ہمارا program کے درجہ اور کہان نہیں ہے so یہاں پہ بھی ہم کہہ سکتے ہیں کہ جی let's say کہ جی c colon backslash my progs اب problem یہ ہے کہ جی یہ exist کرتی ہے directory کے نہیں I hope کہ آپ کو directives of folders کا concept آتا ہوگا لیکن ابھی تھوڑی دیر میں اس کی بھی بات کر لیتے ہیں جو windows کے explorers آپ کو folders نظر آتے ہیں اگر میں اس کو ok کہتا ہوں تو یہ ہمارا option سیٹ ہو گیا اس کے علاوہ ہم environment کے اندر میں recommend یہ تو دیوں اور چیزیں آپ کو کروں گا کہ editor میں جائیں اور editor میں جاکے یہ tabs to spaces اب بیشاق uncheck کر دیں تاکہ tabs جو ہیں وہ tab ہی رہیں یعنی single character رہے فائل کے اندر اور پھر یہ آپ کے پاس miscellaneous کے اندر یہ دیکھیں کچھ default code نظر آ رہا ہے اور default code when creating new source files انٹرسٹنگ یہ وہی چکوڈ ہے جو کہ ابھی ہم نے new file کہا تھا تو ہمیں نظر آیا تھا یہاں پہ آپ جو چیز ٹائپ کر دیں گے وہ ہر دفعہ آپ جب new source file سیلیکٹ کریں گے وہ اوٹمیٹکلی آپ کے لیے ٹائپ ہوا ملے گا کیونکہ ہم ابھی اس کو سیمپل رکھنا چاہتے ہیں میں یہ standard lib.h والی لائن کو دلیٹ کر دیتا ہوں یہ ختم ہو گئی ایکstra space بھی نکال دیتے ہیں ایک اور دفعہ دلیٹ دبا دیا اور جو مین کے اندر چیزیں ہیں ان کو بھی میں نکال دیتا ہوں یہ سیلیکٹ کیا دلیٹ بٹن دبایا اب clean and simple جیسے ہم نے بھی بات کی تھی کہ یہ شاپ include angle bracket iostream.h angle bracket اور پھر int main parenthesis opening brace اور closing brace یہ بس رہ جاتا ہے اور اپنے رائب ہو جائے کرے گا for the moment اگر ہم چاہتی ہیں تو یہ int main بھی int نکال سکتے ہیں اس کے اندر سے یہ بھی نکال داتیں okay انواریمنٹ ہماری سیٹ ہوگی اب ہم جاکے اپنا program لکھ سکتے ہیں چلیں ہم یہاں سے لیتنے اس دفعہ new source file اس کو میں نے ایکن کو کلک کیا اب دیکھیں جب میں جانا بھی اس پر simple sharp include iostream.h آگیا سو ہمیں یہ آپ چیزیں تاپ کرنے کی ضرورت نہیں ہے سو لیٹھ رویٹہ پرسٹ پروگرام یہاں پہ کرسر کو پوزیشن کرکے میں انٹر دباتا ہوں تو اس لائن پہ آگیا یہاں سے میں ٹیب دباتا ہوں ٹیب کا کی جو ہے وہ آپ کے کی بور پہ لفٹ سیٹ پہ آپ کو ملے گی ایک دفاہ دبایا مجھے یہ انڈینٹیشن پسان نہیں آئی تو میں ایک اور دفاہ دبا دیتا ہوں ہاں یہاں پہ ٹیک ہے یہاں پہ ہم کہتے ہیں سی آوٹ اوپس اور پھر لیس than لیس than دبل کوتیشن ماکس Welcome to Virtual University ایک اسکلمیشن ماک بھی دال دیتے ہیں اپنے لیے انٹ کوتیشن ماکس سیمی کولن یاد رکھیں سی کی ہر لائن سیمی کولن میں انٹ کرتی ہے اپنے سی سٹیٹمنٹ مست انڈ with a سیمی کولن لہذا یہاں بہت ہے ہم ایک پرگرم لیسے لیسے لیسے کیا ہم کیا ہم کیا ہم کیا بہت کسی بکن ہم کام پر ایک سٹیج پہنچتا ہے جس ایک پرگرم لکھلیا گیا پہلا کام جو آپ کو کرنا چاہیے وہ ہے کہ اس کو دسک پہ سیف کرلیں تو اس وقت ہم اس کو سیف کرتے ہیں سیف کیلئے بھی آئیکن بنا ہوا ہے ادہ بایس فائل سیف یونٹ ایز ایز کا مطلب یہاں بھی ہے وہ آپ کو نام دینے کی اجازت دے گا سو آئیکن جس بیوز دا آئیکن سیف کرنٹ فائل اب وہ کہتا جی کہاں سے سیف کرنی ہے میں کہتا ہوں جی my documents میں مجھے نہیں چاہیے میں نے تو اس کو کہا تھا see my programs کے اندر لیکن my progs یہاں پہ ہے نہیں foldر بنا ہوا سو یہاں پہ دیکھیں چھوٹا سا آئیکن ہے جس پہ کونہ ایکسپلوڈ کرتا ہوا نظر آ رہا ہے شاید آپ کو TV پہ اتنا کلیر نظر نہ آئے لیکن اس کو پریس کرنے سے آپ نیا foldر یہی پہ بنا سکتے ہیں تو میں اس کو پریس کرتا ہوں کلک کیا اس نے ایک نیا foldر بنا ریا see drive کے اوپر اور اس کو ہم نام دے دیتے ہیں my progs جو ہم نے option میں بھی دیا تھا پھر یہ پوچھ رہا ہے file name یہ جی اس نام سے سیف کرنا ہے پہلے my progs کو ہم کھولتے ہیں دبل کلک کیا وہ کھل گیا میں یہاں سے open بھی دبا سکتا تھا اب source file کا نام دیں میں اس کو کہتا ہوں welcome welcome.cpp اس کا نام بنے گا automatically extension دے دے گا write save as type c++ source file اس کو c کی بھی extension آپ دے سکتے ہیں یہاں پہ نظر آ جاتا ہے لیکن اسان یہ رہے گا کہ ہم cpp کی extension استعمال کر دے رہیں so میں اس کو save کر دیا یہ disk پہ لکھا گیا اب اگر بیجلی چلی جائے یا computer off ہو جائے یہ program پھر بھی saved ہے just to make sure and ensure کہ یہ ہوا ہے میں اس کو بنت کر دیتا ہوں close کا میں نے icon دبایا اب میں کہتا ہوں open file let's say open project or file اب یہ دیکھیں default میں ہم نے c++ myprox رکھاتا folder یہ automatically وہاں چلا گیا وہاں پہ ایک file دکھا رہا ہے welcome.cpp اس کو میں نے select کیا اور یہاں سے open کیا تو جو چیز ہم نے type کی تھی ہمارے سامنے پھر کھلکے آگئی اب ہم کیا کرنا چاہتے ہیں کہ جی ہم اس program کو compile کرنا چاہتے ہیں اور پھر اس کو run کرنا چاہتے ہیں تو اس کے بھی دو تین طریقے ہیں کہ یہ execute کا menu آپ کے پاس موجود ہے آپ execute تبائیں اور یہاں پہ compile بھی ہے اور run بھی ہے یا compile and run بھی ہے اچھترہ چلیں for the moment صرف compile کرتے ہیں لیکن دیکھیں یہ آپ نے دیکھا جو بناوے green run کا tic mark لگاوے اگر یہاں دیکھیں تو icons میں already یہ بناوے تو میں یہاں سے بھی compile کر سکتا ہوں تو اس کو میں کلک کرتا ہوں یہ ایک dialog box آیا اور اس نے اوپر لکھتی ہے compileation completed project فلانا ہے total errors 0 یعنی ہم نے کوئی غلطی نہیں کی نہ syntax میں نہ typing کے اندر کوئی ایسی چیز نہیں ہے ساتھ اس نے بتا دیا کیسی size of the output اتنے bytes بنا ہے اس کے ساتھ ہمیں ابھی تو کوئی خاص گھرز نہیں ہے اب زرا ایک interesting چیز ہونے لگی ہے let us see what happens when I press execute oh کچھ نظر آیا میں پھر سے پلس کرتا ہوں آپ کو لگا ہوگا ہے کہ آپ کے TV پینا پکچہ جو ایک دفعہ flicker کی ہے وہ actually flicker جو ہے وہ اس پاس تیار ہے کہ یہ program چل جاتا ہے اور اتنی تیزی سے چلتا ہے کہ اس کی output ہمیں نظر نہیں آتی کیوں نظر نہیں آتی کیوں کہ یہ dos mode program ہے یا command prompt پہ چلنے والا program ہے یہ windows کا program نہیں ہے جہاں پہ ایک separate کوئی window کھلے اور اس کے اندر چلے اس کی output کو ہم دیکھیں کیا سے for the moment اس کو میں minimize کر دیتا ہوں dev c plus plus کو اور دیکھتا ہوں کہ جی ہمارے جو folder تھا اس کو my computer کو explore کرتے ہیں اس میں c drive کو expand کرتا ہوں میں اور یہاں پہ دیکھیں کہ یہ میرا my progs folder پڑا ہوا ہے اس کو میں select کرتا ہوں تو right side اس کے contents وہ نظر آ جاتے ہیں ان contents میں یہ دیکھیں ایک تو ہے welcome.cpp یہ پہلہ ایکن یہ وہ ہے جو source code ہم نے لکھا تھا ساتھ اس کے ایک نئی فائل بن گئی ہے وہ ہے welcome.exe I'm not sure کہ آپ کو TV پہ یہ کلی آپ دیکھ سکیں گے but nonetheless اس کا ایکن بڑا سیمپل سکویر دبھا ہے یہ سیمپل سکویر دبھا یہ رپریزنٹ کرتا ہے کہ یہ program یہ windows کا program نہیں ہے یہ ایک application ہے جو چل سکتی ہے لیکن یہ dos mode میں چلے گی تو again to confirm میں اس کو اگر double click کروں تو پھر دیکھیں کہ وہی screen کے اوپر ایک flicker سا آیا اور پھر چلا گیا اب اس کو کیسے چلایا جائے تا کہ ہم اس کو دیکھ سکیں well پرانے زمانے میں تو ہمارے پس disk operating سسٹم ہوتا تھا دوکہ چلتا ہی command prompt کے ساتھ تھا جہاں پہ ہم commands کو type کرتے تھے اور computer ان پے action لیتا تھا پھر windows 98 اور windows 2000 تک بھی اس کے اندر پیچھے dos ڈوس بیٹھی ہوئی تھی اور ہم command prompt پے جا سکتے تھے جو نئی version ہیں windows کی like windows xp اس کے اندر dos کا جو حصہ وہ microsoft نے نکال دیا ہوئے لیکن command prompt پھر بھی چھوڑی ہے لیکن ہم جو command prompt پیچھے ہم کیا ہوتا start بٹن دبائیں programs accessories میرے کمپیوٹر کا منیو بہت لمبا ایکسیسریز میں چلے گئے تو یہ چلتے چلتے یہاں command prompt نظر آگیا usually اسی جگہ پہ آپ کو ملے گا windows 2000 میں بھی اور xp میں بھی تو command prompt میں سیلیکٹ کروں تو کلک کیا تو دیکھیں یہ ایک کالیسی windows آگی microsoft windows 2000 جو اس کمپیوٹر پہ چل رہی ہے اور c colon backslash greater than sign آئے اور اس کے بعد ایک cursor ہے جو کبلنک کر رہا ہے اب دیکھیں یہاں پہ mouse کا جو آپ کو cursor mouse pointer وہ نظر تو آ رہا ہے لیکن وہ کرتا کچھ نہیں ہے اس پر یہ سفید دبائسا سکریم پہ چھوڑ دیتا ہے لیکن اصل چیز یہ والا بلنک کرسر ہے جو بتاتا ہے کہ جو کچھ میں تائیپ کروں گا تو آپ دیکھیں گے کہ جی بس وہ c prompt جو ہے اس کو c colon backslash prompt کہتے ہیں c prompt کہتے ہیں وہ ہی نظر آ رہی ہے prompt اس پر کہتے ہیں کہ جنوے the computer is now prompting you to give a command اس وقت ہم ایک special command دیتے ہیں بڑی سیمپل ہے c d پھر space دے میں کہتا ہوں my frogs c d is short hand for change directory so let's change directory تو آپ دیکھیں گے میں نے enter دبایا تو یہاں پے prompt ہی بدل گیا وہ کہتا ہے c colon backslash my frogs so c d is a useful command to know کہ جی c d کے ساتھ آپ folders تبدیل کر سکتے ہیں کہ جی اس وقت آپ کھاں پے بیٹھے ہوئے ہیں اس کے بعد اس foldر میں ہے کیا اس کے contents کو دیکھنا ہو تو جو DOS level پے command ہے d i r short for directory d i r لکھے میں enter دباہتا ہوں تو یہ مجھے کچھ چیزیں دیکھاتا ہے کہ جی volume فلانا ہے اس کا serial number یہ ہے اور پھر directory of c colon backslash my frogs اس میں دو یہ entries دکھا رہا ہے جن کیا get d i r لکھا بے یہ ہمیشا نظر آئیں گی سب دیرکٹری کیا اندر ہمارے ان کے ساتھ کوئی غرز اور اس کا سائیز کیا ہے یہ 90 bytes کا program ہے اور اس کا نام وہ welcome.cpp this is an ordinary file یہ اس وقت اس computer کی date and time سیٹ ہوئی ہے وہ نظر آ رہی ہے دوسی لین پے یہ لکھا ہے welcome.exe یہاں پے اگر میں سیمپلی تائپ کرو welcome.exe اور پھر انٹر کرو یہ ہمارا ہے executable program تو دیکھیں کیا ہوتا ہے انٹر ہمارا program چل گیا لکھا ہوئے welcome to virtual university سو جو ہم نے c out والی statement لکھی تی c کے اندر وہ چل گئی ہے اور یہاں پے اس کی output ہمیں نظر آ رہی ہے سو سب سب سکتے ہیں اگین میں انٹر دبا دیئے نیکس لائن تھا کہ تھوڑ سی space بن جے میں پھر کہتا ہوں welcome اب دیکھیں مجھے exe کہنے کی ضرورت نہیں ہے کیونکہ computer صرف exe جو یا کچھ اور extension جیسے .com یا .bat اس طرح کی extension کو ریکنائس کر کے چلاتا ہے تو جب میں کہتا ہوں welcome تو یہ current folder کے اندر یعنی c colon myprox کے اندر دیکھے گا کہ یہ welcome نام کی کوئی فائل ہے جس کے آگے .exe لگا ہوئے اور جو ملے گی اس کو یہ چلا دے گا سو یہ میں انٹر دبا دا تو یہ پھر program چل جاتا ہے it says welcome to virtual university اس پر written and compiled and executed our very first program congratulations but یہ جتا یہ command prompt والہ سلسلہ start programs command prompt or cd اس کا کوئی سان حل ہو سکتا ہے ایک طریقہ ہے why don't we try doing that over here آپ اس کو experiment کیجے گا اگر آپ کو سمجھ آگئے that will be very good it will make life a lot easier یہاں پہ desktop پہ جاکے میں right click کرتا ہوں ما اس کو تو مرے پاس کافی سارے option آتے ہیں one of them is new new کے اوپر پھر کائی ساری option and depend کرتا ہے کہ میرے computer پہ کیا چیز install ہے لیکن ساتھ ایک option آجاتا ہے shortcut تو میں کہتا ہوں new shortcut کلک کیا تو میرے پاس یہ ایک create shortcut کے نا dialogue box آگیا ہے now ایک option دباکے computer سے سیلیکٹ کروں کہ یہ کنسا program چلانا ہے جو program میں چلانا چاہا رہا ہوں وہ بزاتے خود ہے command prompt والا program جتنے یہ new computers یعنی operating systems windows 2000 or windows xp اس میں command prompt کے program کا نام ہے cmd.exe یہاں پہ یہاں تائیپ کردیں اور next کردیں تائیپر name for this shortcut کہ آپ نام دی سکتے ہیں let's say command prompt اور click finish to create the shortcut میں finish کرتا ہوں تو دیکھیں یہ shortcut بالکل اس طرح کی کالی window جو آنی تھی نظر اس طرح کا کالا آئیکن بن گیا ہے اور یہ اس کے نیچے command prompt لکھا ہے اور یہ desktop رکھتی ہے اب اگر اس کو یہاں پہ میں دبل کلک کروں گا تو command prompt چل جائے گی لیکن ابھی کام کامپریٹنی ہوا دیکھیں یہ کسی اور ہی فولڈر میں گیا ہے یہ گیا ہے c colon backslash win nt فولڈر کے اندر لیکن ہر کمپیوٹر پر یہ a different فولڈر میں جا سکتا ہے ہم چاہتے ہیں کہ یہ جائے my progs کے اندر تو یہاں سے میں پھر اس کو right click کرتا ہوں اس کا menu آ جاتا ہے اس میں properties میں چلے گا properties میں بہت ساری چیزیں آتے ہیں لیکن ہمارا صرف interest جو ہے وہ اس لین سے ہے اس پوری چیز کو سلکت کر کے میں کہتا ہوں c colon backslash my progs اور okay کر دیتا ہوں اب ہماری زندگی بڑی اسان ہو گئی ہم dev c++ میں جائیں اپنا program لکھیں اس کو compile کریں compile ہو گیا continue دبادیہ save ہوا ہوا ہے dev c++ کو بند کر دیں یا minimize کر لیں یہ minus sign دبائیں گے تو minimize ہو جائے گا cross دبائیں گے تو بند ہو جائے گا میں اس وقت اس کو بند کر دیتا ہوں command prompt کو double click کرتا ہوں تو یہ اب my progs میں کھولے گا یہاں پہ مجھے پتا ہے کیا program پڑا بے نہ پتا ہو تو dir کیا list آگی فائیلوں کی نظر آگیا کے آہا میرے program کا نام ہے welcome.exe میں کہتا ہوں welcome and voilà welcome to virtual university ٹیک ہے آج کا لسن ہم یہاں پہ ختم کرتے ہیں آپ اب اس انوائنمنٹ کو اچھی طرح اکسپلور کریں نیو کے ساتھ نئی فائلیں بنائیں نئے programs لکھیں کمپائل کریں ایکسیکیوٹ کریں اگر آپ کے پاس command prompt بنی ہوئی ہے icon یا a shortcut بنا ہوئے desktop میں اس کو استعمال کر لیں otherwise آپ نے لیے بنالیں as usual اس کو بند کرنے کے لیے یہاں پہ بھی آپ کے پاس cross sign ہے لیکن اس کا بھی ایک shortcut آپ اگر typing اچی جانتے ہیں exit لکھنے ex it اور یہ بند ہو جاتی ہے command prompt آج ہم نے آپ کو کمپائلر اور ہماری development environment کے بارے میں سب کچھ بتایا بہت سارے icons ہیں جیسے جیسے ان کی ضرورت پڑے گی ہم ان کو استعمال کرتے رہیں گے اور انٹروڈیوز کرتے رہیں گے اگلے لیکچہ تک کیلئے اجازت دیجے خدا حافیس