কোন ডেটাকে এক স্থান থেকে অন্য স্থানে অথবা এক ডিভাইস থেকে অন্য ডিভাইসে অথবা একজনের ডেটা অন্যজনের নিকট বাইনারি পদ্ধতিতে স্থানান্তর করার পদ্ধতি হলাে ডেটা কমিউনিকেশন।
বাইনারি সংখ্যা পদ্ধতি (Binary Digital System): সাধারণ ০ এবং ১ এ দুই সংখ্যার পদ্ধতিকে বলা হয় বাইনারি সংখ্যা পদ্ধতি। বাইনারির সবচেয়ে সহজ একটি পদ্ধতি এটা যার ভিত্তি হচ্ছে ২। এ পদ্ধতি বােঝার জন্য সবচেয়ে ভালাে একটি উদাহরণ... হচ্ছে অডােমিটার ।।
সংখ্যা পদ্বতির রূপান্তর: ডেসিমেল, বাইনারি, অক্টাল ও হেক্সাডেসিমেল সংখ্যা পদ্ধতির মধ্যে এক সংখ্যা পদ্ধতির সংখ্যাকে অন্য আর এক সংখ্যা পদ্ধতিতে রূপান্তর করা যায়।
বাইনারি থেকে ডেসিমেল এ রূপান্তর:
বাইনারি সংখ্যা ভিত্তি দুই ভাই এর ঘাত বা শক্তি ২ দিয়ে হিসাব করতে হবে। যেমন- |
|
বাইনারি সংখ্যা। |
দশমিক সংখ্যা |
(১১০১১)২ |
=(১×২৪)+ (১×২৩)+ (০×২২)+ (১×২১)+ (১×২০) |
(১১০১১)২ = (২৭)১০
বুলিয়ান অ্যালজেবরা (Boolean Algebra): শুধু ০ এবং ১ এ দুটি বাইনারি সংখ্যার ওপর ভিত্তি করে অন্য সকল প্রকার সংখ্যার প্রদর্শন ও হিসাবনিকাশের বীজগণিতীয় পদ্ধতিকে বুলিয়ান আলজেবরা বলে। বুলিয়ান অ্যালজেবরায় প্রতিটি চলকের মান... কেবল ০ কিংবা ১ হতে পারে। কোনাে চলকের মান সত্য হলে ১ এবং মিথ্যা হলে ০ ধরা হয়। লজিক গেইট বা যুক্তি বর্তনীর। উচ্চ ভােল্টেজ ১ এবং নিম্ন ভােল্টেজ ০ ধরা হয়।
উলেখ্য, বুলিয়ান অ্যালজেবরা লজিক সার্কিড ডিজাইনের জন্য ব্যবহৃত হয়। জর্জবল ১৮৫৪ সালে গণিত এবং যুক্তির মধ্যে যে সুসম্পর্ক রয়েছে তা সনাক্ত করতে সক্ষম হন। তার এই বীজগণিতই বুলিয়ান অ্যালজেবরা নামে পরিচিত।
লজিক গেট (Logic Gate): লজিক বা যৌক্তিক গেট হলাে এক ধরনের ডিজিটাল ইলেকট্রনিক ডিভাইস যা বুলিয়ান এলজেবরা ব্যবহার করে বিভিন্ন ধরনের যৌক্তিক অপারেশন বা লজিক অপারেশন করে থাকে। বিভিন্ন ধরনের লজিক গেটের মধ্যে মৌলিক গেট হলাে- AND গেট, OR গেট এবং NOT গেট। এসব গেট ব্যবহার করে অন্যান্য যৌক্তিক গেট তৈরি করা যায়।
মৌলিক গেট |
যৌগিক গেট |
AND, OR এবং NOT |
NAND গেট, NOR গেট, XOR গেট, এবং XNOR গেট |
গেট (Gate) |
বৈশিষ্ট্য |
||||||||||||||||||
OR গেট |
দুই বা ততােধিক ইনপুট এবং একটি মাত্র। আউটপুট থাকে। এখানে আউটপুট ইনপুট
অর গেটের সত্যক সারণি |
||||||||||||||||||
AND গেট |
দুই বা ততােধিক ইনপুট এবং একটি মাত্র । আউটপুট থাকে। এখানে আউটপুট ইনপুটগুলাে। যৌক্তিক গুণফলের সমান। সবগুলাে ইনপুট ১ হলে আউটপুট ১ হয়।। যেকোন একটি ০ হলে আউটপুট ০ হয়।
অ্যান্ড গেটের সত্যক সারণি |
||||||||||||||||||
NOT গেট |
একটি মাত্র ইনপুট এবং একটি মাত্র আউটপুট থাকে। এটি এমন একটি গেট যা আউটপুট, ইনপুটের বিপরীত মান।
নট গেটের সত্যক সারণি |
||||||||||||||||||
NOR গেট |
OR গেট ও NOT গেট এর সমন্বিত গেটকে নর গেট বলে। |
||||||||||||||||||
NAND গেট |
AND গেট ও NOT গেট এর সমন্বিত গেট হল ন্যান্ড গেট। |
||||||||||||||||||
XOR গেট |
Exclusive ORএর সংক্ষিপ্ত রূপ হলাে XOR। XOR গেট মৌলিক গেট দিয়ে তৈরি করা হয়। |
||||||||||||||||||
XNOR গেট |
XOR গেট ও NOT গেট এর সমন্বিত গেটের নাম XNOR। |
প্রথম কম্পিউটার প্রােগ্রামের রচয়িতা
ইংরেজ কবি লর্ড বায়রনের কন্যা অগাস্টা অ্যাডা বায়রনকে প্রথম কম্পিউটার প্রােগ্রামের রচয়িতা হিসেবে গণ্য করা হয়।
কম্পিউটারের ভাষা
কম্পিউটার একটি অত্যাধুনিক...
ইলেকট্রনিক যন্ত্র । ইলেকট্রনিক সংকেতের উপর ভিত্তি করে তৈরি করা হয়েছে কম্পিউটারের ভাষা। গণিতের বাইনারি পদ্ধতিতে যে কোনাে সংখ্যাকে ১ এবং ০ দ্বারা প্রকাশ করা যায়। এরূপ বাইনারি যে কোনাে সংখ্যাকে ইলেক্ট্রনিক অন/অফ করে প্রকাশিত ভাষাই হলাে ইলেকট্রনিক ল্যাঙ্গুয়েজ বা কম্পিউটারের ভাষা। বাইনারি হলাে এমন সংখ্যা পদ্ধতি, যাতে যে কোনাে সংখ্যাকে ০ এবং ১ দ্বারা প্রকাশ করা যায়। যেমন, ২৯ কে ১১১০১ দ্বারা, ২০৩ কে ১১০০১০১১ দ্বারা প্রকাশ করা যায়। এভাবে যে কোনাে সংখ্যাকে ১ এবং ০ দ্বারা প্রকাশ করা যায়। কম্পিউটার কেবল ইলেকট্রনিক সংকেত অর্থাৎ সার্কিটে বিদ্যুৎ আছে কি নেই তা বােঝে। অর্থাৎ কম্পিউটার শুধু দুটি অবস্থা বােঝে। বাইনারি 1 দ্বারা বিদ্যুৎ আছে (On) এবং 0 দ্বারা। বিদ্যুৎ নেই (Off) এর উপর ভিত্তি করেই কম্পিউটারের ভাষা তৈরি করা হয়েছে। এভাবে যে কোনাে শব্দ বা চিহ্ন কম্পিউটারকে বােঝার উপযােগী করে অর্থাৎ ০ এবং ১ এ রূপান্তরিত করে। দেয়ার ব্যবস্থা করা হয়েছে কম্পিউটার ল্যাঙ্গুয়েজ এ।
প্রােগ্রামিং ল্যাঙ্গুয়েজ
মেশিনের ভাষায় বিদ্যুতের অনুপস্থিতিকে ০ এবং উপস্থিতিকে ১ ধরা হয়। কিন্তু ০ এবং ১ দিয়ে লেখা মানুষের পক্ষে বুঝা কঠিন। প্রাথমিক পর্যায়ে কম্পিউটারের জন্য এ কঠিন কাজটি করতে হয়েছিল। কিন্তু পরবর্তী সময়ে মানুষ কম্পিউটারকে মানুষের ভাষার কাছাকাছি কিছু শব্দ চেনাতে সক্ষম হয়েছিল। এ রকম কৃত্রিমভাবে তৈরী করা ভাষা দিয়ে প্রণীত নির্দেশাবলি কম্পিউটার বুঝতে পারে। এ ভাষাকে বলা হয় প্রােগ্রামিং ল্যাঙ্গুয়েজ। কম্পিউটার দিয়ে সহজে কোনাে সমস্যা সমাধানের জন্য কম্পিউটারকে তার নিজস্ব বােধগম্য ভাষায় নির্দেশ প্রদান করতে হয়। কম্পিউটারের নিজস্ব ও বােধগম্য ভাষায় নির্দেশ প্রদানের জন্য নির্দিষ্ট নিয়ম অনুযায়ী শব্দ, বর্ণ, সংকেত ইত্যাদির সুনির্দিষ্ট বিন্যাস হচ্ছে প্রােগ্রাম। প্রোগ্রামে ব্যবহৃত বর্ণ, শব্দ, সংকেত ইত্যাদি নির্দিষ্ট গঠনে তৈরি হয় প্রােগ্রামের ভাষা।
বিভিন্ন স্তরের প্রােগ্রামের ভাষা
প্রােগ্রামের ভাষাকে বৈশিষ্ট্য অনুযায়ী পাঁচটি স্তরে (Level) বা প্রজন্মে (Generation) ভাগ করা যায়। যথা-
ক. প্রথম প্রজন্ম ভাষা (১৯৪৫) : মেশিন ভাষা (Machine Language);
খ. দ্বিতীয় প্রজন্ম ভাষা (১৯৫০) : অ্যাসেম্বলি ভাষা (Assembly Language);
গ. তৃতীয় প্রজন্ম ভাষা (১৯৬০) : উচ্চতর বা হাই লেভেল (High Level) ভাষা।
ঘ. চতুর্থ প্রজন্ম ভাষা (১৯৭০) : অতি উচ্চতর বা ভোর হাই লেভেল (Very High Level) ভাষা ও
ঙ. পঞ্চম প্রজন্ম ভাষা (১৯৮০); স্বাভাবিক বা ন্যাচারাল (Natural) ভাষা।
কম্পিউটারকে দিয়ে কোনো কাজ করাতে হলে তাকে বিশেষভাবে নির্দেশ দিতে হয়। কম্পিউটারের প্রসেসর কেবল একটি নির্দিষ্ট সেটের কমান্ড এক্সিকিউট করতে পারে, যাকে বলে ইনস্ট্রাকশন সেট।
কম্পাইলারের কাজ হাই লেভেল ভাষার উৎস প্রােগ্রামকে বস্তু প্রােগ্রামে অনুবাদ করা। এটি গৌণ মেমােরিতে থাকে। কোনাে নির্দিষ্ট কম্পাইলার একটিমাত্র হাই লেভেল ভাষাকে মেশিন ভাষায় পরিণত করতে পারে। তাই ভিন্ন ভিন্ন হাই লেভেল ভাষার জন্য ভিন্ন ভিন্ন কম্পাইলার প্রয়ােজন।
কম্পাইলারের প্রধান কাজ হলা...
:
১. উৎস প্রােগ্রামের উপাত্ত বস্তু প্রােগ্রামে অনুবাদ করা।
২. প্রােগ্রামের সাথে প্রয়ােজনীয় রুটিন যােগ করা।
৩. প্রােগ্রামে কোনাে ভুল থাকলে তা জানানাে।
৪. প্রধান মেমােরিতে প্রয়ােজনীয় স্মৃতি অবস্থানের ব্যবস্থা করা।
Compiler কার্যপ্রণালী
কম্পাইলারের প্রধান প্রধান সুবিধা
১. পুরাে প্রােগ্রামটিকে একবারেই বস্তু প্রােগ্রামে অনুবাদ করে ।
২. প্রােগ্রামে কোনাে ভুল থাকলে তা জানানাে।
৩.প্রধান মেমােরিতে প্রয়ােজনীয় স্মৃতি অবস্থানের ব্যবস্থা করা (Allocation)
৪. প্রয়ােজনে বস্তু বা উত্স প্রােগ্রামকে ছাপিয়ে বের করা।
কম্পাইলারের অসুবিধা হলাে কম্পাইলার যেহেতু পুরাে প্রোগ্রামটিকে একবারেই বস্তু প্রােগ্রামে অনুবাদ করে, তাই ধাপে ধাপে এর ভুল শনাক্ত করা যায় না ফলে সাথে সাথে সংশােধনও করা যায় না।
কম্পিউটারের সাহায্যে কোনাে সমস্যা সমাধানের জন্য প্রােগ্রাম তৈরির পাঁচটি ধাপ আছে। যথা-
ক. সমস্যা বিশ্লেষন।
খ. প্রােগ্রাম ডিজাইন
গ. প্রােগ্রাম ডেভেলপমেন্ট বা কোডিং।
ঘ প্রােগ্রাম বাস্তবায়ন (টেস্টিং ও প্রােগ্রামের ডিবাগিং)
ঙ. প্রােগ্রাম রক্ষণাবেক্ষণ।
...
>
ক. সমস্যা বিশ্লেষণ (Problem analysis) : সমস্যা নির্দিষ্ট করার পর সমস্যা সম্বন্ধে বিভিন্ন ডেটা সংগ্রহ করে তা বিশ্লেষণ করতে হয়। এর জন্য সমস্যাকে ছােট ছােট অংশে ভাগ করা হয়। প্রয়ােজনে চার্ট, তালিকা, গ্রাফ ইত্যাদির আশ্রয় নিতে হয়। একে বলে সিস্টেম বিশ্লেষণ। সমস্যার বিশ্লেষণে বর্তমান সিস্টেমের নিম্নলিখিত বিষয়গুলাে গুরুত্ব দিতে হয়-ইনপুট শনাক্তকরণ ও আউটপুট শনাক্তকরণ।
খ. প্রােগ্রাম ডিজাইন (Program design): প্রােগ্রাম ডিজাইন বলতে বােঝায় সমস্যা সমাধান করার জন্য বর্তমান সিস্টেমের প্রয়ােজনীয় সংশােধন করে নতুন সিস্টেমের মূল রূপরেখা নির্ণয়। অধিকাংশ ক্ষেত্রেই কোনাে জটিল সমস্যাকে সঠিকভাবে বিশ্লেষণ করতে পারলেই তার সহজ সমাধান বেরিয়ে আসে। সমাধানের জন্য সমস্যাকে বিভিন্ন অংশে ভাগ করে প্রত্যেক অংশ সম্বন্ধে পৃথকভাবে ও সব অংশ সম্বন্ধে সামগ্রিকভাবে চিন্তা করতে হয়। বিভিন্ন অংশের পারস্পরিক সম্বন্ধও বিচার করতে হয়। নতুন সিস্টেমের আর্থিক দিকও ভেবে দেখতে হয়। প্রােগ্রাম ডিজাইনে নিম্নলিখিত বিষয়গুলাে অন্তর্ভুক্ত। যথা-
অতঃপর সামগ্রিকভাবে চিন্তা করে প্রােগ্রামের বিভিন্ন অংশ কার্যকরী করার জন্য নিম্নলিখিত বিষয়গুলাে তৈরি করতে হয়।
গ. প্রােগ্রাম ডেভেলপমেন্ট বা কোডিং (Program coding) : অ্যালগােরিদম, ফ্লোচার্ট ও সুডােকোড থেকে সুবিধামত কোনাে প্রােগ্রামিং ভাষায় প্রােগ্রাম লিখতে হয়। এ হলাে প্রােগ্রামিং-এর সবচেয়ে সহজ অংশ, একে প্রােগ্রাম কোডিং (Coding) বলে।
ঘ. প্রােগ্রাম বাস্তবায়ন (Program development) : প্রােগ্রাম কোডিং করার পর প্রােগ্রাম বাস্তয়বান করা হয়। এ পর্বের প্রথমে প্রােগ্রামকে টেস্টিং করা হয় এবং টেস্টিং করার পর প্রয়ােজন অনুসারে সংশােধন করা হয়। প্রােগ্রামে ভুল থাকলে তা সংশােধন করা হয়। প্রোগ্রামের ভুলকে প্রােগ্রামের বাগ বলা হয়। আর এ বাগ সংশােধন করাকে ডিবাগিং বলা হয়।
ঙ. প্রোগ্রাম রক্ষণাবেক্ষণ (Program maintenance); বাইরের পরিস্থিতির পরিবর্তনের জন্য মাঝে মাঝে প্রােগ্রামে ছােটখাট পরিবর্তন করার প্রয়ােজন হয়। একে বলে রক্ষণাবেক্ষণ। সাধারণত কোনাে প্রতিষ্ঠানে কম্পিউটার স্থাপনের কয়েক বছর পর থেকে নতুন প্রােগ্রাম তৈরি করার চেয়ে পুরানাে প্রোগ্রামে রক্ষণাবেক্ষণে বেশি সময় ব্যয় হয়। জটিল প্রােগ্রামকে সাধারণত কতগুলাে ছােট অংশে ভাগ করা হয়, প্রত্যেক অংশকে বলে মডিউল (Module)। প্রত্যেক মাডিউল একটি নির্দিষ্ট কাজ করে। প্রােগ্রাম রক্ষণাবেক্ষণ সহজ করার জন্য প্রােগ্রামের সঠিক ডকুমেন্টেশন তৈরি করতে হবে।
অ্যালগােরিদম শব্দটি আরব দেশের গণিতবিদ আল খারিজমী’র নাম থেকে উৎপত্তি হয়েছে। অ্যালগােরিদম অর্থ ধাপে ধাপে সমস্যা সমাধান অর্থাৎ একটি সমস্যাকে কয়েকটি ধাপে ভেঙ্গে প্রত্যেকটি ধাপ পরপর সমাধান করে সমগ্র সমস্যা সমাধান করা।
অ্যালগােরিদম চারটি শর্ত সিদ্ধ করে। যথা-
১. অ্যালগােরিদম সহজবাে...
্য হবে।
২. কোনাে ধাপই দ্ব্যর্থবােধক হবে না, প্রত্যেকটি ধাপ স্পষ্ট হবে যাতে কম্পিউটার সহজেই তা বুঝতে পারে।
৩. সসীমসংখ্যক ধাপে সমস্যার সমাধান হবে, কম্পিউটারের ক্ষেত্রে সীমাবদ্ধ সময়েই সমাধান পাওয়া যাবে।
৪. একে ব্যাপকভাবে প্রয়ােগ করা সম্ভব হবে।
কম্পিউটার নিজে চিন্তা করে কোনাে কিছু করতে পারে না বলেই এভাবে অ্যালগােরিদমের মাধ্যমে তাকে পরপর কি করতে হবে সেই নির্দেশ দিতে হয়। অ্যালগােরিদম হাই লেভেল ভাষায় অনুবাদ করে তবেই ইনপুটে দিতে হয়।
ফ্লোচার্ট হলাে এমন কতগুলাে ছবি যা থেকে বােঝা যায় সমস্যা সমাধান করতে হলে পরপর কিভাবে অগ্রসর হতে হবে। একে ফ্লোচার্ট বলার কারণ এ থেকে প্রােগ্রামের প্রবাহ (Flow) কিভাবে হচ্ছে তা বােঝা যায়। ফ্লোচার্ট প্রােগ্রাম বুঝতে প্রভূত সাহায্য করে ফলে বিভিন্ন প্রােগ্রামার সিস্টেম বিশ্লেষক, কম্পিউটার ব্যবহারকারী... প্রমুখের মধ্যে যােগাযােগের সুবিধা হয়।
ফ্লোচার্ট এর প্রকারভেদ ও সুবিধাবলী
ফ্লোচাটকে প্রধানত দুই ভাগে ভাগ করা যায়। যথা-
১. সিস্টেম ফ্লোচার্ট এবং
২. প্রােগ্রাম ফ্লোচার্ট।
একটি উন্নতমানের ফ্লোচার্ট নিম্নলিখিত সুবিধা প্রদান করে :
১. সহজে প্রোগ্রামের উদ্দেশ্য বােঝা যায়।
২. প্রােগ্রামের ভুল নির্ণয়ে সহায়তা করে।
৩. প্রােগ্রাম পরিবর্তন ও পরিবর্ধনে সহায়তা করে।
৪. প্রােগ্রাম রচনায় সহায়তা করে।
৫. সহজে ও সংক্ষেপে জটিল প্রােগ্রাম লেখা সম্ভব হয়।
ফ্লোচার্ট আঁকার নিয়ম
ফ্লোচার্ট আঁকার নিয়মাবলী নিচে বর্ণনা করা হলাে :
১. প্রবাহ রেখার দ্বারা কোন চিহ্নের পর কোন চিহ্নের কাজ হবে তা বােঝানাে হয়। সাধারণত উপর থেকে নিচে বা বাম থেকে ডানদিকে প্রবাহ অগ্রসর হয় ।
২. একাধিক প্রবাহরেখা পরস্পরকে ছেদ করলেও তাদের মধ্যে কোনাে লজিক্যাল সম্পর্ক বা যােগাযােগ বােঝায় না।
৩. চিহ্নগুলাে ছােট বা বড় যে কোনাে সাইজের হতে পারে কিন্তু তাদের বিশিষ্ট আকৃতি যেন বজায় থাকে।
৪. প্রত্যেক ফ্লোচার্টের একটি নাম থাকবে, তাছাড়া রচয়িতার নাম ও তারিখ দিতে হবে।
৫. প্রয়ােজনে চিহ্নের সঙ্গে মন্তব্যও দেওয়া যায়।
৬. যতদূর সম্ভব রেখার ছেদ কম হওয়া ভালাে।
৭. বেশি সংযােগ রেখার পরিবর্তে সংযােগ প্রতীক ব্যবহার করা ভালাে।
৮. প্রতিটি ব্লকের লেখা সংক্ষেপে অথচ সহজবােধ্য হওয়া দরকার।।
৯. ফ্লোচার্ট বিশেষ কোনাে প্রােগ্রামের ভাষায় লেখা ঠিক নয়।
১০.ফ্লোচার্টের কোনাে অংশের বিস্তারিত বর্ণনা প্রয়ােজন হলে সে অংশের জন্য পৃথকভাবে বিস্তারিত ফ্লোচার্ট ব্যবহার করা ভালাে।
প্রােগ্রামের ভুলত্রুটি খুঁজে বের করে তা দূর করাকে বলে ডিবাগিং। এর আক্ষরিক অর্থ পোকা বাছা। ১৯৪৫ সালে মার্ক 1 কম্পিউটারটির ভেতরে একটি মথপোকা ঢোকায় কম্পিউটারটি হঠাৎ বন্ধ হয়ে যায়। এ থেকেই ডিবাগিং কথাটির উৎপত্তি । সব ভুলত্রুটি দূর না হওয়া পর্যন্ত কোনো প্রােগ্রামই ব্যবহার করা যায় না। ডিবাগিং এর জন্য... প্রথমে প্রােগ্রামের আগাগােড়া ভালাে করে পরীক্ষা করে দেখা হয়। এ ছােটখাট ভুল এতেই দূর হয়ে যায়। এরপরও যেসব ভুল থেকে যায় সেগুলাে দূর করতে হলে প্রথমে সিনট্যাক্স ভুল দূর করে তারপর লজিক ভুল দূর করা হয়।