Before You Program – Part 1

How Does Computer Works
কম্পিঊটারের কাজের প্রকিয়া

 

মানুষের সাথে মেশিনের কাজের ধরণের অনেক মিল রয়েছে , আমরা যেমন চোখ দিয়ে দেখি , কান দিয়ে শুনি , নাক দিয়ে ঘ্রাণ নিই কম্পিউটারের ভাষায় একে বলে ইনপুট ; আবার এভাবে আমাদের মস্তিস্ক তখন সেই দেখা ও শোনার উপর সিদ্ধান্ত নেয় , আমদের কি করতে হবে , কীভাবে করতে হবে , কতটুকু করতে হবে – কম্পিউটারের ভাষায় একে বলে প্রসেসিং ; একইভাবে মানুষের হাত , পা , মুখ দিয়ে মস্তিষ্কের নেয়া সিদ্ধান্তকে বাস্তবে রূপ দেয়াকে কম্পিউটাররে ভাষায় বলে আউটপুট । সাধারণত কম্পিউটারেরে ক্ষেত্রে মাউস , কী-বোর্ড হল ইনপুট ডিভাইস আর প্রিন্টার , মনিটর হল আঊটপুট ডিভাইস ।

আমরা জানবো কম্পিউটারের প্রসেসিং ওয়ার্কফ্লো নিয়ে , আনুষাজ্ঞিক প্যারামিটার নিয়ে । কম্পিঊটারের পাচটি অবিচ্ছেদ্য প্যারামিটারগুলো হলঃ

১। প্রসেসর
২। মেমরি বা র‍্যাম
৩। I/O ডিভাইস
৪। ডাটা স্টোরেজ বা সেকেন্ডারি মেমরি
৫। স্ফটওয়ার

Input ডিভাইস দিয়ে যখন কোনো প্রোগ্রামকে ট্রিগার করা হয় তখন প্রসেসর সেকেন্ডারি মেমরি থেকে সেই প্রোগ্রামের এক্সিকিউশন ইন্সট্রাকশন ফাইল মেমরিতে নিয়ে রাখে । অর্থাৎ প্রসেসর কোণো নির্দিষ্ট কাজ করার জন্য প্রয়োজনীয় ডাটা বা ইন্সট্রাকশন ডিস্ক থেক পড়ে নিয়ে মেমরিতে রাখে এবং কাজের সময় সেখান থেকে ব্যবহার করে এবং শুধুমাত্র কাজের সময়ই প্রসেসর এখানে প্রোগ্রাম রাখে , আর তাই কাজের শেষে নতুন প্রোগ্রাম চালালে পুরনো ডাটা মুছে যায় । আর সেই ইন্সট্রাকশন এক্সিকিউট করে কম্পিঊটারের আউটপুট ডিভাইসে যেমন মনিটর ।

 

Untitledfd

 

 

Program & Programming Language

 

কম্পিউটারকে ইন্সট্রাকশন দেওয়ার প্রক্রিয়া হচ্ছে প্রোগ্রামিং। এখন কম্পিউটার তো একটি ইলেক্টনিক মেশিন ছাড়া কিছু নয় , ডিজিটাল সার্কিটের অমায়িক কানেকশন  । কম্পিউটার অন করলেই হাজার হাজার ইন্সট্রাকশন কাজ করা শুরু করে। আমরা কম্পিউটার অন করে মিউজিক শুনি, মিউজিক প্লেয়ার একটা প্রোগ্রাম। যার মধ্যে রয়েছে অনেক গুলো ইন্সট্রাকশন। আমরা গেম খেলি। এক একটা গেম এক একটা প্রোগ্রাম। রয়েছে  হাজার হাজার ইন্সট্রাকশন। আর এই ইন্সট্রাকশন গুলো লেখার কাজই হচ্ছে প্রোগ্রামিং। যে নিয়ম গুলো মেনে প্রোগ্রাম লিখতে হয়, তা হচ্ছে প্রোগ্রামিং ল্যাঙ্গুয়েজ।

কম্পিউটারের সাথে কমিউনিকেট করার জন্য যে টুলস ব্যবহার করা হয় তাই প্রোগ্রামিং ল্যাঙ্গুয়েজ । মানুষের মধ্যেও যেমন ভাষার বৈচিত্র রয়েছে তেমনি  প্রোগ্রামিং ল্যাঙ্গুয়েজগুলোর মধ্যেও রয়েছে ।  প্রোগ্রামিং ল্যাঙ্গুয়েজগুলোর মধ্যে জন্যপ্রিয় কয়েকটি হলঃ 

  • C
  • C++
  • Python
  • Java
  • C#
  • JavaScript
  • Swift
  • KOTLIN
  • PHP
  • R

প্রশ্ন জাগা স্বাভাবিক যে , কম্পিউটারের সাথে কমিউনিকেট করার জন্য এতগুলো  প্রোগ্রামিং ল্যাঙ্গুয়েজ কেনো ? সহজভাবে বললে , কম্পিউটারের সাথে কমিউনিকেশন আরও সহজ ও ইফিশিয়েন্ট করার জন্যই একেকজন ডেভেলপার নতুন নতুন  প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি করে থাকেন । অর্থাৎ কাজের উপর ভিত্তি করে ল্যাঙ্গুয়েজগুলোকে আমরা ক্লাসিফাইড করতে পারি । আর এই ক্লাশিফিকেশনগুলো পুরোপুরিভাবেই এপ্লিকেশন ফিল্ডের উপর বেইজ করে করা । 

 

Assembler – Compiler – Interpreter

 

