کیا آپ طریقہ کار پروگرامنگ اور OOP کے درمیان فرق کی وضاحت کرسکتے ہیں؟


جواب 1:

اصل سوال:

کیا آپ طریقہ کار پروگرامنگ اور OOP کے درمیان فرق کی وضاحت کرسکتے ہیں؟

جواب:

سب سے پہلے چیزیں ، آئیے اس کی وضاحت کریں کہ طریقہ کار اور آبجیکٹ اورینٹڈ پروگرامنگ کا کیا مطلب ہے۔

تعریف - ضابطے کی زبان کا کیا مطلب ہے؟ ایک طریقہ کار کی زبان کمپیوٹر پروگرامنگ زبان کی ایک قسم ہے جو پروگرام ترتیب دینے کے ل programming اپنے پروگرامنگ کے سیاق و سباق میں ترتیب وار اقدامات اور طریقہ کار کی ایک سیریز کی وضاحت کرتی ہے۔ اس میں کمپیوٹیشنل ٹاسک یا پروگرام کو مکمل کرنے کے لئے بیانات ، افعال اور احکامات کا ایک منظم ترتیب پر مشتمل ہے۔ پیشہ ور زبان کو لازمی زبان بھی کہا جاتا ہے۔ ٹیکوپیڈیا ضابطہ کار کی زبان کی وضاحت کرتا ہے ، جیسا کہ نام سے ظاہر ہوتا ہے ، پہلے سے طے شدہ اور منظم طریقہ کار ، افعال پر انحصار کرتا ہے۔ یا کسی پروگرام کے فن تعمیر میں ذیلی معمولات کو یہ بتاتے ہوئے کہ کمپیوٹر کو مطلوبہ حالت یا آؤٹ پٹ تک پہنچنے کے لئے لازمی اقدامات اٹھاتے ہیں۔ طریقہ کار زبان متغیر ، افعال ، بیانات اور مشروط آپریٹرز کے اندر ایک پروگرام کو الگ کرتی ہے۔ کسی کام کو انجام دینے کے ل Pro عمل اور افعال کو ڈیٹا اور متغیر پر لاگو کیا جاتا ہے۔ ان طریق کار کو پروگرام کے تنظیمی ڈھانچے کے بیچ کہیں بھی کہا جاسکتا ہے / اور بھی کہا جاسکتا ہے۔ ضابطے کی زبان میں لکھا ہوا ایک پروگرام ایک یا زیادہ طریقہ کار پر مشتمل ہوتا ہے۔ پیشہ ور زبان زبان میں استعمال ہونے والی عام پروگراموں کی ایک قسم ہے جس میں C / C ++ ، جاوا ، کولڈ فیوژن اور پاسکل جیسی قابل ذکر زبانیں ہیں۔

اب ، ہم آبجیکٹ اورینٹڈ پروگرامنگ کی تعریف کرتے ہیں۔

