প্রভাষক
২৭ জানুয়ারি, ২০২৫ ১০:৩১ অপরাহ্ণ
প্রোগ্রামিং ভাষা ও অনুবাদক প্রোগ্রাম।
প্রোগ্রামিং ভাষা ও অনুবাদক প্রোগ্রাম
কম্পিউটার প্রোগ্রামিং এর প্রাথমিক ধারণাঃ
কম্পিউটার ব্যবহার করার মূল উদ্দেশ্য হচ্ছে সমস্যা সমাধান করা। কোন সমস্যা সমাধানের জন্য কম্পিউটারের বোধগম্য ভাষায় নির্দেশ বা কোড লেখা হয়। এরূপ সারিবদ্ধ সুশৃঙ্খল একগুচ্ছ নির্দেশমালার সমষ্টিকে প্রোগ্রাম বলে। প্রোগ্রাম হলো ধারাবাহিকভাবে সাজানো কতকগুলো নির্দেশের সমষ্টি যা কম্পিউটারের কাজে সহায়তা করে। আর ভাষা হচ্ছে সেইসব নির্দেশাবলী লেখার সংকেত বা কোড। অর্থাৎ প্রোগ্রামিং ভাষা হচ্ছে সেই কোড যা দ্বারা কম্পিউটারের মাধ্যমে সমস্যা সমাধান করা যায়। কিছু কী-ওয়ার্ড বা রিজার্ভড ওয়ার্ড দ্বারা এই সকল নির্দেশাবলী লেখা হয়।
মূলত কম্পিউটারের সাথে মানুষের যোগাযোগের মাধ্যম হলো কম্পিউটারের ভাষা। কম্পিউটারের ভাষা হচ্ছে আসলে প্রোগ্রামের ভাষা। বস্তুত প্রোগ্রামের ভাষাকে আমরা নির্দেশ বা কোড হিসেবে চিহ্নিত করতে পারি। কারণ এটা কোনো কাজ কিভাবে করতে হয় তার নির্দেশনা দান করে। মোটামুটি এ ধরনের ধারণা ও চিন্তা-ভাবনা থেকেই প্রোগ্রামের বিভিন্ন ভাষার উদ্ভব হয়। কাজেই প্রোগ্রামের ভাষা বলতে আমরা বুঝি কিছু নির্দেশাবলী যা কম্পিউটারকে নিয়ন্ত্রণ করবে এবং কম্পিউটার কি ধরনের কাজ করবে, কোথায় ডাটাসমূহ রাখবে, ফলাফল কি হবে প্রভৃতি নির্ধারণ করে।
প্রোগ্রামের ভাষাঃ
দৈনন্দিন জীবনে আমরা পরস্পরের সাথে যোগাযোগ বা বিভিন্ন রকম সমস্যা সমাধানের জন্য নানা রকম ভাষা ব্যবহার করি। আমরা একে অপরের সাথে ভাব বিনিময়ের জন্য যেমন বিভিন্ন ভাষা ব্যবহার করি, তেমনি কম্পিউটারকে আমাদের প্রয়োজনীয় নির্দেশাবলী দেয়ার জন্য বিশেষ ধরনের ভাষা ব্যবহার করা হয়। এসব ভাষাই মূলত প্রোগ্রামের ভাষা। প্রতিটি প্রোগ্রামিং ভাষার বিশেষ কিছু সিনট্যাক্স রয়েছে যা বিশেষ অর্থবোধক এবং এই সিনট্যাক্স ব্যবহার করে ঐ ভাষায় প্রোগ্রাম লিখতে হয়। কম্পিউটার ব্যবহার করে কোন সসম্যা সমাধানের জন্য যে সব ভাষা ব্যবহার করে প্রোগ্রাম রচনা করা হয় সে সকল ভাষাকে প্রোগ্রামিং ভাষা বলে।
প্রোগ্রাম রচনার সুবিধা ও বৈশিষ্ট্য এসকল বিষয়ের উপর ভিত্তি করে প্রোগ্রামিং ভাষা মূলত দুই ভাগে ভাগ করা যায়।
যথা:
১. লো-লেভেল ভাষা বা নিম্ন স্তরের ভাষা ও
২. হাই-লেভেল বা উচ্চ স্তরের ভাষা
নিম্ন স্তরের ভাষাকে আবার দুই ভাগে ভাগ করা যায় ।
যথা:
1. মেশিন ভাষা ও
2. অ্যাসেম্বলি ভাষা
মেশিন ভাষাঃ
কম্পিউটারে সবচেয়ে নিচের স্তরের ভাষা হলো মেশিন ভাষা । কম্পিউটারের নিজস্ব ভাষাকে মেশিন ভাষা বা নিম্নস্তরেরভাষা বলা হয়। কম্পিউটারের মৌলিক ভাষা হলো এই নিম্নস্তরের ভাষা। এ ভাষায় বাইনারি সংখ্যা (১ এবং ০) অথবা হেক্সাডেসিম্যাল পদ্ধতি ব্যবহার করে সবকিছু লেখা হয়। কম্পিউটার শুধুমাত্র মেশিন ভাষাই বুঝতে পারে। অন্য কোনো ভাষায় প্রোগ্রাম রচনা করা হলে কম্পিউটার কার্যনির্বাহের আগে উপযুক্ত অনুবাদকের সাহায্যে তাকে মেশিনের ভাষায় পরিণত করে নেয়। কম্পিউটারের অভ্যন্তরীণ কার্যনির্বাহের জন্য বিদ্যুৎ তরঙ্গের পারস্পরিক ক্রিয়া-প্রতিক্রিয়ার সাথে মেশিনের ভাষার সরাসরি মিল রয়েছে। শুধুমাত্র ০ এবং ১ দিয়ে এ ভাষায় প্রোগ্রাম লিখা হয় যা অত্যন্ত জটিল ও শ্রমসাধ্য ব্যাপার। এ সকল কারণে মেশিন ভাষাকে লো-লেভেল ল্যাঙ্গুয়েজ বা নিম্নস্তরের ভাষা বলা হয়।
মেশিন ভাষার সুবিধাঃ
১। এই ভাষা দিয়ে সরাসরি মেমোরি অ্যাড্রেসের সাথে সংযোগ সাধন সম্ভব।
২। সবচেয়ে কম পরিমাণ লজিক ও কম মেমোরিতে এই ভাষায় লিখিত প্রোগ্রাম নির্বাহ করা যায়।
৩। এ ভাষায় লিখিত প্রোগ্রাম নির্বাহের জন্য অনুবাদক প্রোগ্রাম দরকার হয় না।
৪। মেশিন ভাষা অন্যান্য ভাষা থেকে দ্রুত কাজ করে।
মেশিন ভাষার অসুবিধাঃ
১। এই ভাষায় প্রোগ্রাম লেখা অত্যন্ত ক্লান্তিকর ও সময়সাপেক্ষ।
২। এক ধরনের মেশিনের জন্য লিখিত প্রোগ্রাম অন্য ধরনের মেশিনে ব্যবহার করা যায় না।
৩। মেশিন ভাষায় প্রোগ্রাম লিখতে দক্ষ প্রোগ্রামার প্রয়োজন।
৪। প্রোগ্রামের ভুল-ত্রুটি সনাক্ত ও সংশোধন কষ্টসাধ্য।
অ্যাসেম্বলি ভাষাঃ
অ্যাসেম্বলি ভাষা হচ্ছে মেশিন ভাষার পরবর্তী প্রোগ্রামের ভাষা। মেশিন ভাষার সীমাবদ্ধতা দূর করার জন্য পঞ্চাশের দশকে অ্যাসেম্বলি ভাষার প্রচলন শুরু হয়। এই ভাষা দ্বিতীয় প্রজন্মের কম্পিউটারে ব্যবহার করা হতো যা মেশিনের ভাষা থেকে উন্নত, সংক্ষিপ্ত এবং ব্যবহারকারীর জন্য সহজবোধ্য। অ্যাসেম্বলি ভাষাকে মেশিনের ভাষায় রূপান্তরিত করার জন্য অ্যাসেম্বলার নামক এক ধরনের ট্রান্সলেটর বা অনুবাদক প্রোগ্রাম ব্যবহার করা হয়। অ্যাসেম্বলি ভাষা বিভিন্ন সংকেতের সমন্বয়ে লেখা হয়ে থাকে। এজন্য অ্যাসেম্বলি ভাষাকে সাংকেতিক ভাষাও বলা হয়।
অ্যাসেম্বলি ভাষার সুবিধাঃ
১। মেশিনের ভাষার মতো দক্ষ ও সংক্ষিপ্ত প্রোগ্রাম রচনা সম্ভব।
২। মেশিনের ভাষার তুলনায় এ ভাষায় প্রোগ্রাম রচনা তুলনামূলক সহজ।
৩। মেশিনের ভাষার তুলনায় ডিবাগিং সহজতর।
অ্যাসেম্বলি ভাষার অসুবিধাঃ
১। মেশিনের অভ্যন্তরীণ গঠন সম্পর্কে ধারণা থাকতে হবে।
২। এই ভাষার প্রোগ্রাম মেশিনের সংগঠনের উপর নির্ভরশীল।
৩। এই ভাষায় প্রোগ্রাম লেখা যথেষ্ট ক্লান্তিকর ও সময় সাপেক্ষ।
৪। এ ভাষায় লিখিত প্রোগ্রাম নির্বাহের জন্য অনুবাদক প্রোগ্রামের প্রয়োজন হয়।
মধ্যম স্তরের ভাষাঃ
যে প্রোগ্রামিং ভাষার মধ্যে লো-লেভেল ও হাই-লেভেল উভয় ভাষার বৈশিষ্ট্য বিদ্যমান তাকে মধ্যম স্তরের ভাষা বলে।কম্পিউটারের হার্ডওয়্যার নিয়ন্ত্রণ ও সিস্টেম প্রোগ্রাম রচনার জন্য বিট পর্যায়ের প্রোগ্রামিং ভাষা হচ্ছে মধ্যম স্তরের ভাষা। এ ভাষায় উচ্চতর ভাষার সুবিধা পাওয়া যায়। আবার নিম্নস্তরের ভাষায়ও প্রোগ্রাম রচনা করা যায়।
মধ্যমস্তরের ভাষার সুবিধাঃ
১. এই ভাষায় লিখিত প্রোগ্রাম বোঝা প্রোগ্রামারদের কাছে সহজসাধ্য।
২. একবার লিখিত প্রোগ্রাম পরবর্তীতে পরিবর্তিত করা সহজ।
৩. ভুল হওয়ার সম্ভাবনা কম থাকে।
মধ্যমস্তরের ভাষার অসুবিধাঃ
১. অনুবাদক প্রোগ্রামের প্রয়োজন হয়।
২. প্রোগ্রাম নির্বাহ করতে মেশিন ভাষার তুলনায় বেশি সময় লাগে।
৩. উচ্চতর ভাষার তুলনায় এই ভাষা কঠিন।
উচ্চ স্তরের ভাষাঃ
হাই-লেভেল বা উচ্চ স্তরের ভাষা কোন সংকেত বা সাংকেতিক কোড নির্ভর নয়। এটি ইংরেজি ভাষার মতই। মেশিন বা অ্যাসেম্বলি ভাষার প্রধান অসুবিধা হলো, এক ধরনের কম্পিউটারের জন্য প্রোগ্রাম অন্য ধরনের কম্পিউটারে ব্যবহার করা যায় না। তাছাড়া মেশিন ও অ্যাসেম্বলি ভাষায় প্রোগ্রাম লিখা অনেক কষ্টকর ও শ্রমসাধ্য ব্যাপার। এছাড়া মানুষের পক্ষে লো-লেভেল ভাষা বোঝা সহজসাধ্য নয়। এই অসুবিধা দুর করার জন্য উচ্চ স্তরের ভাষার উদ্ভব হয়। এই স্তরের ভাষায় লিখিত প্রোগ্রাম বিভিন্ন ধরনের মেশিনে ব্যবহার করা সম্ভব।
কম্পাইলার বা ইন্টারপ্রেটার নামক প্রোগ্রাম ব্যবহার করে এ ভাষায় লিখিত প্রোগ্রাম মেশিনের ভাষায় অনুবাদ করা হয়।ফলে কম্পিউটার এ জাতীয় প্রোগ্রাম বুঝতে পারে।
উচ্চ স্তরের ভাষার সুবিধাঃ
১। এ ভাষায় লিখিত প্রোগ্রাম যে কোনো কম্পিউটারে ব্যবহার করা যায়।
২। এ ভাষায় প্রোগ্রাম রচনা সহজ ও যুক্তিনির্ভর।
৩। প্রোগ্রামের ভুল নির্ণয় ও সংশোধন অপেক্ষাকৃত সহজ।
৪। উচ্চ স্তরের ভাষায় অসংখ্য লাইব্রেরি ফাংশনের সুবিধা আছে।
৫। প্রোগ্রাম লেখার সময় কম্পিউটারের অভ্যন্তরীণ গঠন সম্পর্কে ধারণার প্রয়োজন নেই।
উচ্চ স্তরের ভাষার অসুবিধাঃ
১। কম্পিউটার সরাসরি এ ভাষা বুঝতে পারে না।
২। এ ভাষায় লিখিত প্রোগ্রামকে কম্পিউটারে চালাতে হলে অনুবাদক প্রোগ্রামের প্রয়োজন হয়।
৩। প্রোগ্রাম রান করতে বেশি সময় প্রয়োজন হয়।
অনুবাদক প্রোগ্রাম
অনুবাদক প্রোগ্রামঃ
অ্যাসেম্বলি বা উচ্চতর ভাষায় লিখিত প্রোগ্রামকে সোর্স প্রোগ্রাম এবং মেশিনের ভাষায় অনুবাদ করা প্রোগ্রামকে অবজেক্ট প্রোগ্রাম বলা হয়। অ্যাসেম্বলি ও হাই লেভেল ভাষায় লিখিত প্রোগ্রাম কম্পিউটার সরাসরি বুঝতে পারে না। কম্পিউটার কেবল মেশিন ভাষা বুঝতে পারে। তাই সোর্স প্রোগ্রামকে চালানোর আগে কোনো অনুবাদক প্রোগ্রামের মাধ্যমে মেশিনের ভাষায় অনুবাদ করতে হয়। সোর্স প্রোগ্রামকে অবজেক্ট প্রোগ্রামে পরিণত করার জন্য যে প্রোগ্রাম ব্যবহার করা হয় তাকে অনুবাদক প্রোগ্রাম বলে। মেশিনের ভাষায় প্রোগ্রাম অনুবাদ করার জন্য ০ এবং ১ এই দু’টি বাইনারি ডিজিট ব্যবহার করা হয়। সোর্স প্রোগ্রামকে অনুবাদ করার জন্য তিন ধরনের অনুবাদক প্রোগ্রাম আছে।
যেমনঃ
১। কম্পাইলার
২। অ্যাসেম্বলার
৩। ইন্টারপ্রেটার
কম্পাইলারঃ
কম্পাইলার হল এমন একটি অনুবাদক যা সোর্স প্রোগ্রামকে একসাথে সম্পূর্ণরূপে মেশিনের ভাষায় অনুবাদ করে একটি অবজেক্ট প্রোগ্রাম তৈরি করে এবং একটি এক্সিকিউশন ফাইল (.exe) তৈরি করে। এখানকার এক্সিকিউশন ফাইল অত্যন্ত দ্রুততার সাথে এক্সিকিউট হয়ে থাকে। ফলে প্রোগ্রামিং প্রক্রিয়া অত্যন্ত দ্রুততর হয় এবং প্রোগ্রামারকে নিজ হাতে কোন অনুবাদকের কাজ করতে হয় না।
ভিন্ন ভিন্ন উচ্চতর ভাষার প্রোগ্রামের জন্য ভিন্ন ভিন্ন কম্পাইলার ব্যবহৃত হয়। কারণ কোন নির্দিষ্ট কম্পাইলার একটি মাত্র উচ্চতর ভাষার প্রোগ্রামকে কম্পাইল করতে পারে। যেমন- যে কম্পাইলার COBOL প্রোগ্রামকে কম্পাইল করতে পারে সেই কম্পাইলার বেসিক প্রোগ্রাম কম্পাইল করতে পারে না। কম্পাইলার অনুবাদ করা ছাড়াও উৎস প্রোগ্রামের গুণাগুণও বিচার করতে পারে।
কম্পাইলারের প্রধান কাজঃ
১। উৎস প্রোগ্রামকে অনুবাদ করে অবজেক্ট প্রোগ্রাম তৈরি করা।
২। প্রোগ্রামের সঙ্গে প্রয়োজনীয় রুটিন যোগ করা। রুটিন হলো প্রোগ্রামের ছোট অংশ যাতে কোনো নির্দিষ্ট কাজ করার জন্য নির্দেশ দেয়া থাকে।
৩। প্রোগ্রামে কোনো ভুল থাকলে তা জানানো।
৪। প্রোগ্রামের যেকোনো ভুল-ত্রুটি সংশোধন করা।
অ্যাসেম্বলারঃ
অ্যাসেম্বলার হচ্ছে অ্যাসেম্বলি ভাষায় লিখিত উৎস প্রোগ্রাম অর্থাৎ নেমোনিক কোডকে মেশিনের ভাষায় লিখিত অবজেক্ট প্রোগ্রামে রূপান্তর করা এক ধরনের অনুবাদক প্রোগ্রাম। এ ভাষার অন্যতম কাজ হচ্ছে প্রধান মেমোরিতে রক্ষিত অ্যাসেম্বলি ভাষার সব নির্দেশ ঠিক আছে কিনা তা ব্যবহারকারীকে জানানো। এ ভাষার প্রত্যেকটি নির্দেশকে অ্যাসেম্বলার মেশিন ভাষার একটি নির্দেশে পরিণত করে। ভুল সংশোধনের পর এ ভাষা পুনরায় প্রথম নির্দেশ থেকে অনুবাদের কাজ শুরু করে।
অ্যাসেম্বলারের প্রধান কাজঃ
১। নেমোনিক কোডকে মেশিনের ভাষায় রূপান্তর করা।
২। সব নির্দেশ এবং ডেটা প্রধান মেমোরিতে জমা রাখা।
৩। প্রোগ্রামে কোনো ভুল থাকলে তা জানানো।
৪। সব তথ্য ও নির্দেশ মেমরিতে রাখা।
ইন্টারপ্রেটারঃ
ইন্টারপ্রেটারও কম্পাইলারের মতো উচ্চতর ভাষাকে মেশিন ভাষায় রূপান্তর করে, তবে কম্পাইলার যেমন প্রথমে সোর্স প্রোগ্রামকে অবজেক্ট প্রোগ্রামে রূপান্তর করে এবং শেষে ফলাফল প্রদান করে কিন্তু ইন্টারপ্রেটার সোর্স প্রোগ্রামকে অবজেক্ট প্রোগ্রামে রূপান্তর করে না। ইন্টারপ্রেটার এক লাইন করে সম্পাদন করে এবং তাৎক্ষণিক ফলাফল প্রদান করে। ইন্টারপ্রেটারের মাধ্যমে প্রোগ্রামের ভুল-ত্রুটি সনাক্ত ও সংশোধন করার ক্ষেত্রে সময় কম লাগে। তবে ইন্টারপ্রেটারের অসুবিধা হচ্ছে অনুবাদের ক্ষেত্রে এটি ধীর গতি সম্পন্ন এবং প্রতিবার প্রোগ্রাম নির্বাহের ক্ষেত্রে প্রতিটি স্টেটমেন্ট নতুন করে মেশিন ভাষায় রূপান্তর করতে হয়।
সারসংক্ষেপঃ
অ্যাসেম্বলি বা উচ্চতর ভাষায় লিখিত প্রোগ্রামকে সোর্স প্রোগ্রাম বলা হয় । আর মেশিনের ভাষায় অনুবাদ করা প্রোগ্রামকে অবজেক্ট প্রোগ্রাম বলা হয়। যে প্রোগ্রাম সোর্স প্রোগ্রামকে অবজেক্ট প্রোগ্রামে রূপান্তরিত করে তাকে অনুবাদকপ্রোগ্রাম বলে। অনুবাদক প্রোগ্রাম অ্যাসেম্বলার, কম্পাইলার ও ইন্টারপ্রেটার এই তিন ধরনের হয়ে থাকে।
৬
১০ মন্তব্য