کمپیوٹر (computer)، ایسی مشین اے جو حساب لاوے؛ شمار کرے؛ تخمینا لاوے؛ گنتی کرے [۱]عام بول چال تے تحریر وچ ایہنوں کمپیوٹر ای کہیا جاندا اے۔ ایہ اک برقیاتی آلہ اے جو حساب دے سوال تے پیچیدہ شماریاتی مسئلے، مقررہ تے مہیا کيتی گئی ہدایات دے مطابق آسانی توں حل کر لیندا اے، فیر انہاں حسابات دے نتائج یا تاں ظاہر کر دیندا اے یا اپنے پاس محفوظ کر لیندا اے۔ اج دی زندگی وچ کمپیوٹر دی حیثیت عمومی مقاصد وچ استعمال ہوݨ والے اک ایداں دے پرزے دی اے جو بنیادی طور اُتے اک خرد عملیہ (microprocessor) اُتے انحصار کردا اے۔ ایتھے عمومی مقاصد توں مراد کمپیوٹر دے شعبہ زندگی دے وکھ وکھ آلات وچ استعمال توں اے، کیونکہ اج کمپیوٹر نہ صرف اک ذاتی کمپیوٹر (PC) وچ بلکہ گھریلو بجلی دے آلات تے صنعتی تے دفتری تھانواں سمیت ہر جگہ پائے جان والے آلات وچ کِسے نہ کِسے طور اُتے موجود ہُندا اے۔
ادارۂ فروغِ قومی بولی آن لائن قومی انگریزی اُردو لُغت دے مطابق کمپیوٹر دی تعریف اِس طرحاں اے:
کمپیوٹر؛ اک برقیاتی آلہ جو حساب دے سوال تے پیچیدہ شماریاتی مسئلے، مقررہ تے پروگرامی ہدایات دے مطابق ،آسانی توں حل کر لیندا اے، فیر انہاں حسابات دے نتائج یا تاں ظاہر کر دیندا اے یا اپنے پاس محفوظ کر لیندا اے۔
کمپیوٹر یونانی زبان دا لفظ اے جس دا مطلب کمپیوٹ کرنا یا حساب کرنا ہُندا اے۔ ماضی وچ اس لفظ نوں حسابگر (انگریزی: Calculator) دے لئی وی استعمال کيتا جاندا سی لیکن حالیہ دور وچ ایہ اصطلاح اک ایداں دے آلے دے لئی اختیار کيتی جاندی اے جو معلومات نوں اپنے اندر داخل کرنے دے بعد، اک مقرر شدہ حکمت عملی دے مطابق انکا تجزیہ کر سکدا ہوئے۔ یعنی اس دا مطلب دوسرے لفظاں وچ ایہ ہويا کہ عموماً کمپیوٹر بذاتِ خود كچھ نئيں كرسكتا، بلكہ اوہنوں دسنا تے سمجھاؤنا پَیندا اے كہ اوہ ساڈی بہم پہنچائی گئی معلومات تے ہدایات اُتے کیہ تے کِداں كم كرے۔
کمپیوٹر ساڈی جانب توں بہم پہنچائی گئی معلومات نوں اکھٹا کردا اے، انہاں نوں ذخیرہ کردا اے تے آپس وچ مربوط و ہم بستہ مکمل کردا اے۔ حسابگر تے کمپیوٹر وچ اہم ترین فرق ایہ اے کہ کمپیوٹر پیچیدہ کمپیوٹر پروگرام نوں اپنے اندر ذخیرہ کر سکدا اے تے ايسے خصوصیت دے باعث انسان دی مدد دے بغیر منطقی تجزیات (logical analysis) انجام دین دی اہلیت دا حامل ہُندا اے۔
لیپ ٹاپ (laptop)
کمپیوٹر اں نے کمپیوٹراں دے مانیٹر، کی بورڈ تے کیس دے تصور نوں یکسر بدل دتا اے۔
اگر اُتے دے بیان نوں مختصر بیان کرکہ لب لباب پیش کرن دی کوشش کيتی جائے تاں کمپیوٹر دی دو اہم خصوصیات ایويں بیان کيتی جاسکدی نيں کہ
ایہ مخصوص انداز و ترتیب وچ بہم پہنچائی گئی ہدایات یا پروگرامز اُتے اپنا رد عمل ظاہر کردا اے
ایہ انہاں ہدایات دی لسٹ (یعنی اک کمپیوٹر پروگرام) اُتے نتیجہ خیز طور اُتے کار موثر انجام دیندا اے
اک مثالی کمپیوٹر وچ بہت سارے اجزاء ہُندے نيں تے انکو وکھ وکھ انداز وچ ترتیب دے کے مطالعہ کيتا جاسکدا اے، مثلن ساخت دے لحاظ توں تے افعال دے لحاظ توں، دو ایداں دے طریقۂ مطالعہ نيں کہ جنہاں دی مدد توں اک نويں شخص دے لئی کمپیوٹر دی ساخت و فعل دا اک خاصا بہتر خاکہ ذہن وچ آ سکدا اے لہذا ایہ دونے ترتیب تھلے دتی جا رہیاں نيں۔
ظاہری ساخت دے لحاظ توں جو اجزاء اک کمپیوٹر وچ ہُندے نيں انکو وی فیر دو گروہاں وچ تقسیم کيتا جاسکدا اے۔ اک اوہ جو اندرونی وچ شمار ہُندے نيں تے دوسرے اوہ جو بیرونی شمار کيتے جاندے نيں۔
تختۂ ام (انگریزی: motherboard) ایہ اک ایسا تختہ ہُندا اے جس پرکمپیوٹر دے اہم ترین اجزاء یعنی سی پی یو (سینٹرل پراسیسنگ یونٹ) تے یاداشت واقع ہُندے نيں۔ (شکل ا: 2) شکل ب: این ویڈیا شرکہ دا تیار کردہ اک تخطیطی بطاقہ (انگریزی: graphics card) جو GeForce 6600GT کہلاندا اے۔
عامل (انگریزی: processor) اس نوں مرکزی عملی اکائی تے مختصرن CPU وی کہیا جاندا اے۔ (شکل ا: 3)
یاداشت (انگریزی: memory)، ایہ کمپیوٹر وچ کيتے جان والے کم نوں ذخیرہ کرن لئی اک برقی یاداشت دے طور اُتے کم آندی اے۔
تخطیطی بطاقہ (انگریزی: graphics card)، ایہ اک ایسی اختراع ہُندی اے کہ جو تخطط (انگریزی: graphics) دے نال نال متن نوں وی ظاہر کرن دی صلاحیت رکھدی اے، اج بھݪک تقریباً تمام منظرہ بطاقات (video cards) ايسے نوعیت دے ہُندے نيں۔ (شکل ب:)
قرص کثیف (انگریزی: hard drive)، ایہ ودھ گنجائش (انگریزی: capacity) والا ایسا واسطہ (انگریزی: medium) ہُندا اے کہ جو ڈیٹا (انگریزی: data) نوں ذخیرہ کرن دے کم وچ لیایا جاندا اے۔ (شکل ا: 8)
یاں تاں یک کمپیوٹر دے اوہ حصے جنہاں دے ذریعہ اوہ اپنے افعال انجام دیندا اے اوہ سارے اجزاء ہُندے نيں جو اک کمپیوٹر وچ موجود ہوݨ۔ مگر بنیادی طور اُتے ایويں کہیا جاسکدا اے کہ کمپیوٹر دے اہم افعالی حصے اوہ ہُندے نيں کہ جنہاں دی مدد توں مرکزی عملی اکائی (CPU) اندرونی طور اُتے اپنے افعال انجام دیتي اے تے یاداشتی پتے (memory address) تک رسائی حاصل کرسکدی اے۔ انہاں فعالی اجزاء نوں تن وڈے گروہاں وچ تقسیم کيتا جاسکدا اے۔[۲]
کہیا جاندا اے کہ Jacquard loom نوں تریخ دی پہلی قابل پروگرام (programmable) اختراع ہوݨ دا درجہ حاصل اے
کسے وی اک اختراع یا ڈیوائس دے بارے وچ ایہ نئيں کہیا جاسکدا کہ ایہ کمپیوٹر دی پہلی شکل سی۔ اس دی سب توں وڈی وجہ ایہ اے کہ کمپیوٹر دی تعریف تریخ دے نال نال کچھ تبدیل ہُندی رہی اے تے ايسے وجہ توں ایہ ناممکن اے کہ کسے اک کمپیوٹر نوں پہلا کمپیوٹر کہیا جاسکے۔ مثلن کئی اختراعات جنہاں نوں کدی کمپیوٹر تسلیم کيتا جاندا سی اج اوہ کمپیوٹر تسلیم نئيں کيتی جاندیاں۔
اصل وچ کمپیوٹر دی اصطلاح تاں اک ایداں دے شخص دے لئی استعمال کیتی جاندی سی کہ جو حساب کتاب رکھ سکدا ہووے تے اکثر اوہ شخص ایسا کسے ریاضیاتی اختراع مثلن حسابگر یا کسے تے بنیادی پیمائشی آلے وغیرہ دی مدد توں کردا سی یا اے۔
کچھ میکانیکیاختراعات ایسی وی استعمال کیتی جاندی رہیاں نيں جنہاں نوں کمپیوٹر دی انتہائی ابتدائی شکل یا اس دی جانب پیشرفت تاں کہیا جاسکدا اے مگر انکو اج دی تعریف دے مطابق کمپیوٹر تصور نئيں کيتا جاسکدا کیونجے انہاں وچ کوئی قابل پروگرام (programmable) طرز ناپید سی۔ انہاں دیاں مثالاں وچ گنتارا (abacus)، حسابی پیمانہ (slide rule)، اسطرلاب، انٹیکتیرا آلیہ (antikythera mechanism) تے مسلمان سائنسداناں دے بنائے ہوئے متعدد آلات وی شامل کيتے جاسکدے نيں، (ویکھومسلم سائنسدان)۔
ذخیرہ پروگرام (program storage) کسے وی کمپیوٹر دی ہدایات تے پروگرامز نوں ذخیرہ کرن دی استعداد نوں کہیا جاندا اے تے اک کمپیوٹر دی سب توں اہم خصوصیت ہی ایہ تسلیم کيتی جاندی اے کہ اسنوں برمجہ (programmed) کيتا جاسکدا اے۔ یعنی اس توں مراد ایہ اے کہ انہاں آلات (کمپیوٹراں) وچ ہدایات (پروگرامز) دی اک لسٹ نوں پا جاسکدا اے تے ایہ اوہنوں اپنے اندر ذخیرہ کرلیندے نيں تاکہ مستقبل وچ انہاں ہی نوں استعمال کيتا جاسکے تے بار بار ایہ عمل دہرانا نہ پئے۔
اک جانب تاں اکثر کمپیوٹراں نوں دتی جانے والی ایہ ہدایات سادہ تے عمومی نوعیت دی ہُندیاں نيں: مثال دے طور اُتے کسے اک عدد وچ کوئی عدد جمع کرنا، کوئی اک بیان (data) اک جگہ توں دوسری جگہ منتقل کرنا، کوئی اک پیغام کمپیوٹر توں کسے بیرونی اختراع (device) تک بھیجنا وغیرہ۔ کمپیوٹر انہاں ہدایات نوں کمپیوٹر یاداشت (memory) دی مدد توں پڑھدا اے تے فیر اوہناں دا اس ہی ترتیب وچ اجراء (execution) کردا اے جس وچ اوہناں نوں دتا گیا ہووے۔ دوسری جانب کمپیوٹر نوں دتی جان والی ایسی ہدایات اختصاصی نوعیت دی وی ہُندیاں نيں مثال دے طور اُتے برنامج یا پروگرامز وچ ایسی ہدایات کہ جو کمپیوٹرکو پروگرام دے کسے اک حصے توں چھال لا کے دوسرے حصے اُتے پہنچنے دا تے اوتھے توں ہور کم شروع کرنے دا کہندی نيں، انہاں نوں جستی ہدایات (jump instructions) یا شاخاں (branches) کہیا جاندا اے۔ اک اہم گل انہاں شاخاں وچ ایہ ہُندی اے کہ ایہ مشروط (conditional) ہويا کردیاں نيں یعنی اس دا مطلب ایہ ہويا کہ ہدایات دے وکھ وکھ متوالیات (sequences) نوں اس طرح استعمال کيتا جاسکدا اے کہ انہاں دے فعل و نتائج نوں گذشتہ کيتے گئے تجزیات و حسابات یا کسے بیرونی واقعہ دے نال مشروط کيتا جاسکدا اے۔ بہت سارے کمپیوٹر براہ راست ذیلی معمول (subroutine) نوں حمایت فراہم کردے ہوئے اس مقام نوں وی چيتا رکھدے نيں کہ جتھوں انہاں نے کسے کمپیوٹر پروگرام وچ جست (jump) لائی ہووے تے فیر اوہ ہدایت وی چيتا رکھدے نيں کہ کدوں انہاں نوں اس مقام اُتے واپس آنا اے۔
اُتے جست دے تصور نوں آسان انداز وچ سمجھݨ دے لئی ایداں کہیا جاسکدا اے کہ جداں کوئی قاری اک کتاب دا مطالعہ کر رہیا ہو، اوہ جے لوڑ پئے تاں جست لا کر کسے پچھلے صفحے اُتے واپس وی آ سکدا اے تے جے کتاب دا کوئی حصہ غیر متعلقہ محسوس ہوئے تاں اسنوں نظر انداز کردے ہوئے اگلے صفحات دی جانب وی جست لگیا سکدا اے۔ بالکل ايسے طرح اک کمپیوٹر وی برنامج دے کسے گذشتہ حصے اُتے واپس جست لا سکدا اے تے اوتھے توں اپنے اجراء نوں اک بار فیر دہرا سکدا اے اسنوں کمپیوٹر دی بولی وچ کِسے وی برنامج دا روانِ کار (flow of work) کہیا جاندا اے تے ايسے خصوصیت دے باعث اک کمپیوٹر انسانی عمل دخل دے بغیر وی کوئی طے شدہ کم انجام دیندا رہندا اے ۔عام طور اُتے جے کوئی سادہ سا حسابی عمل ہوئے تاں اسنوں تاں حسابگر (calculator) دی مدد توں باآسانی کيتا جاسکدا اے لیکن جے حسابی عمل طویل اعداد توں متعلق ہوئے تاں فیر اسنوں جے حسابگر یا روايتی طریقہ توں کيتا جائے تاں بہت اضافی وقت درکار ہُندا اے مثال دے طور اُتے جے 1 توں 1000 تمام اعداد دی جمع دا عمل ہوئے تاں اس دے لئی قریبا اک ہزار توں ودھ بار تاں حسابگر دی گھنڈیاں دبانی پڑاں گی تے وقت وی ودھ درکار ہوئے گا، لیکن اک کمپیوٹر نوں جے اک بار اس عمل دا تجزیہ کرنے دی ہدایات فراہم کر دتی جاواں تاں اوہ انکو اپنے اندر ذخیرہ کے لیگا تے اگلی بار توں انہاں نوں استعمال وچ لیا کے ایہ حسابی عمل انجام دے سکے گا جس وچ چند لمحات ہی درکار ہوݨ گے۔ اس قسم دی ہدایات دا اک نمونہ تھلے لکھے ہوئے گا۔
mov #0,sum ; set sum to 0
mov #1,num ; set num to 1
loop: add num,sum ; add num to sum
add #1,num ; add 1 to num
cmp num,#1000 ; compare num to 1000
ble loop ; if num <= 1000, go back to 'loop'
halt ; end of program. stop running
اک دلچسپ گل ایہ اے کہ اس تمام سرعت تے حسن کار دے باوجود کمپیوٹرہے اک آلہ تے جو خود کار طور اُتے منطق وی لاگو نئيں کر سکدا تے سوچ وی نئيں سکدا۔ مثال دے طور اُتے اُتے والے کم دی ہدایات نوں پاکر اک کمپیوٹر اس حسابی عمل نوں شائد اک ثانیئے دے وی کئی ہزار حصے توں پہلے مکمل تاں کردیگا [۳] مگر اوہ کدی وی ايسے حسابی عمل نوں کسے تے نسبتن آسان انداز وچ کرن دے بارے وچ نئيں سوچے گا۔ جدوں کہ جے ایہی کم اک انسان نوں دے دتا جائے تاں اوہ اپنی سوچ استعمال کردے ہوئے ایہی حسابی عمل کِسے سہل طریقے توں انجام دین دے بارے وچ سوچ سکدا اے، مثال دے طور اُتے اوہ کوئی ریاضیاتی صیغہ استعمال کرنے دے بارے وچ سوچ سکدا اے جس نوں لاگو کر کہ ایہی کم جلد تے سہولت نال انجام دتا، جداں اک انسان ہوئے گا تاں اوہ تھلے لکھے مساوات استعمال کرن دا سوچ سکدا اے [۴]
اور اس متبادل طریقے دے استعمال نال انسان اوہی درست جواب (500500) کڈھ لیندا اے جو کمپیوٹر اُتے دتی گئی ہدایات توں کڈے گا۔ بس ایہ فرق (سوچن دا) کمپیوٹر تے انسان وچ ایسا اے جس دی بنا اُتے کمپیوٹر مکمل خود مختار نئيں ہُندے۔
اس کمپیوٹر اُتے جو وی کم کیتا جاندا اے اوہدے پِچھے اک کمپیوٹر پروگرام یا پروگرام موجود ہُندا اے جس وچ اوہ ہدایات دتی گئی ہُندیاں نيں جیہناں اُتے چل کے کمپیوٹر ساڈے مطلوبہ کم انجام دیندا اے۔ ایہ ہدایات مختصر یا درجن بھر توں ہزاراں تک ہو سکدیاں نيں۔ عہد حاضر دا اک کمپیوٹر اک ثانیے وچ اک ارب ہدایات اُتے کم کر سکدا اے۔
وڈے کمپیوٹر پروگرام نوں تیار کرن یا لکھݨ وچ computer programmer دی اک پوری جماعت نوں کم کرنا ہُندا اے جس وچ کئی سال لگ جاندے نيں فیر وی اس گل دا امکان باقی رہ جاندا اے کہ شائد پروگرام توقعات دے مطابق کامل نہ ہو سکیا ہو تے اس وچ کوئی خامی رہ گئی ہوئے۔ تے اس طرح دی کوئی خامی جو کسے کمپیوٹر پروگرام وچ اس دی تیاری دے دوران رہ گئی ہو اسنوں کھٹمل (bug) کہیا جاندا اے۔ بعض اوقات ایہ کھٹمل ایداں دے ہُندے نيں کہ انہاں دی موجودگی دے باوجود پروگرام دی کارکردگی اُتے کوئی اثر نئيں پڑدا ایداں دے کھٹملاں نوں حلیم (benign) کہیا جاندا اے۔ جدوں کہ دوسری صورت ایداں دے کھٹملاں دی ہُندی اے کہ جنہاں دی موجودگی کسے وی پروگرام نوں مکمل طور اُتے ناکارہ تے منہدم (crash) کردیندی اے۔ کھٹمل، کمپیوٹر دی کوئی خرابی نئيں ہُندی بلکہ ایہ کمپیوٹر کمپیوٹر پروگرام وچ رہ جان والی کوئی خامی ہُندی اے۔
کمپیوٹر وچ انفرادی ہدایات، اک آلی رمز (machine code) دی صورت وچ موجود ہُندیاں نيں اس طرح کہ ہر ہدایت نوں اک مخصوص عدد دتا گیا ہُندا اے جس نوں اس دا عالجہ رمز (operation code) کہیا جاندا اے۔ مثال دے طور اُتے دو اعداد نوں جمع کرنے دی ہدایت دے لئی اک وکھ عالجہ رمز ہوئے گا تے انہاں نوں آپس وچ ضرب دینے دی ہدایت دے لئی اک وکھ عالجہ رمز ہوئے گا۔
چونکہ شمارندی یاداشت اعداد نوں ہی ذخیرہ کردی اے اس لئی ایہ ہدایات وی اعداد وچ ہی دتی جاندیاں نيں تے ايسے وجہ توں سَبھ کمپیوٹر پروگرام (ہدایات دا مجموعہ) دراصل اک قِسم دا اعدادی بیان ہی ہُندا اے۔ کمپیوٹر وچ ایہ کمپیوٹر پروگراماں دا ذخیرہ انہاں بیانات (data) دے نال وی رکھیا جاسکدا اے کہ جنہاں اُتے عمل کے کہ اوہ کمپیوٹر کم کردا اے اسنوں اِشکالِ فون نیومان (crux of the von Neumann) توں تشبیہ دیندے نيں۔ بعض اوقات انہاں برنامجات دے لئی بیانات توں وکھ جگہ مخصوص ہُندی اے تے ایسی صورت وچ اوہنوں ہاورڈ مارک 1 کمپیوٹر دی مناسبت توں تعمیر ہاورڈ (Havard architecture) کہیا جاندا اے۔
گویا کہ کمپیوٹر پروگرامز نوں اعداد دی اک طویل لِسٹ دی صورت وچ وی لکھیا جاسکدا اے جس نوں مشینی بولی (machine language) کہندے نيں تے ایسا پرانے کمپیوٹر وچ کیتا جاندا سی مگر ایہ اک بہت تھکا دین والا کم ہُندا اے جسنوں اج بھݪک دے پیچیدہ کمپیوٹر وچ انجام دینا نہایت دشوار گزار اے، اس مشکل اُتے قابو پانے دے لئی اک اسم حفظی (mnemonic) دی طرز اُتے اک طریقہ اپنایا گیا جس وچ کِسے وی اک قسم دی کمپیوٹر ہدایت دے لئی کوئی اک لفظ چن دتا جاندا اے، مثال دے طور اُتے ADD, SUB تے JUMP وغیرہ دے اسم حفظی۔ تے انہاں اسماء حفظی نوں جو شمارندی پروگرام لکھݨ دے لئی استعمال کيتے جاندے نيں، اجتماعی بولی (assembly language) کہیا جاندا اے۔ ہن اس دے بعد ہُندا ایويں اے کہ اجتماعی بولی وچ کمپیوٹر پروگرام نوں لکھ کے اک سافٹ ویئر (software) دے ذریعہ مشینی زبان وچ تبدیل کر ليا جاندا اے تاکہ اک کمپیوٹر اسنوں سمجھ لے تے اس قسم دی تبدیلی کرن والا پروگرام، اجتماع ساز (assembler) اکھوایا جاندا اے۔
↑یہ برنامج اک PDP-11 نامی چھوٹے کمپیوٹراں دے لئی بنایا گیا سی جو اک کمپیوٹر دے مثالی افعال دا اک خاکہ پیش کردا اے۔ واوین منقوطہ دے بعد دی تحریر انسانی امداد دے لئی فراھم کيتا گیا تبصرہ اے جس نوں کمپیوٹر نظر انداز کردیندا اے۔
↑ایسی کوششاں وی دی گئیاں نيں تے دی جا رہیاں نيں کہ جو کمپیوٹراں دی اس کمی (خود سوچن دی) نوں پورا کرسکن تے اس سلسلے وچ سافٹ ویئر تے کمپیوٹر پروگرام بناؤن دی پیش رفت حیات اصطناعی دے شعبے وچ آجاندیاں نيں۔