تعریف - آبجیکٹ اورینٹڈ پروگرامنگ (OOP) کا کیا مطلب ہے؟ آبجیکٹ پر مبنی پروگرامنگ (OOP) ایک سافٹ ویئر پروگرامنگ ماڈل ہے جو آبجیکٹ کے آس پاس تعمیر کیا جاتا ہے۔ یہ ماڈل اعداد و شمار کو اشیاء (ڈیٹا فیلڈز) میں تقسیم کرتا ہے اور کلاسز (طریقوں) کے اعلامیہ کے ذریعے آبجیکٹ کے مشمولات اور طرز عمل کی وضاحت کرتا ہے ۔آپ کی خصوصیات میں مندرجہ ذیل شامل ہیں: انکیپسولیشن: اس سے پروگرام کا ڈھانچہ آسانی سے انتظام ہوتا ہے کیونکہ ہر شے کا نفاذ اور حالت پوشیدہ ہے۔ پولی ماورفزم: اس کا مطلب یہ ہے کہ تجریدی اداروں کو متعدد طریقوں سے نافذ کیا جاتا ہے۔ معلومات: اس سے مراد نفاذ کے ٹکڑوں کا درجہ بندی کا انتظام ہے۔ آبجیکٹ پر مبنی پروگرامنگ آسان پروگرامنگ کی اجازت دیتا ہے۔ اس کے فوائد میں دوبارہ استعمال کی صلاحیت ، ریفیکٹرنگ ، توسیع پذیری ، بحالی اور کارکردگی شامل ہیں۔ ٹیکوپیڈیا وضاحت کرتا ہے کہ آبجیکٹ اورینٹڈ پروگرامنگ (او او پی) او او پی پچھلی دہائی یا اس سے زیادہ عرصے سے انتخاب کا پروگرامنگ ماڈل رہا ہے۔ او او پی کا ماڈیولر ڈیزائن پروگرامرز کو قابل ترتیب کوڈ کی بجائے بڑی تعداد میں سافٹ ویئر تیار کرنے کے قابل بناتا ہے۔ او او پی کا ایک بہت بڑا فائدہ یہ ہے کہ اشیاء اور تعریفوں کی کوئی حد نہیں ہے۔ نیز ، طریقہ سے ڈیٹا کو الگ کرنا ایک عام مسئلہ کی روک تھام کرتا ہے جو بڑی عمر کے لکیری سافٹ ویئر زبانوں میں پایا جاتا ہے۔ اگر کسی خطی کوڈ میں کوئی بگ نمودار ہوتا ہے تو ، اس کا ترجمہ اس سسٹم کے ذریعہ کیا جاسکتا ہے اور عوام کو سخت ٹریس سے متعلق غلطیاں پیدا کی جاسکتی ہیں۔ اس کے برعکس ، ایک او او پی پروگرام ، اس کے طریقہ کار اور ڈیٹا کو الگ کرنے کے ساتھ ، اس طرح کی پھیلتی غلطیوں کا شکار نہیں ہے۔ عوامی او او پی زبانوں میں جاوا ، زبانوں کا سی فیملی ، وی بی نیٹ شاپ اور ازگر شامل ہیں۔ لہذا "خالص" او او پی زبانیں بولی جاتی ہیں۔ اسکالا ، روبی ، ایفل ، جیڈ ای ، سمالٹاک اور زمرد شامل ہیں۔

تعریفوں کا ماخذ آبجیکٹ اورینٹڈ پروگرامنگ (او او پی) کیا ہے؟ - ٹیکوپیڈیا سے تعریف اور طریقہ کار کی زبان کیا ہے؟ - ٹیکوپیڈیا سے تعریف

ابھی. آئیے فرق پر عمل درآمد کو دیکھیں۔

ہم عمل کے ساتھ شروع کریں گے ، اور ایسا کرنے کا آسان ترین طریقہ یہ ہوگا کہ خاص طور پر ارڈینو کے ساتھ سی زبان کا استعمال کریں کیونکہ یہی بات میں جانتا ہوں۔

میں نے ٹمٹمانے روشنی کو بطور بنیاد استعمال کرنے کا فیصلہ کیا ہے کیونکہ یہ بنیادی نفاذ میں سے ایک ہے۔

// سیٹ اپ فنکشن ایک بار چلتا ہے جب آپ ری سیٹ دبائیں یا بورڈ کو باطل سیٹ اپ () کو دبائیں {// ایک آؤٹ پٹ کے بطور ڈیجیٹل پن LED_BUILTIN شروع کریں۔ پن موڈ (ایل ای ڈی_بلٹن ، آؤٹپٹ)؛ the // لوپ فنکشن بار بار چلتا رہتا ہے ہمیشہ کے لئے باطل لوپ () {ڈیجیٹل رائٹ (ایل ای ڈی_بلٹن ، ہائی)؛ // ایل ای ڈی کو موڑ دیں (ہائی وولٹیج کی سطح ہے) تاخیر (1000)؛ // دوسرے ڈیجیٹل رائٹ (ایل ای ڈی_بلٹن ، کم) کا انتظار کریں۔ // وولٹیج کم تاخیر (1000) کرکے ایل ای ڈی بند کردیں۔ // ایک سیکنڈ کا انتظار کریں}

