ریاضی یا منطقی کارروائیوں کو انجام دینے کے لیے خودکار عام مقصد کا آلہ From Wikipedia, the free encyclopedia
کمپیوٹر یا شمارندہ (عربی:كمبيوتر اور حاسوب ، فارسی:کامپیوتر اور رایانہ، فرانسیسی: Ordinateur، انگریزی: computer، سونسکا: Dator) ، ایسی مشین ہے جو حساب لگائے؛ شمار کرے؛ تخمینہ کرے؛ گنتی کرے۔[1]عام بول چال اور تحریر میں اسے کمپیوٹر ہی لکھا اور بولا جاتاہے۔ اسے رسمی اردو میں حاسب یا کمپیوٹر بھی کہتے ہیں۔ یہ ایک برقیاتی آلہ ہے جو حساب کے سوال اور پیچیدہ شماریاتی مسئلے، مقررہ اور مہیا کی گئی ہدایات کے مطابق آسانی سے حل کر لیتا ہے، پھر ان حسابات کے نتائج یا تو ظاہر کر دیتا ہے یا اپنے پاس محفوظ کر لیتا ہے۔ آج کی زندگی میں کمپیوٹر کی حیثیت عمومی مقاصد میں استعمال ہونے والے ایک ایسے پرزہ (tool) کی ہے جو بنیادی طور پر ایک خرد عملیہ(microprocessor) پر انحصار کرتا ہے۔ یہاں عمومی مقاصد سے مراد کمپیوٹر کے شعبہ زندگی کے مختلف آلات میں استعمال سے ہے، کیونکہ آج کمپیوٹر نہ صرف ایک ذاتی کمپیوٹر (PC) میں بلکہ گھریلو بجلی کے آلات اور صنعتی اور دفتری مقامات سمیت ہر جگہ پائے جانے والے آلات میں کسی نہ کسی طور پر موجود ہوتا ہے۔
شکل ا: اندرونی اجزاء کی وضاحت کے لیے ذاتی کمپیوٹر کا ایک منفجر (ایکسپلوڈڈ) نمونہ:
ادارۂ فروغِ قومی زبان آن لائن قومی انگریزی اُردو لُغت کے مطابق کمپیوٹر کی تعریف یوں ہے:
کمپیوٹر؛ ایک برقیاتی آلہ جو حساب کے سوال اور پیچیدہ شماریاتی مسئلے، مقررہ اور پروگرامی ہدایات کے مطابق ،آسانی سے حل کر لیتا ہے، پھر ان حسابات کے نتائج یا تو ظاہر کر دیتا ہے یا اپنے پاس محفوظ کر لیتا ہے۔
کمپیوٹر یونانی زبان کا لفظ ہے جس کا مطلب کمپیوٹ کرنا یا حساب کرنا ہوتا ہے۔ ماضی میں اس لفظ کو حسابگر (انگریزی: Calculator) کے لیے بھی استعمال کیا جاتا تھا لیکن حالیہ دور میں یہ اصطلاح ایک ایسے آلہ (انگریزی: Machine) کے لیے اختیار کی جاتی ہے جو معلومات کو اپنے اندر داخل کرنے کے بعد، ایک مقرر شدہ حکمت عملی کے مطابق انکا تجزیہ کر سکتا ہو۔ یعنی اس کا مطلب دوسرے الفاظ میں یہ ہوا کہ عموماً کمپیوٹر بذاتِ خود كچھ نہیں كرسكتا، بلكہ اسے بتانا اور سمجھانا پڑتا ہے كہ وہ ہماری بہم پہنچائی گئی معلومات اور ہدایات پر كیا اور كیسے كام كرے۔
کمپیوٹر ہماری جانب سے بہم پہنچائی گئی معلومات کو اکھٹا کرتا ہے، انھیں ذخیرہ کرتا ہے اور آپس میں مربوط و ہم بستہ (انگریزی: correlate) کرتا ہے۔ حسابگر اور کمپیوٹر میں اہم ترین فرق یہ ہے کہ کمپیوٹر پیچیدہ کمپیوٹر پروگرام کو اپنے اندر ذخیرہ کر سکتا ہے اور اسی خصوصیت کے باعث انسان کی مدد کے بغیر منطقی تجزیات (logical analysis) انجام دینے کی اہلیت کا حامل ہوتا ہے۔
لیپ ٹاپ (laptop)
کمپیوٹر وں نے کمپیوٹروں کے مانیٹر، کی بورڈ اور کیس کے تصور کو یکسر بدل دیا ہے۔
اگر اوپر کے بیان کو مختصر بیان کرکہ لب لباب پیش کرنے کی کوشش کی جائے تو کمپیوٹر کی دو اہم خصوصیات یوں بیان کی جا سکتی ہیں کہ
یہ مخصوص انداز و ترتیب میں بہم پہنچائی گئی ہدایات یا پروگرامز پر اپنا رد عمل ظاہر کرتا ہے
یہ ان ہدایات کی فہرست (یعنی ایک کمپیوٹر پروگرام) پر نتیجہ خیز طور پر کارموثر انجام دیتا ہے
ایک مثالی کمپیوٹر میں بہت سے اجزاء ہوتے ہیں اور ان کو مختلف انداز میں ترتیب دے کر مطالعہ کیا جا سکتا ہے، مثلاً ساخت کے لحاظ سے اور افعال کے لحاظ سے، دو ایسے طریقۂ مطالعہ ہیں کہ جن کی مدد سے ایک نئے شخص کے لیے کمپیوٹر کی ساخت و فعل کا ایک خاصا بہتر خاکہ ذہن میں آ سکتا ہے لہذا یہ دونوں ترتیب ذیل میں دی جا رہی ہیں۔
ساخت کے لحاظ سے
ظاہری ساخت کے لحاظ سے جو اجزاء ایک کمپیوٹر میں ہوتے ہیں ان کو بھی پھر دو گروہوں میں تقسیم کیا جا سکتا ہے۔ ایک وہ جو اندرونی میں شمار ہوتے ہیں اور دوسرے وہ جو بیرونی شمار کیے جاتے ہیں۔
ماؤس (Mouse) یہ ایک چھوٹی سی اختراع ہے جو کمپیوٹر کے ساتھ تفاعل یا انٹرایکشن کے لیے کام میں لائی جاتی ہے (شکل ا: 10)
اندرونی اجزاء
تختۂ ام (انگریزی: motherboard) یہ ایک ایسا تختہ ہوتا ہے جس پرکمپیوٹر کے اہم ترین اجزاء یعنی سی پی یو اور یاداشت واقع ہوتے ہیں۔ (شکل ا: 2) شکل ب: این ویڈیا شرکہ کا تیار کردہ ایک تخطیطی بطاقہ (انگریزی: graphics card) جو GeForce 6600GT کہلاتا ہے۔
یاداشت (انگریزی: memory)، یہ کمپیوٹر میں کیے جانے والے کام کو ذخیرہ کرنے کے لیے ایک برقی یاداشت کے طور پر کام آتی ہے۔
تخطیطی بطاقہ (انگریزی: graphics card)، یہ ایک ایسی اختراع ہوتی ہے کہ جو تخطط (انگریزی: graphics) کے ساتھ ساتھ متن کو بھی ظاہر کرنے کی صلاحیت رکھتی ہے، آج کل تقریباً تمام منظرہ بطاقات (video cards) اسی نوعیت کے ہوتے ہیں۔ (شکل ب:)
قرص کثیف (انگریزی: hard drive)، یہ زیادہ گنجائش (انگریزی: capacity) والا ایسا واسطہ (انگریزی: medium) ہوتا ہے کہ جو ڈیٹا (انگریزی: data) کو ذخیرہ کرنے کے کام میں لایا جاتا ہے۔ (شکل ا: 8)
قرص مدمج (انگریزی: Compact Disc)، یہ ایک ایسی بصری قرص (انگریزی: optical disk) ہوتی ہے جس کی مختلف اقسام ہوتی ہیں مثلاً ؛CD-ROM، CD-RW، DVD-RAM، رقمی منظری قرص۔ (شکل ا: 7)
افعال کے لحاظ سے
یوں تو یک کمپیوٹر کے وہ حصے جن کے ذریعہ وہ اپنے افعال انجام دیتا ہے وہ سارے اجزاء ہوتے ہیں جو ایک کمپیوٹر میں موجود ہوں۔ مگر بنیادی طور پر یوں کہا جا سکتا ہے کہ کمپیوٹر کے اہم افعالی حصے وہ ہوتے ہیں کہ جن کی مدد سے مرکزی عملی اکائی (CPU) اندرونی طور پر اپنے افعال انجام دیتي ہے اور یاداشتی پتے (memory address) تک رسائی حاصل کرسکتی ہے۔ ان فعالی اجزاء کو تین بڑے گروہوں میں تقسیم کیا جا سکتا ہے۔[2]
کمپیوٹر کی تاریخ پر تفصیلی مضمون کے لیے کمپیوٹر کی تاریخ
کہا جاتا ہے کہ 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
ایک دلچسپ بات یہ ہے کہ اس تمام سرعت اور حسن کار کے باوجود کمپیوٹ رہے ایک آلہ اور جو خود کار طور پر منطق بھی لاگو نہیں کر سکتا اور سوچ بھی نہیں سکتا۔ مثال کے طور پر اوپر والے کام کی ہدایات کو پاکر ایک کمپیوٹر اس حسابی عمل کو شائد ایک ثانیئے کے بھی کئی ہزار حصے سے قبل مکمل تو کردیگا [3] مگر وہ کبھی اسی حسابی عمل کو کسی اور نسبتا آسان انداز میں کرنے کے بارے میں نہیں سوچے گا۔ جبکہ اگر یہی کام ایک انسان کو دے دیا جائے تو وہ اپنی سوچ استعمال کرتے ہوئے یہی حسابی عمل کسی سہل طریقے سے انجام دینے کے بارے میں سوچ سکتا ہے، مثال کے طور پر وہ کوئی ریاضیاتیصیغہ استعمال کرنے کے بارے میں سوچ سکتا ہے جس کو لاگو کر کہ یہی کام جلد اور سہولت سے انجام دیا جس کے، جیسے ایک انسان ہوگا تو وہ مندرجہ ذیل مساوات استعمال کرنے کا سوچ سکتا ہے [4]
اور اس متبادل راہ کے استعمال سے انسان وہی درست جواب (500500) نکال لیتا ہے جو کمپیوٹر اوپر دی گئی ہدایات سے نکالے گا۔ بس یہ فرق (سوچنے کا) کمپیوٹر اور انسان میں ایسا ہے جس کی بنا پر کمپیوٹر مکمل خود مختار نہیں ہوتے۔
کمپیوٹر پر ہم جو بھی کام کرتے ہیں اس کے پیچھے ایک کمپیوٹر پروگرام یا پروگرام موجود ہوتا ہے جس میں وہ ہدایات دی گئی ہوتی ہیں جن پر چل کر کمپیوٹر ہمارے مطلوبہ کام انجام دیتا ہے۔ یہ ہدایات مختصر یا درجن بھر سے ہزاروں تک ہو سکتی ہیں۔ عہد حاضر کا ایک کمپیوٹر ایک ثانیے میں ایک ارب ہدایات پر کام کر سکتا ہے یا انکا اجراء کر سکتا ہے اور برسوں اس عالجے (operation) میں کوئی ایک غلطی بھی نہیں کرتا۔
بڑے کمپیوٹر پروگرام کو تیار کرنے یا لکھنے میں شمارندی مبرمج (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) کہا جاتا ہے۔ اب اس کے بعد ہوتا یوں ہے کہ اجتماعی زبان میں برنامجات (programs) کو لکھ کر ایک سافٹ ویئر (software) کے ذریعہ مشینی زبان میں تبدیل کر لیا جاتا ہے تاکہ ایک کمپیوٹر اس کو سمجھ لے اور اس قسم کی تبدیلی کرنے والا پروگرام، اجتماع ساز (assembler) کہلایا جاتا ہے۔
یہ برنامج ایک PDP-11 نامی چھوٹے کمپیوٹروں کے لیے بنایا گیا تھا جو ایک کمپیوٹر کے مثالی افعال کا ایک خاکہ پیش کرتا ہے۔ واوین منقوطہ کے بعد کی تحریر انسانی امداد کے لیے فراھم کیا گیا تبصرہ ہے جس کو کمپیوٹر نظر انداز کردیتا ہے۔
ایسی کوششیں بھی کی گئی ہیں اور کی جا رہی ہیں کہ جو کمپیوٹروں کی اس کمی (خود سوچنے کی) کو پورا کرسکیں اور اس سلسلے میں سافٹ ویئر اور برنامج بنانے کی پیش رفت حیات اصطناعی کے شعبے میں آجاتی ہیں۔
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.