کمپیوٹر

کمپیوٹر  (عربی:كمبيوتر اور حاسوب  ، فارسی:کامپیوتر اور رایانہ، فرانسیسی: Ordinateur، انگریزی: computer، سونسکا: Dator)   ، ایسی مشین ہے جو حساب لگائے؛ شمار کرے؛ تخمینہ کرے؛ گنتی کرے۔عام بول چال اور تحریر میں اسے کمپیوٹر ہی لکھا اور بولا جاتاہے۔ اسے رسمی اردو میں حاسب یا شمارندہ  بھی کہتے ہیں۔ یہ ایک برقیاتی آلہ ہے جو حساب کے سوال اور پیچیدہ شماریاتی مسئلے، مقررہ اور مہیا کی گئی ہدایات کے مطابق آسانی سے حل کر لیتا ہے، پھر ان حسابات کے نتائج یا تو ظاہر کر دیتا ہے یا اپنے پاس محفوظ کر لیتا ہے۔ آج کی زندگی میں کمپیوٹر کی حیثیت عمومی مقاصد میں استعمال ہونے والے ایک ایسے پرزہ (tool) کی ہے جو بنیادی طور پر ایک خرد عملیہ(microprocessor) پر انحصار کرتا ہے۔ یہاں عمومی مقاصد سے مراد کمپیوٹر کے شعبہ زندگی کے مختلف آلات میں استعمال سے ہے، کیونکہ آج کمپیوٹر نہ صرف ایک ذاتی کمپیوٹر (PC) میں بلکہ گھریلو بجلی کے آلات اور صنعتی اور دفتری مقامات سمیت ہر جگہ پائے جانے والے آلات میں کسی نہ کسی طور پر موجود ہوتا ہے۔

تعریف 
ادارۂ فروغِ قومی زبان آن لائن قومی انگریزی اُردو لُغت کے مطابق کمپیوٹر کی تعریف یوں ہے:
کمپیوٹر؛ ایک برقیاتی آلہ جو حساب کے سوال اور پیچیدہ شماریاتی مسئلے، مقررہ اور پروگرامی ہدایات کے مطابق ،آسانی سے حل کر لیتا ہے، پھر ان حسابات کے نتائج یا تو ظاہر کر دیتا ہے یا اپنے پاس محفوظ کر لیتا ہے۔

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

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

مثالی کمپیوٹر کے اجزاء 
ایک مثالی کمپیوٹر میں بہت سے اجزاء ہوتے ہیں اور انکو مختلف انداز میں ترتیب دے کر مطالعہ کیا جاسکتا ہے، مثلا ساخت کے لحاظ سے اور افعال کے لحاظ سے، دو ایسے طریقۂ مطالعہ ہیں کہ جن کی مدد سے ایک نئے شخص کے لیے کمپیوٹر کی ساخت و فعل کا ایک خاصا بہتر خاکہ ذہن میں آ سکتا ہے لہذا یہ دونوں ترتیب ذیل میں دی جا رہی ہیں۔

ساخت کے لحاظ سے 
ظاہری ساخت کے لحاظ سے جو اجزاء ایک کمپیوٹر میں ہوتے ہیں انکو بھی پھر دو گروہوں میں تقسیم کیا جاسکتا ہے۔ ایک وہ جو اندرونی میں شمار ہوتے ہیں اور دوسرے وہ جو بیرونی شمار کیے جاتے ہیں۔

بیرونی اجزاء 
 کمپیوٹر ڈسپلے، یہ ٹیلی وژن نما حصہ ہے جو مانیٹر (Monitor) بھی کہلاتا ہے (شکل ا: 1)
 صندوقچہ (case)، جو مانیٹر کے ساتھ ایک چھوٹے ڈبے یا صندوق کی شکل میں لیٹا یا ایستادہ ہوتا ہے
 کلیدی تختہ (keyboard) جو کمپیوٹر میں اطلاعات کو داخل (input) کرنے کے لیے استعمال کیا جاتا ہے (شکل ا: 9)
 ماؤس (Mouse) یہ ایک چھوٹی سی اختراع ہے جو کمپیوٹر کے ساتھ تفاعل یا انٹرایکشن کے لیے کام میں لائی جاتی ہے (شکل ا: 10)

اندرونی اجزاء 
{|
|-
|<ol>
 تختۂ ام () یہ ایک ایسا تختہ ہوتا ہے جس پرکمپیوٹر کے اہم ترین اجزاء یعنی سی پی یو اور یاداشت واقع ہوتے ہیں۔ (شکل ا: 2)  
 عامل () اسے مرکزی عملی اکائی اور مختصرا CPU بھی کہا جاتا ہے۔ (شکل ا: 3)
 یاداشت ()، یہ کمپیوٹر میں کیے جانے والے کام کو ذخیرہ کرنے کے لیے ایک برقی یاداشت کے طور پر کام آتی ہے۔ 
 تخطیطی بطاقہ ()، یہ ایک ایسی اختراع ہوتی ہے کہ جو تخطط () کے ساتھ ساتھ متن کو بھی ظاہر کرنے کی صلاحیت رکھتی ہے، آج کل تقریباً تمام منظرہ بطاقات (video cards) اسی نوعیت کے ہوتے ہیں۔ (شکل ب:) 
 قرص کثیف ()، یہ زیادہ گنجائش () والا ایسا واسطہ () ہوتا ہے کہ جو ڈیٹا () کو ذخیرہ کرنے کے کام میں لایا جاتا ہے۔ (شکل ا: 8)
 قرص مدمج ()، یہ ایک ایسی بصری قرص () ہوتی ہے جس کی مختلف اقسام ہوتی ہیں مثلا ؛ CD-ROM، CD-RW، DVD-RAM، رقمی منظری قرص۔ (شکل ا: 7)
|}