اب ، میں کوڈ کو تھوڑا بہتر سمجھاؤں۔ آپ کے پاس دو کام ہیں سیٹ اپ اور لوپ۔ لوپ کو بار بار کہا جاتا ہے اور سیٹ اپ کو صرف ایک بار کہا جاتا ہے۔ آپ بجلی کی درجہ بندی کو بالترتیب اعلی اور کم پر رکھنے کے لئے ایل ای ڈی کو ڈیجیٹل رائٹ کمانڈ بھیجتے ہیں۔ تاخیر یہ ہے کہ روشنی کب تک چلے یا بند رہے گی ، اس معاملے میں ، 1000 ملی میٹر یا تقریبا 1 سیکنڈ۔ بہت سیدھے آگے ، لیکن اس سے یہ ظاہر ہوتا ہے کہ آپ کو ضابطے کی پروگرامنگ کی بنیادی ضرورت ہے۔ آپ کوئی طریقہ کار یا ہدایت لکھتے ہیں اور جب تک یہ ختم نہیں ہوتا اس کو دہرایا جاتا ہے۔ مطلوبہ کوڈ میں کوئی اضافی پیچیدگی نہیں ہے۔

C # اور OOP مثال کا وقت۔

نظام کا استعمال کرتے ہوئے؛ سسٹم.کلیکشنز۔جنرک کا استعمال کرتے ہوئے؛ System.Linq کا استعمال کرتے ہوئے؛ System.Text کا استعمال کرتے ہوئے؛ نام کی جگہ oops {عوامی طبقے کا صارف {// ممبر متغیرات پبلک INT کسٹڈ؛ عوامی تار نام؛ عوامی سٹرنگ ایڈریس // فیلڈ کسٹمر () کو شروع کرنے کے لئے کنڈیکٹر {کسٹڈ = 1101؛ نام = "ٹام"؛ پتہ = "USA"؛ customer // کسٹمر ریکارڈ (کارکردگی) عوامی باطل ڈسپلے ڈیٹا () کو ظاہر کرنے کا طریقہ {کنسول.وائٹ لائن ("کسٹمر =" + کسٹڈ)؛ کنسول.وائٹ لائن ("نام =" + نام)؛ کنسول ڈاٹ رائٹ لائن ("پتہ =" + پتہ)؛ entry // داخلی نقطہ کے لئے کوڈ}} کلاس پروگرام {جامد باطل مین (سٹرنگ [] آرگس) {// آبجیکٹ انسٹینٹیشن کسٹمر اعتراض = نیا صارف ()؛ // اعتراض کال کرنے کا طریقہ۔ ڈسپلے ڈیٹا ()؛ کنسول کو کال کرنے والے // فیلڈز۔ رائٹ لائن (آبجیکٹ. کنسول.روائٹ لائن (اعتراض نام)؛ کنسول.روائٹ لائن (اعتراض.ایڈریس)؛ }}}

یہاں OOP کی ایک بہترین مثال ہے۔ آپ کے پاس ایک کسٹمر کلاس ہے جو آپ کے لئے دستیاب تمام اشیاء کی وضاحت کرتا ہے۔ آپ کے پاس لکھنے کے ل functions ابھی بھی افعال / طریقے موجود ہیں۔ لیکن کلیدی فرق یہ ہے کہ آپ ہر طریقہ / فنکشن کو اس کے مطابق تقسیم کرنا چاہتے ہیں جو اس کو کرنا ہے۔ وہاں سے ، آپ کا بنیادی طریقہ کار پروگرام کا داخلہ نقطہ ہے اور اس طرح آپ کا تنقیدی کوڈ یہاں ہونا چاہئے۔


جواب 2:

جاوا میں OOPS تصور

ضابطے کی زبان افعال پر مبنی ہوتی ہے لیکن آبجیکٹ پر مبنی زبان حقیقی دنیا کی اشیاء پر مبنی ہوتی ہے۔ پیشہ ور زبان زبان فنکشن کی تعمیل کے تسلسل کو اہمیت دیتی ہے لیکن آبجیکٹ پر مبنی زبان آبجیکٹ کی حالتوں اور طرز عمل کو اہمیت دیتی ہے۔ پیش گوئی کی زبان نے پورے ڈیٹا کو ڈیٹا کو بے نقاب کردیا۔ لیکن آبجیکٹ پر مبنی زبان اعداد و شمار کو گھیر دیتی ہے۔ پیش گوئی کی زبان اوپر والے پروگرامنگ نمونہ کی پیروی کرتی ہے لیکن آبجیکٹ پر مبنی زبان نیچے پروگرامنگ نمونہ کی پیروی کرتی ہے۔ پیش زبان زبان فطرت میں پیچیدہ ہے لہذا اس میں ترمیم کرنا ، بڑھانا اور برقرار رکھنا مشکل ہے لیکن فطری طور پر آبجیکٹ پر مبنی زبان کم پیچیدہ ہے۔ لہذا اس میں ترمیم کرنا ، بڑھانا اور برقرار رکھنا آسان ہے۔ پیشہ وارانہ زبان کوڈ کے دوبارہ استعمال کی کم گنجائش مہیا کرتی ہے لیکن آبجیکٹ پر مبنی زبان کوڈ کو دوبارہ استعمال کرنے کی زیادہ گنجائش مہیا کرتی ہے۔


جواب 3:

ضابطہ کارانہ پروگرامنگ بنیادی تجریدی طریقہ کار کی حیثیت سے طریقہ کار کے ساتھ پروگرامنگ کررہی ہے۔ ہہ

طریقہ کار کیا ہے؟ یہ کوڈ کا ایک نامزد کردہ گانٹھ ہے جسے نام کے ذریعہ پکارا جاسکتا ہے ، اور جس کو اس تناظر سے اقدار اور حوالہ جات ملتے ہیں جہاں اسے پیش کیا جاتا ہے ، پیرامیٹرز ، اور کچھ کام کرنے کے بعد اس تناظر میں اقدار اور حوالہ جات واپس آسکتے ہیں۔

اکثر ، ایک خاص قدر واپسی کی قیمت کے طور پر طریقہ کار کے اندر ظاہر کی جاتی ہے۔ زبانوں میں جو طریقہ کار کی تائید کرتے ہیں یہ عام ہے کہ ان کا استعمال اس طرح ہوتا ہے جیسے وہ افعال ہوتے ہیں ، جہاں پیرامیٹرز کو دلائل کے طور پر سمجھا جاتا ہے ، اور واپسی کی قیمت ان دلائل کے لئے فعل کی قدر کے طور پر طریقہ کار میں ہی شمار کی جاتی ہے۔ لیکن یہ طریقہ کار ایک یا ایک سے زیادہ اقدار کو پیرامیٹرز کے ذریعے اپنے کالنگ سیاق و سباق میں واپس کرنا ، اگر "زبان" اس کی حمایت کرتا ہے تو ، یا حوالہ کے ذریعہ منظور شدہ قدر میں تبدیلی کرکے ، اور واپسی کی قیمت کو خود ہی کسی کے لئے استعمال کرنا بھی محو ہے۔ پرچم ، حیثیت ، یا غلطی کا اشارے۔ پروگرامنگ ثقافتوں میں جو یونیکس کی طرف سے بہت زیادہ متاثر ہیں ، آپ کو کامیابی کی نشاندہی کرنے کے لئے 0 لوٹ آئے گا (یا کم از کم ، معلوم ناکامیوں کی عدم موجودگی) اور ناکامی کے کچھ معروف موڈ کی نشاندہی کرنے کے لئے ایک منفی نمبر دیکھیں گے۔

یہ ماڈل کے لئے سختی سے ضروری نہیں ہے لیکن میں کسی ایسی زبان کے بارے میں سوچ بھی نہیں سکتا جس کے طریقہ کار کو اس کے اصولی تجریدی طریقہ کار کے طور پر استعمال کیا جاتا ہے جس میں بہاؤ-کنٹرول بھی نہیں ہوتا ہے جس کا استعمال مشہور سیمی جادوئی کا ایک ہی سیٹ ہے۔ چیزیں جیسے:

اگر (حالت) {doThisTing ()} else {doThatThing ()

اور

جبکہ (حالت) {رکھیں

مجھے لگتا ہے کہ زیادہ تر پروگرامر کے ذہنوں میں ، "طریقہ کار" پروگرامنگ کافی حد تک "ساختہ پروگرامنگ" سے متصادم ہوتا ہے۔ اس دن جب اسٹرکچرڈ پروگرامنگ نیا تھا ، تو یہ پتہ چلا تھا کہ کنٹرول فلو کے کنٹرول کا ایک مناسب سیٹ موجود ہے جہاں سے طریقہ کار کے اندر بہاؤ کے کنٹرول کے تمام مطلوبہ نمونوں کی تشکیل کی جاسکتی ہے۔

متبادل کا انتخاب

  • اگر اس کے بعد (بولین کی بنیاد پر دو انتخاب) کیس یا سوئچ (کسی بھی سیٹ پر مبنی بہت سے انتخاب)

تکرار

معلوم حدود کے ساتھ:

  • loops کے لئے (عام طور پر اعداد کی ایک تعداد دی جاتی ہے) فارونچ loops (کسی حد تک جتنی مرتبہ تکرار ہوتی ہے ، شاید خود ممبروں کے اوپر بھی ہو)

ایڈہاک حدود کے ساتھ:

  • کرتے وقت (0 یا زیادہ تکرار) کرتے وقت (1 یا زیادہ تکرار)

اور افسوس کی بات یہ کہ غیر مقبول:

  • باہر نکلیں جب لوپ

جو کم سے کم ایک بار باہر نکلنے سے پہلے کوڈ پر عمل درآمد کرتا ہے ، اور کوڈ باہر نکلنے کے بعد صفر یا اس سے زیادہ بار انجام دیتا ہے۔

ان ڈھانچے کو ایک دوسرے کے لحاظ سے لاگو کیا جاسکتا ہے ، لیکن کچھ معاملات میں حیرت کی بات یہ مشکل ہے۔ گھومنے والے آئی ایف ایس کے ساتھ بالکل نقل کرنے کے ل / سوئچ / کیس بیانات بہت مشکل ہیں۔ اور ہمارے مقاصد کے لئے اہم بات یہ ہے کہ یہ زبان کے نفاذ کے لئے ہمیشہ تیار ہوتے ہیں ، اور وہ وہ کام کرسکتے ہیں جو آپ ، کام کرنے والے پروگرامر ، کوڈ لکھنے کے لئے جدوجہد کریں گے۔ خالصتا pr یا بنیادی طور پر ہر طریقہ کار کی زبان میں جس کے بارے میں میں سوچ سکتا ہوں ، یہ بہت مشکل ہوگا اور بہت سے معاملات میں آپ کے اپنے کنٹرول ڈھانچے کو لکھنا ناممکن ہے جو اسی طرح کام کرتا ہے جس طرح تعمیرات میں ہوتا ہے۔ لہذا ، آپ ان لوگوں کو استعمال کرتے ہیں جو اندر موجود ہیں۔ ضابطہ کار ، تشکیل شدہ ، پروگرامنگ ایک بہت ہی محدود دنیا ہے۔

ضابطے کی پروگرامنگ زبانیں بھی کسی نہ کسی طرح کے ماڈیول کا تصور رکھتی ہیں ، جو ایک طریقہ کار کے لئے ایک نامزد کنٹینر ہے۔ ان طریقوں میں سے کچھ دکھائی دیں گے ، اور استعمال کے قابل ، ماڈیول سے باہر ، کچھ صرف دکھائی دے سکیں گے اور ماڈیول کے اندر قابل استعمال ہوں گے ، جو دوسرے طریق کار کے ذریعہ بھی اسی ماڈیول میں ہیں۔ ماڈیولز والی زیادہ تر زبانوں میں ، ایک ماڈیول میں اس میں متغیر بھی ہوسکتے ہیں جو ماڈیول میں بیان کردہ طریقہ کار کے درمیان مرئی اور مشترکہ ہیں۔ یہاں تک کہ سی بھی یہ کرسکتا ہے۔ اس طرح کے ماڈیول سسٹم کی کچھ حد تک encapsulation اور معلومات کو چھپانے کی اجازت دیتا ہے: ماڈیول کے اندر وہ طریقہ کار اور متغیرات ، ماڈیول کے باہر نظر آنے والے طریقہ کار پر عمل درآمد فراہم کرنے سے سسٹم کے پورے ڈھانچے میں جوڑے کو کنٹرول کرنے میں مدد مل سکتی ہے۔ جو اچھا ہے۔

اگر آپ ایک قدم آگے بڑھتے ہیں اور ایک ہی ماڈیول کے متعدد استعمال کی اجازت دیتے ہیں ، ہر استعمال کے ساتھ اس متغیر کی اپنی ایک کاپی ماڈیول میں بیان کی جاتی ہے ، تو ماڈیول کسی قدیم چیز کی طرح نظر آنے لگتا ہے۔ اور اگر پھر آپ ماڈیولز کی مثالیں متغیر کے ساتھ کرتے ہیں اور ان کے درمیان طریقہ کار کو کسی نہ کسی طرح بانٹ دیتے ہیں ، تو آپ کے پاس صرف ان کی ایک کاپی ہوتی ہے ، تو آپ C ++ کے بہت قریب ہوجاتے ہیں۔ یہ عمدہ قسم کا ماڈیولر ، طریقہ کار ، ساخت کا پروگرامنگ آبجیکٹ پر مبنی پروگرامنگ نہیں ہے۔

آبجیکٹ اورینٹڈ پروگرامنگ بنیادی تجریدی میکانزم کے طور پر اشیاء کے ساتھ پروگرامنگ کر رہا ہے۔ ہہ

اعتراض کیا ہے؟ یہ ایک طویل مدتی کمپیوٹیشنل ہستی ہے جس سے کچھ کرنے کو کہا جاسکتا ہے۔ آبجیکٹ پر مبنی پروگرامنگ کا ایک فن اور نمونہ سمال ٹاک ہے۔ سمال ٹیلک میں ، ہر قدر ایک شے ہوتی ہے (یا کم سے کم ، بہت کم قدریں جو اشیاء نہیں ہیں جیسے دیکھنے کو ملتی ہیں جیسے وہ ہیں)۔ ایک دوسرے کو پیغام بھیجنے والے اشیاء کے ذریعہ حساب کتاب آگے بڑھتی ہے۔ سمال ٹاک پر عمل درآمد کچھ مختلف ہوتا ہے ، لیکن یہ عام خیال ہے:

میموری کے ارد گرد اشیاء مقرر. جب کوئی شے کسی اور کام کو کچھ کرنا چاہتا ہے تو ، وہ اس کے لئے پوچھتے ہوئے ایک پیغام بناتا ہے ، اور اسے مطلوبہ آبجیکٹ کو بھیج دیتا ہے۔ پیغامات آبجیکٹ ہیں۔ ریاست کو برقرار رکھنے کے لئے آبجیکٹ ذمہ دار ہوتے ہیں ، یہی ہے کہ ان میں متغیر ہوتا ہے۔ وہ کوڈ نہیں چلاتے ہیں۔ جب کسی شے کو کوئی پیغام ملتا ہے تو وہ اسے اپنی کلاس میں منتقل کردیتا ہے۔ کلاس اشیاء ہیں۔ کلاس اشیاء کو بنانے اور ان کے نظم و نسق کے ذمہ دار ہیں ، وہ کوڈ نہیں چلاتے ہیں۔ کلاس اس پیغام کو اپنے میٹا کلاس پر پہنچا دیتی ہے۔ میٹ شیشے اشیاء ہیں۔ طریقوں کو سنبھالنے کے لئے میٹاچلاسس ذمہ دار ہیں۔ میٹاکلاس اپنے طریقوں کو دیکھتا ہے اور پیغام سے ملتا ہوا ایک ملتا ہے۔ طریقے اشیاء ہیں۔ راستے میں ، میسج آبجیکٹ کو معلومات کے مختلف اضافی ٹکڑوں سے سجایا گیا تھا ، جس میں میسج کو موصول ہونے والے آبجیکٹ کا حوالہ بھی شامل تھا۔ طریقہ کار کوڈ چلانے کے لئے ذمہ دار ہے ، اور یہ کرنے کیلئے اصل پیغام میں گزرے ہوئے کسی بھی دلائل کا استعمال ہوتا ہے۔ طریقہ اس پیغام کو موصول ہونے والے آبجیکٹ کے تناظر میں اپنا کوڈ چلاتا ہے۔ طریقہ کار کا کوڈ پیغامات کا صرف اسکرپٹ ہے جو دوسرے اشیاء کو تعمیر اور بھیج سکتا ہے۔ اگر میٹاکلاس پیغام سے مماثل ہونے کا کوئی طریقہ نہیں ڈھونڈ سکتا ہے تو پھر اس چیز کی کلاس کی والدین کی کلاسوں کی میٹاکلاسز کی تلاش شروع ہوتی ہے۔ اسے "وراثت" کہا جاتا ہے۔

یہ ہوسکتا ہے کہ ایک عمل یا کسی دوسرے کے پاس کارکردگی کی وجوہات کی بناء پر عمل درآمد کے کچھ خاص طریقے موجود ہوں ، لیکن اصولی طور پر ایک سمال ٹیلک کا پورا نظام اسی طرح کام کرسکتا ہے۔

سمالٹالک میں پروگرامنگ کا مطلب ہے ، اسکرپٹنگ میسج کا ایک امتزاج طریقوں میں جانے کے لئے بھیجتا ہے ، اور رہنے کے طریقوں کے لئے نئی کلاسیں (میٹاچلاسز کے ساتھ) تخلیق کرتا ہے۔ اور یہ اتنا ہی ٹھیک ہے جیسا کہ کنٹرول کے مساوی ہے۔ اور

ضابطے کی زبان میں آپ کسی مجموعہ کے ہر ممبر پر کوڈ کے ساتھ کچھ اقدام کرسکتے ہیں جیسے اس سیڈو کوڈ کی طرح:

پیشگوئی (ایک مجموعہ میں تھنک) doThisActionOn (تھنک)

عام سمال ٹاک میں میسج بھیجنے کا مساوی اسکرپٹ اس طرح نظر آتا ہے:

جمع کرنا: [aThing | aThis ٹیکٹیکشن]۔

یہاں ، ٹیکٹیکشن ایک پیغام ہے جو ہر اکٹھا آبجیکٹ کو جمع کیا جارہا ہے۔ (ویسے ، مربع بریکٹ کے اندر کا کوڈ ایک بلاک ہے ، جسے وہی سمالٹک لامبڈا کہتے ہیں۔ یہ ایک شے ہے۔) اگر ہم دونوں کا موازنہ کریں تو ، ہم عمل کے برعکس آبجیکٹ پر مبنی پروگرامنگ کی کچھ اہم خصوصیات دیکھ سکتے ہیں:

  • ضابطہ اخلاق میں ، ہم انتخاب کرتے ہیں کہ کس طرح مجموعہ کے ممبروں کو عبور کیا جائے ، ہم پیشگوئی کا طریقہ کار منتخب کرتے ہیں۔ آبجیکٹ پر مبنی کوڈ میں ہم کلیکشن کو ٹرورسال کرنے کے لئے کہتے ہیں ، ہمیں نہیں معلوم کہ یہ کیسے ہوتا ہے۔ طریقہ کار کوڈ میں ، کالنگ کوڈ کو doThisActionOn نامی طریقہ کار تک رسائی حاصل کرنی ہوگی ، جس میں آبجیکٹ پر مبنی کوڈ لیا گیا ہے۔ صرف ایک علامت۔ ہم نہیں جانتے کہ مجموعہ کے اندر موجود اشیاء اس کی ترجمانی کیسے کریں گے۔

یہ آبجیکٹ پر مبنی پروگرامنگ کا نچوڑ ہے ، اور اس کو "ہرن سے گزر کر پروگرامنگ" کے طور پر بیان کیا گیا ہے۔ دوسری طرف ، پراسیویشنل پروگرامنگ میں ، ہمیں واضح طور پر بتانا پڑتا ہے کہ ہر گنتی کیا کرتی ہے۔