URDUSKY || NETWORK

Computer | کمپیوٹر

183

شمارِندہ

Monitor, Keyboard, and Mouse

شمارندہ [1] [2] (عربی: حاسوب ، فارسی: رایانہ، فرانسیسی: Ordinateur، انگریزی: computer، سونسکا: Dator ) دراصل ایک ایسے آلے کو کہا جاتا ہے جو مہیّا کی گئی ہدایات کی فہرست (یعنی برنامج یا program) کے مطابق بیانات (data) پر استعمل (manipulation) کرنے کی صلاحیت رکھتا ہے۔

آج کی زندگی میں شمارندے کی حیثیت عمومی مقاصد میں استعمال ہونے والے ایک ایسے پرزے (tool) کی ہے جو کہ بنیادی طور پر ایک خورد عامل (microprocessor) پر انحصار کرتا ہے۔ یہاں عمومی مقاصد سے مراد شمارندے کے شعبہ زندگی کے مختلف آلات میں استعمال سے ہے ، کیونکہ آج شمارندہ نہ صرف ایک ذاتی شمارندے (PC) میں بلکہ گھریلو بجلی کے آلات اور صنعتی اور دفتری مقامات سمیت ہر جگہ پاۓ جانے والے آلات میں کسی نہ کسی طور پر موجود ہوتا ہے۔

تعارف

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

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

آغوشیہ (laptop) شمارندوں نے شمارندوں کے مانیٹر ، کی بورڈ اور کیس کے تصور کو یکسر بدل دیا ہے۔

اگر اوپر کے بیان کو مختصر بیان کرکہ لب لباب پیش کرنے کی کوشش کی جاۓ تو شمارندہ کی دو اہم خصوصیات یوں بیان کی جاسکتی ہیں کہ

مثالی شمارندے کے اجزاء

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

ساخت کے لحاظ سے

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

بیرونی اجزاء

  1. شمارندی تظاہرہ (computer display)، یہ ٹیلی وژن نما حصہ ہے جو کہ monitor بھی کہلاتا ہے (شکل ا: 1)
  2. صندوقچہ (case) ، جو کہ مانیٹر کے ساتھ ایک چھوٹے ڈبے یا صندوق کی شکل میں لیٹا یا ایستادہ ہوتا ہے
  3. کلیدی تختہ (keyboard) جو کہ شمارندے میں اطلاعات کو داخل (input) کرنے کے لیۓ استعمال کیا جاتا ہے (شکل ا: 9)
  4. فارہ (mouse) یہ ایک چھوٹی سی اختراع ہے جو کہ شمارندے کے ساتھ تفاعل یا انٹرایکشن کے لیۓ کام میں لائی جاتی ہے (شکل ا: 10)

اندرونی اجزاء

  1. تختۂ ام (motherboard) یہ ایک ایسا تختہ ہوتا ہے کہ جس پر شمارندے کے اھم ترین اجزاء یعنی سی پی یو اور یاداشت واقع ہوتے ہیں۔ (شکل ا: 2)

    شکل ب: این ویڈیا شرکہ کا تیار کردہ ایک تخطیطی بطاقہ (graphics card) جو GeForce 6600GT کہلاتا ہے۔

  2. عامل (processor) اسے مرکزی عملی اکائی اور مختصراً CPU بھی کہا جاتا ہے۔ (شکل ا: 3)
  3. یاداشت (memory)، یہ شمارندے میں کیۓ جانے والے کام کو ذخیرہ کرنے کیلیۓ ایک برقی یاداشت کے طور پر کام آتی ہے۔
  4. تخطیطی بطاقہ (graphics card)، یہ ایک ایسی اختراع ہوتی ہے کہ جو تخطط (graphics) کے ساتھ ساتھ متن کو بھی ظاہر کرنے کی صلاحیت رکھتی ہے، آج کل تقریبا تمام منظرہ بطاقات (video cards) اسی نوعیت کے ہوتے ہیں۔ (شکل ب:)
  5. قرص کثیف (hard drive)، یہ زیادہ گنجائش (capacity) والا ایسا واسطہ (medium) ہوتا ہے کہ جو بیانات (data) کو ذخیرہ کرنے کے کام میں لایا جاتا ہے۔ (شکل ا: 8)
  6. قرص مدمج (Compact Disc)، یہ ایک ایسی بصری قرص (optical disk) ہوتی ہے کہ جس کی مختلف اقسام ہوتی ہیں مثلاً ؛ CD-ROM ، CD-RW، DVD-RAM ، DVD-ROM ۔ (شکل ا: 7)

افعال کے لحاظ سے

یوں تو یک شمارندے یا کمپیوٹر کے وہ حصے جنکے زریعے وہ اپنے افعال انجام دیتا ہے وہ سارے اجزاء ہوتے ہیں جو کہ ایک شمارندے میں موجود ہوں۔ مگر بنیادی طور پر یوں کہا جاسکتا ہے کہ شمارندے کے اھم افعالی حصے وہ ہوتے ہیں کہ جن کی مدد سے مرکزی عملی اکائی (CPU) اندرونی طور پر اپنے افعال انجام دیتي ہے اور یاداشتی پتے (memory address) تک رسائی حاصل کرسکتی ہے۔ ان فعالی اجزاء کو تین بڑے گروہوں میں تقسیم کیا جاسکتا ہے۔

  1. عمارت ہدایتی مجموعہ (instruction set architecture) :
  2. خورد معماری (microarchitecture) :
  3. نظامی طرحبندی (system design) :

تاریخ شمارندہ

کہا جاتا ہے کہ 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]

1+2+3+...+n = {{n(n+1)} \over 2}

اور اس متبادل راہ کے استعمال سے انسان وہی درست جواب (500500) نکال لیتا ہے جو شمارندہ اوپر دی گئی ہدایات سے نکالے گا۔ بس یہ فرق (سوچنے کا) شمارندے اور انسان میں ایسا ہے کہ جس کی بنا پر شمارندے مکمل خود مختار نہیں ہوتے۔

شمارندی برنامجات

1970ء کا ایک سوراخی بطاقہ (punch card) جو FORTRAN برنامج میں استعمال ہوا تھا۔

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

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

  1. ^ ایک فارسی لغت میں شمارندہ کا اندراج
  2. ^ ایک اردو لغت میں شمارندہ کا اندراج
  3. ^ یہ برنامج ایک PDP-11 نامی چھوٹے شمارندوں کیلیۓ بنایا گیا تھا جو کہ ایک شمارندے کے مثالی افعال کا ایک خاکہ پیش کرتا ہے۔ واوین منقوطہ کے بعد کی تحریر انسانی امداد کیلیۓ فراھم کیا گیا تبصرہ ہے جسکو شمارندہ نظر انداز کردیتا ہے۔
  4. ^ ایسی کوششیں بھی کی گئی ہیں اور کی جارہی ہیں کہ جو شمارندوں کی اس کمی (خود سوچنے کی) کو پورا کرسکیں اور اس سلسلے میں مصنع لطیف اور برنامج بنانے کی پیش رفت حیات اصطناعی کے شعبے میں آجاتی ہیں۔
  5. وکیپیڈیا