افعال کے لحاظ سے 
یوں تو یک کمپیوٹر کے وہ حصے جن کے ذریعہ وہ اپنے افعال انجام دیتا ہے وہ سارے اجزاء ہوتے ہیں جو ایک کمپیوٹر میں موجود ہوں۔ مگر بنیادی طور پر یوں کہا جاسکتا ہے کہ کمپیوٹر کے اہم افعالی حصے وہ ہوتے ہیں کہ جن کی مدد سے مرکزی عملی اکائی (CPU) اندرونی طور پر اپنے افعال انجام دیتي ہے اور یاداشتی پتے (memory address) تک رسائی حاصل کرسکتی ہے۔ ان فعالی اجزاء کو تین بڑے گروہوں میں تقسیم کیا جاسکتا ہے۔
 عمارت ہدایتی مجموعہ (instruction set architecture) :
 خورد معماری (microarchitecture) :
 نظامی طرحبندی (system design) :

کمپیوٹر کی تاریخ 
 کمپیوٹر کی تاریخ پر تفصیلی مضمون کے لیے کمپیوٹر کی تاریخ

کسی بھی ایک اختراع یا ڈیوائس کے بارے میں یہ نہیں کہا جاسکتا کہ یہ کمپیوٹر کی پہلی شکل تھی۔ اس کی سب سے بڑی وجہ یہ ہے کہ کمپیوٹر کی تعریف تاریخ کے ساتھ ساتھ کچھ تبدیل ہوتی رہی ہے اور اسی وجہ سے یہ ناممکن ہے کہ کسی ایک کمپیوٹر کو پہلا کمپیوٹر کہا جاسکے۔ مثلا کئی اختراعات جن کو کبھی کمپیوٹر تسلیم کیا جاتا تھا آج وہ کمپیوٹر تسلیم نہیں کی جاتیں۔

اصل میں کمپیوٹر کی اصطلاح تو ایک ایسے شخص کے لیے استعمال کی جاتی تھی کہ جو حساب کتاب رکھ سکتا ہو (دیکھیےانسانی کمپیوٹر) اور اکثر وہ شخص ایسا کسی ریاضیاتی اختراع مثلا حسابگر یا کسی اور بنیادی پیمائشی آلے وغیرہ کی مدد سے کرتا تھا یا ہے۔

کچھ میکانیکی اختراعات ایسی بھی استعمال کی جاتی رہی ہیں جن کو کمپیوٹر کی انتہائی ابتدائی شکل یا اس کی جانب پیشرفت تو کہا جاسکتا ہے مگر انکو آج کی تعریف کے مطابق کمپیوٹر تصور نہیں کیا جاسکتا کیونکہ ان میں کوئی قابل پروگرام (programmable) طرز ناپید تھی۔ ان کی مثالوں میں گنتارا (abacus)، حسابی پیمانہ (slide rule)، اسطرلاب، انٹیکتیرا آلیہ (antikythera mechanism) اور مسلمان سائنسدانوں کے بنائے ہوئے متعدد آلات بھی شامل کیے جاسکتے ہیں، (دیکھیےمسلم سائنسدان)۔

ذخیرۂ پروگرام 
 شمارندی برمجہ (computer programming) اور شمارندی برنامج (computer program)
ذخیرۂ پروگرام (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) نکال لیتا ہے جو کمپیوٹر اوپر دی گئی ہدایات سے نکالے گا۔ بس یہ فرق (سوچنے کا) کمپیوٹر اور انسان میں ایسا ہے جس کی بنا پر کمپیوٹر مکمل خود مختار نہیں ہوتے۔

کمپیوٹر پروگرام 
کمپیوٹر پر ہم جو بھی کام کرتے ہیں اس کے پیچھے ایک کمپیوٹر پروگرام یا پروگرام موجود ہوتا ہے جس میں وہ ہدایات دی گئی ہوتی ہیں جن پر چل کر کمپیوٹر ہمارے مطلوبہ کام انجام دیتا ہے۔ یہ ہدایات مختصر یا درجن بھر سے ہزاروں تک ہو سکتی ہیں۔ عہد حاضر کا ایک کمپیوٹر ایک ثانیے میں ایک ارب ہدایات پر کام کر سکتا ہے یا انکا اجراء کر سکتا ہے اور برسوں اس عالجے (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) کہلایا جاتا ہے۔

حوالہ جات و تبصرے 

کمپیوٹر
صارفی برقیات
برقیاتی صنعت
Short description is different from Wikidata