মেশিন বা কম্পিউটার যা বুঝতে পারে তা হল বাইনারি ডিজিট ( 0 , 1 ) । এখন আমরা যখন প্রোগ্রামিং ল্যাংগুয়েজ ব্যবহার করি কম্পিউটারেরে সাথে কমিউনিকেট করার জন্য তখন আমরা বাইনারি ডিজিট ব্যবহার করি না , কারণ মানুষের পক্ষে এটি কনটিনিউ করা সম্ভব না । তাই আমরা ব্যবহার করি হিউম্যান ল্যাংগুয়েজ যখন আমরা কম্পিউটারেরে সাথে কমিউনিকেট করি আর তা হল ইংরেজি ল্যাংগুয়েজ । এখন কম্পিউটারেরে কাছে বোধগম্য করার জন্য এটাকে কম্পিঊটারের ভাষায় ট্রান্সলেট করে দিতে হবে আর এই কাজটি করে কম্পাইলার অথবা এস্মব্লার অথবা ইন্টারপ্রেটার । আমাদের ভাষায় আমরা যা লিখি তা হল সোর্স কোড ( Source Code ) আর ট্রান্সলেট করার পর হয়ে যায় মেশিন কোড ( Machine Code ) বা অবজেক্ট  কোড (Object Code ) এ । 

প্রোগ্রামিং ল্যাঙ্গুয়েজগুলোর মধ্যে Assembly ল্যাংগুয়েজে যে ট্রান্সলেটর কাজ করে সেটি Assembler । Compiler এবং Interpreter , এদের কাজ এক হলেও কাজের ধারোর মধ্যে পার্থক্য রয়েছে । কম্পাইলার সম্পূর্ন সোর্স কোডকে পড়ে অবজেক্ট কোড তৈরি করে , অন্যদিকে ইন্টারপ্রেটার সম্পূর্ন সোর্স কোডকে পড়ে অবজেক্ট কোড তৈরি করে না , প্রত্যেকটি লাইন পড়ে পড়ে ইনস্ট্রাকশন এক্সিকিউট করে । 

কম্পিউটার Object Code রিড করে যখন রেসপন্স করে অর্থাৎ ইন্সট্রাকশন এক্সিকিউট করে তখন সেটি করে বাইনারি কোডে অর্থাৎ মেশিন কোডে এবং কম্পাইলার তখন সেটিকে পুনরায় ট্রান্সলেট করে দেয় human form এ । প্রোগ্রামিং এ কম্পাইলারের গুরুত্ব তাই অনেক বেশি  , এর সম্পর্কে সামনে আরও বিস্তারিত জানবো । 

Some Useful Terms

  • Source code     : programming language written in human form 
  • Object code.     : programming language in machine form
  • Compiler          : Translator to S. Code to O. Code & Vice-Versa
  • Compile Time : The time during which program is being compiled
  • Run Time         : The time during which program is executing 

 

Integrated Development Environment  IDE

 

IDE অথবা Integrated Development Environment হচ্ছে ইফেক্টিভাবে কোড লেখা ও কম্পাইল করার জন্য একটি সফটওয়ার । বিভিন্ন প্রোগ্রামিং ল্যাংগুয়েজের জন্য রইয়েছে কিছু অসাধারণ IDE. আমরা নোটপ্যাড অথবা টেক্সট ইডিট ব্যবহার করেও কোড করতে পারি কিন্তু IDE ব্যবহারের কিছু বাড়তি সুবিধা আছে ।   

জনপ্রিয় প্রোগ্রামিং ল্যাংগুয়েজের জন্য ব্যবহ্রত কিছু জনপ্রিয়  IDE নিচে উল্লেখ করা হলঃ  

            P.Language                           IDE

  • C/C++                             Microsoft Visual Studio , Code::Blocks
  • Python                         PyCharm , Python IDEL , Spider (Anaconda)
  • Swift                             Xcode
  • C#                                  Microsoft Visual Studio
  • Java                              Eclipse , Net Beans 

বিভিন্ন ল্যাংগুয়েজের জন্য এ রকম আরও কিছু জনপ্রিয় IDE আছে । এ ছাড়াও কিছু ভালো ভালো  টেক্সট ইডিটরের নাম নিচে উল্লেখ করা হল , 

  • Sublime Text  
  • Microsoft Visual Code
  • Atom                                    
  • Brackets
  • Note Pad ++

টেক্সট ইডিটর আর IDE এর মধ্যে প্রধান পার্থক্য হচ্ছে IDE এর সাহায্যে কোড Compile , Debug ইত্যাদি কাজ করা যায় , অন্যদিকে টেক্সট ইডিটরগুলতে শুধু , কোড রাইট করা বা ইডীট করা যায় । যদিও প্লাগ-ইন যুক্ত করে নির্দিষ্ট প্রোগ্রামিং ল্যাংগুয়েজ Compile , Debug পর্যন্ত করা যায় । অর্থাৎ টেক্সট ইডিটর এ যা যা করা যায় তার সবগুলো IDE তেই করা যায় কিন্তু উল্টোটা না । 

লক্ষনীয় বিষয় হচ্ছে , ঊপরের IDE গুলো , উল্লেখ করা প্রগ্রামিং ল্যাংগুয়েজগুলোর জন্য বর্তমানে জন্যপ্রিয় । কিন্তু এমন কিছু IDE আছে যেগুলোতে প্লাগ-ইন যুক্ত করে আমরা বিভিন্ন প্রগ্রামিং ল্যাংগুয়েজ রান করতে পারি । 

 

continued …………

Leave a comment