19 KiB
پروگرامنگ زبانوں اور ضروری اوزاروں کا تعارف
یہ سبق پروگرامنگ زبانوں کی بنیادی باتوں کا احاطہ کرتا ہے۔ یہاں شامل موضوعات آج کی زیادہ تر جدید پروگرامنگ زبانوں پر لاگو ہوتے ہیں۔ 'ضروری اوزار' کے حصے میں، آپ ایسے مفید سافٹ ویئر کے بارے میں سیکھیں گے جو ایک ڈویلپر کے طور پر آپ کی مدد کرتا ہے۔
اسکیچ نوٹ از Tomomi Imura
لیکچر سے پہلے کا کوئز
تعارف
اس سبق میں ہم درج ذیل موضوعات کا احاطہ کریں گے:
- پروگرامنگ کیا ہے؟
- پروگرامنگ زبانوں کی اقسام
- پروگرام کے بنیادی عناصر
- پیشہ ور ڈویلپر کے لیے مفید سافٹ ویئر اور اوزار
آپ یہ سبق Microsoft Learn پر لے سکتے ہیں!
پروگرامنگ کیا ہے؟
پروگرامنگ (جسے کوڈنگ بھی کہا جاتا ہے) ایک ایسا عمل ہے جس میں کسی ڈیوائس جیسے کمپیوٹر یا موبائل ڈیوائس کے لیے ہدایات لکھی جاتی ہیں۔ ہم یہ ہدایات ایک پروگرامنگ زبان کے ذریعے لکھتے ہیں، جسے پھر ڈیوائس سمجھتی ہے۔ ان ہدایات کے سیٹ کو مختلف ناموں سے پکارا جا سکتا ہے، جیسے پروگرام، کمپیوٹر پروگرام، ایپلیکیشن (ایپ)، اور ایگزیکیوٹ ایبل۔
ایک پروگرام وہ سب کچھ ہو سکتا ہے جو کوڈ کے ذریعے لکھا گیا ہو؛ ویب سائٹس، گیمز، اور فون ایپس سب پروگرام ہیں۔ اگرچہ بغیر کوڈ لکھے بھی پروگرام بنایا جا سکتا ہے، لیکن اس کے پیچھے کی منطق کو ڈیوائس سمجھتی ہے، اور وہ منطق زیادہ تر کوڈ کے ذریعے لکھی گئی ہوتی ہے۔ ایک پروگرام جو چل رہا ہو یا ایگزیکیوٹ ہو رہا ہو، وہ ہدایات پر عمل کر رہا ہوتا ہے۔ وہ ڈیوائس جس پر آپ یہ سبق پڑھ رہے ہیں، ایک پروگرام چلا رہی ہے تاکہ یہ آپ کی اسکرین پر دکھایا جا سکے۔
✅ تھوڑی تحقیق کریں: دنیا کے پہلے کمپیوٹر پروگرامر کو کون سمجھا جاتا ہے؟
پروگرامنگ زبانیں
پروگرامنگ زبانیں ڈویلپرز کو ڈیوائس کے لیے ہدایات لکھنے کے قابل بناتی ہیں۔ ڈیوائسز صرف بائنری (1 اور 0) کو سمجھ سکتی ہیں، اور زیادہ تر ڈویلپرز کے لیے یہ بات چیت کا مؤثر طریقہ نہیں ہے۔ پروگرامنگ زبانیں انسانوں اور کمپیوٹرز کے درمیان بات چیت کا ذریعہ ہیں۔
پروگرامنگ زبانیں مختلف فارمیٹس میں آتی ہیں اور مختلف مقاصد کے لیے استعمال ہو سکتی ہیں۔ مثال کے طور پر، جاوا اسکرپٹ بنیادی طور پر ویب ایپلیکیشنز کے لیے استعمال ہوتی ہے، جبکہ بش (Bash) بنیادی طور پر آپریٹنگ سسٹمز کے لیے استعمال ہوتی ہے۔
لو لیول زبانیں عام طور پر ڈیوائس کے لیے ہدایات کو سمجھنے کے لیے کم مراحل کی ضرورت ہوتی ہے، جبکہ ہائی لیول زبانیں اپنی پڑھنے کی آسانی اور سپورٹ کی وجہ سے زیادہ مقبول ہیں۔ جاوا اسکرپٹ کو ایک ہائی لیول زبان سمجھا جاتا ہے۔
ذیل میں کوڈ کے ذریعے جاوا اسکرپٹ (ہائی لیول زبان) اور اے آر ایم اسمبلی کوڈ (لو لیول زبان) کے درمیان فرق دکھایا گیا ہے۔
let number = 10
let n1 = 0, n2 = 1, nextTerm;
for (let i = 1; i <= number; i++) {
console.log(n1);
nextTerm = n1 + n2;
n1 = n2;
n2 = nextTerm;
}
area ascen,code,readonly
entry
code32
adr r0,thumb+1
bx r0
code16
thumb
mov r0,#00
sub r0,r0,#01
mov r1,#01
mov r4,#10
ldr r2,=0x40000000
back add r0,r1
str r0,[r2]
add r2,#04
mov r3,r0
mov r0,r1
mov r1,r3
sub r4,#01
cmp r4,#00
bne back
end
یقین کریں یا نہ کریں، یہ دونوں ایک ہی کام کر رہے ہیں: 10 تک فبوناکی سیکوئنس پرنٹ کر رہے ہیں۔
✅ فبوناکی سیکوئنس کو تعریف کیا گیا ہے کہ یہ اعداد کا ایک سیٹ ہے جس میں ہر عدد اپنے پچھلے دو اعداد کا مجموعہ ہوتا ہے، 0 اور 1 سے شروع ہو کر۔ فبوناکی سیکوئنس کے پہلے 10 اعداد یہ ہیں: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34۔
پروگرام کے عناصر
پروگرام میں ایک واحد ہدایت کو اسٹیٹمنٹ کہا جاتا ہے اور عام طور پر اس کے آخر میں ایک کردار یا لائن اسپیسنگ ہوتی ہے جو ہدایت کے ختم ہونے کو ظاہر کرتی ہے، یا ٹرمینیٹ کرتی ہے۔ ہر زبان میں پروگرام کے ختم ہونے کا طریقہ مختلف ہوتا ہے۔
پروگرام میں اسٹیٹمنٹس صارف یا کسی اور ذریعے سے فراہم کردہ ڈیٹا پر انحصار کر سکتی ہیں تاکہ ہدایات پر عمل کیا جا سکے۔ ڈیٹا پروگرام کے رویے کو تبدیل کر سکتا ہے، اس لیے پروگرامنگ زبانوں میں ڈیٹا کو عارضی طور پر محفوظ کرنے کا ایک طریقہ ہوتا ہے تاکہ اسے بعد میں استعمال کیا جا سکے۔ انہیں ویری ایبلز کہا جاتا ہے۔ ویری ایبلز وہ اسٹیٹمنٹس ہیں جو ڈیوائس کو اپنی میموری میں ڈیٹا محفوظ کرنے کی ہدایت دیتی ہیں۔ پروگرام میں ویری ایبلز الجبرا میں ویری ایبلز کی طرح ہیں، جہاں ان کا ایک منفرد نام ہوتا ہے اور ان کی قدر وقت کے ساتھ تبدیل ہو سکتی ہے۔
یہ ممکن ہے کہ کچھ اسٹیٹمنٹس ڈیوائس کے ذریعے ایگزیکیوٹ نہ ہوں۔ یہ عام طور پر ڈویلپر کے ڈیزائن کے مطابق ہوتا ہے یا حادثاتی طور پر جب کوئی غیر متوقع خرابی پیش آتی ہے۔ ایپلیکیشن پر اس قسم کا کنٹرول اسے زیادہ مضبوط اور قابلِ دیکھ بھال بناتا ہے۔ عام طور پر، یہ کنٹرول اس وقت تبدیل ہوتا ہے جب کچھ خاص شرائط پوری ہوں۔ جدید پروگرامنگ میں ایک عام اسٹیٹمنٹ جو پروگرام کے چلنے کے طریقے کو کنٹرول کرتی ہے وہ if..else
اسٹیٹمنٹ ہے۔
✅ آپ اس قسم کی اسٹیٹمنٹ کے بارے میں مزید اگلے اسباق میں سیکھیں گے۔
ضروری اوزار
🎥 اوپر دی گئی تصویر پر کلک کریں تاکہ ٹولنگ کے بارے میں ویڈیو دیکھ سکیں
اس حصے میں، آپ ایسے سافٹ ویئر کے بارے میں سیکھیں گے جو آپ کے پیشہ ورانہ ترقی کے سفر کے آغاز میں بہت مفید ہو سکتا ہے۔
ایڈیٹرز
سافٹ ویئر ڈویلپمنٹ کے لیے سب سے اہم اوزاروں میں سے ایک ایڈیٹر ہے۔ ایڈیٹر وہ جگہ ہے جہاں آپ اپنا کوڈ لکھتے ہیں اور بعض اوقات اسے چلاتے بھی ہیں۔
ڈویلپرز ایڈیٹرز پر چند اضافی وجوہات کی بنا پر انحصار کرتے ہیں:
- ڈی بگنگ کوڈ میں موجود بگز اور غلطیوں کو تلاش کرنے میں مدد دیتی ہے، لائن بہ لائن کوڈ کا جائزہ لے کر۔ کچھ ایڈیٹرز میں ڈی بگنگ کی صلاحیتیں ہوتی ہیں؛ انہیں مخصوص پروگرامنگ زبانوں کے لیے حسب ضرورت بنایا جا سکتا ہے۔
- سنٹیکس ہائی لائٹنگ کوڈ میں رنگ اور ٹیکسٹ فارمیٹنگ شامل کرتی ہے، جس سے اسے پڑھنا آسان ہو جاتا ہے۔ زیادہ تر ایڈیٹرز حسب ضرورت سنٹیکس ہائی لائٹنگ کی اجازت دیتے ہیں۔
- ایکسٹینشنز اور انٹیگریشنز ڈویلپرز کے لیے خصوصی اوزار ہیں، جو ڈویلپرز نے بنائے ہیں۔ یہ اوزار بنیادی ایڈیٹر میں شامل نہیں ہوتے۔ مثال کے طور پر، بہت سے ڈویلپرز اپنے کوڈ کو دستاویزی شکل میں بیان کرتے ہیں کہ یہ کیسے کام کرتا ہے۔ وہ ایک اسپیل چیک ایکسٹینشن انسٹال کر سکتے ہیں تاکہ دستاویزات میں ٹائپوز تلاش کرنے میں مدد ملے۔ زیادہ تر ایکسٹینشنز مخصوص ایڈیٹر کے اندر استعمال کے لیے بنائی گئی ہیں، اور زیادہ تر ایڈیٹرز ایکسٹینشنز تلاش کرنے کا طریقہ فراہم کرتے ہیں۔
- حسب ضرورت ڈویلپرز کو اپنی ضروریات کے مطابق ایک منفرد ترقیاتی ماحول بنانے کے قابل بناتا ہے۔ زیادہ تر ایڈیٹرز انتہائی حسب ضرورت ہوتے ہیں اور ڈویلپرز کو اپنی مرضی کے مطابق ایکسٹینشنز بنانے کی بھی اجازت دے سکتے ہیں۔
مشہور ایڈیٹرز اور ویب ڈویلپمنٹ ایکسٹینشنز
براؤزرز
ایک اور اہم اوزار براؤزر ہے۔ ویب ڈویلپرز براؤزر پر انحصار کرتے ہیں تاکہ دیکھ سکیں کہ ان کا کوڈ ویب پر کیسے چلتا ہے۔ یہ ایڈیٹر میں لکھے گئے ویب صفحے کے بصری عناصر کو ظاہر کرنے کے لیے بھی استعمال ہوتا ہے، جیسے HTML۔
بہت سے براؤزرز میں ڈویلپر ٹولز (DevTools) شامل ہوتے ہیں، جو ڈویلپرز کو ان کی ایپلیکیشن کے بارے میں اہم معلومات جمع کرنے اور حاصل کرنے میں مدد دینے کے لیے مفید خصوصیات اور معلومات کا ایک سیٹ فراہم کرتے ہیں۔ مثال کے طور پر: اگر کسی ویب صفحے میں غلطیاں ہوں، تو یہ جاننا بعض اوقات مددگار ہوتا ہے کہ وہ کب پیش آئیں۔ براؤزر میں موجود DevTools کو اس معلومات کو حاصل کرنے کے لیے ترتیب دیا جا سکتا ہے۔
مشہور براؤزرز اور DevTools
کمانڈ لائن ٹولز
کچھ ڈویلپرز اپنے روزمرہ کے کاموں کے لیے کم گرافیکل منظر کو ترجیح دیتے ہیں اور اس کے لیے کمانڈ لائن پر انحصار کرتے ہیں۔ کوڈ لکھنے کے لیے کافی مقدار میں ٹائپنگ کی ضرورت ہوتی ہے اور کچھ ڈویلپرز اپنے کی بورڈ پر کام کے دوران تسلسل کو توڑنا پسند نہیں کرتے۔ وہ ڈیسک ٹاپ ونڈوز کے درمیان سوئچ کرنے، مختلف فائلوں پر کام کرنے، اور اوزار استعمال کرنے کے لیے کی بورڈ شارٹ کٹس کا استعمال کرتے ہیں۔ زیادہ تر کام ماؤس کے ساتھ مکمل کیے جا سکتے ہیں، لیکن کمانڈ لائن کا ایک فائدہ یہ ہے کہ کمانڈ لائن ٹولز کے ساتھ بہت کچھ کیا جا سکتا ہے بغیر ماؤس اور کی بورڈ کے درمیان سوئچ کیے۔ کمانڈ لائن کا ایک اور فائدہ یہ ہے کہ یہ حسب ضرورت ہوتی ہے اور آپ اپنی مرضی کے مطابق کنفیگریشن کو محفوظ کر سکتے ہیں، بعد میں اسے تبدیل کر سکتے ہیں، اور اسے دوسرے ترقیاتی مشینوں پر درآمد کر سکتے ہیں۔ چونکہ ترقیاتی ماحول ہر ڈویلپر کے لیے منفرد ہوتا ہے، کچھ کمانڈ لائن کا استعمال نہیں کرتے، کچھ مکمل طور پر اس پر انحصار کرتے ہیں، اور کچھ دونوں کا امتزاج پسند کرتے ہیں۔
مشہور کمانڈ لائن آپشنز
کمانڈ لائن کے اختیارات آپ کے آپریٹنگ سسٹم پر منحصر ہوں گے۔
💻 = آپریٹنگ سسٹم پر پہلے سے انسٹال شدہ۔
ونڈوز
- Powershell 💻
- Command Line (جسے CMD بھی کہا جاتا ہے) 💻
- Windows Terminal
- mintty
میک او ایس
لینکس
مشہور کمانڈ لائن ٹولز
دستاویزات
جب کوئی ڈویلپر کچھ نیا سیکھنا چاہتا ہے، تو وہ زیادہ تر دستاویزات کی طرف رجوع کرے گا تاکہ یہ سیکھ سکے کہ اسے صحیح طریقے سے کیسے استعمال کیا جائے۔ ڈویلپرز اکثر دستاویزات پر انحصار کرتے ہیں تاکہ انہیں اوزار اور زبانوں کو صحیح طریقے سے استعمال کرنے کے طریقے کے بارے میں رہنمائی فراہم کی جا سکے، اور یہ بھی کہ وہ کیسے کام کرتی ہیں اس کے بارے میں گہری معلومات حاصل کی جا سکیں۔
ویب ڈویلپمنٹ پر مشہور دستاویزات
- Mozilla Developer Network (MDN)، موزیلا کی طرف سے، جو Firefox براؤزر کے ناشر ہیں
- Frontend Masters
- Web.dev، گوگل کی طرف سے، جو Chrome کے ناشر ہیں
- Microsoft's own developer docs، Microsoft Edge کے لیے
- W3 Schools
✅ تحقیق کریں: اب جب کہ آپ کو ویب ڈویلپر کے ماحول کی بنیادی باتیں معلوم ہو گئی ہیں، اس کا موازنہ ویب ڈیزائنر کے ماحول سے کریں۔
🚀 چیلنج
کچھ پروگرامنگ زبانوں کا موازنہ کریں۔ جاوا اسکرپٹ اور جاوا کی منفرد خصوصیات کیا ہیں؟ کوبول اور گو کے بارے میں کیا خیال ہے؟
لیکچر کے بعد کا کوئز
جائزہ اور خود مطالعہ
پروگرامر کے لیے دستیاب مختلف زبانوں پر تھوڑا مطالعہ کریں۔ ایک زبان میں ایک لائن لکھنے کی کوشش کریں، اور پھر اسے دو دیگر زبانوں میں دوبارہ لکھیں۔ آپ نے کیا سیکھا؟
اسائنمنٹ
ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