পঞ্চম অধ্যায় পাঠ-২: অনুবাদক প্রোগ্রাম (কম্পাইলার, ইন্টারপ্রেটার ও অ্যাসেম্বলার)।

এই পাঠ শেষে যা যা শিখতে পারবে-

১। অনুবাদক প্রোগ্রাম বর্ণনা করতে পারবে।

২। কম্পাইলার এর কাজ, সুবিধা ও অসুবিধা ব্যাখ্যা করতে পারবে।

৩। ইন্টারপ্রেটার এর কাজ, সুবিধা ও অসুবিধা ব্যাখ্যা করতে পারবে।

৪। কম্পাইলার এবং ইন্টারপ্রেটার এর মধ্যে পার্থক্য করতে পারবে।

৫। অ্যাসেম্বলার কী এবং এর কাজ বর্ণনা করতে পারবে।

 

 

Go for English Version

 

অনুবাদক প্রোগ্রামঃ

কম্পিউটার সহ যেকোন মেশিন শুধুমাত্র ০ এবং ১ বুঝতে পারে। অর্থাৎ শুধুমাত্র মেশিন ভাষায় লেখা নির্দেশনা বা প্রোগ্রাম সরাসরি বুঝতে পারে কিন্তু অন্য প্রোগ্রামিং ভাষায় লেখা নির্দেশনা বা প্রোগ্রাম মেশিন সরাসরি বুঝতে পারে না।

আবার বর্তমানের প্রোগ্রামাররা উচ্চস্তরের বিভিন্ন প্রোগ্রামিং ভাষা ব্যবহার করে প্রোগ্রাম লিখে বা মেশিনকে নির্দেশনা দেয়। এজন্য উচ্চস্তরের প্রোগ্রামিং ভাষায় লেখা প্রোগ্রামকে মেশিনের বোধগম্য করতে অনুবাদ করার প্রয়োজন হয়।

যে প্রোগ্রাম বা সফটওয়্যার এই অনুবাদের কাজটি করে থাকে তাকে অনুবাদক প্রোগ্রাম বা অনুবাদক সফটওয়্যার বলে।অনুবাদক সফটওয়্যার হলো এক ধরণের সিস্টেম সফটওয়্যার এবং এটিকে ল্যাংগুয়েজ প্রসেসরও বলা হয়। প্রতিটি প্রোগ্রামিং ভাষার জন্য পৃথক অনুবাদক প্রোগ্রাম রয়েছে।

যে প্রোগ্রাম উৎস(Source) প্রোগ্রামকে বস্তু(Object) প্রোগ্রামে রূপান্তর করে তাকে অনুবাদক প্রোগ্রাম বলে।

মেশিন ভাষায় লেখা প্রোগ্রামকে বলা হয় বস্তু প্রোগ্রাম (Object Program) এবং অন্য যেকোনো ভাষায় লেখা প্রোগ্রামকে বলা হয় উৎস প্রোগ্রাম (Source program)।

অনুবাদক প্রোগ্রাম উৎস প্রোগ্রামকে ইনপুট হিসেবে নেয় এবং বস্তু প্রোগ্রামকে আউটপুট হিসেবে দেয়। প্রোগ্রাম অনুবাদের সময় উৎস প্রোগ্রামে যদি কোন ভুল থাকে, তবে তা সংশোধন করার জন্য ব্যবহারকারীকে Error Message দেয়।

 

অনুবাদক প্রোগ্রামের প্রকারভেদ- 

১। কম্পাইলার (Compiler)

২। ইন্টারপ্রেটার (Interpreter)

৩। অ্যাসেম্বলার (Assembler)

 

কম্পাইলার (Compiler):

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

কম্পাইলার দুই ধাপে অনুবাদকের কাজটি সম্পন্ন করে –

প্রথম ধাপে কম্পাইলার উৎস প্রোগ্রামটি পড়ে এবং বস্তু প্রোগ্রামে রূপান্তর করে। এই ধাপে, উৎস প্রোগ্রামে যদি কোন সিনট্যাক্স ভূল(error) থাকে, তবে তা সংশোধন করার জন্য কম্পাইলার ব্যবহারকারীকে Error Message দেয়। এই Error Message কে কম্পাইলড টাইম ডায়াগনোস্টিক Error Message বলে। প্রোগ্রাম একবার কম্পাইল হয়ে গেলে পরবর্তীতে আর কম্পাইল করার প্রয়োজন হয় না।

দ্বিতীয় ধাপে ইনপুট উপাত্ত বা ডেটার ভিত্তিতে ফলাফল প্রদর্শনের জন্য বস্তু প্রোগ্রামকে নির্বাহ করে।

সি, সি ++ এর মতো প্রোগ্রামিং ভাষাসমূহ কম্পাইলার ব্যবহার করে।

 

কম্পাইলারের কাজঃ 

১। সংশ্লিষ্ট সাব-রুটিন এর সাথে সংযোগের ব্যবস্থা করা।

২। উৎস প্রোগ্রামের স্টেটমেন্ট সমূহকে বস্তু প্রোগ্রামে বা মেশিন ভাষায় রূপান্তর করা।

৩। প্রোগ্রামে কোন সিনট্যাক্স ভূল(error) থাকলে অনুবাদের সময় ভুলের তালিকা প্রণয়ন করা।

৪। প্রধান মেমোরির পরিসর চিহ্নিতকরণ।

কম্পাইলারের সুবিধাঃ  

১। কম্পাইলার সম্পূর্ণ প্রোগ্রামটিকে একসাথে অনুবাদ করে, ফলে প্রোগ্রাম নির্বাহ দ্রুত হয়।

২। কম্পাইলারের মাধ্যমে রূপান্তরিত প্রোগ্রাম সম্পূর্ণরূপে মেশিন ভাষায় রূপান্তরিত হয়।

৩। আউটপুট প্রোগ্রাম(.exe) যা মূল প্রোগ্রাম থেকে স্বাধীনভাবে চালানো যেতে পারে।

৪। প্রোগ্রাম একবার কম্পাইল করা হলে পরবর্তিতে আর কম্পাইল করার প্রয়োজন হয় না।

কম্পাইলারের অসুবিধাঃ  

১। কম্পাইলার প্রোগ্রামের সবগুলো ভুল একসাথে প্রদর্শন করে ফলে প্রোগ্রাম সংশোধনে বেশি সময় লাগে।

২। প্রোগ্রাম ডিবাগিং ও টেস্টিং ধীরগতি সম্পন্ন।

৩। কম্পাইলার বড় ধরনের প্রোগ্রাম হওয়ায় এটি সংরক্ষণে মেমোরিতে বেশি জায়গা প্রয়োজন হয়।

 

ইন্টারপ্রেটার (Interpreter):

ইন্টারপ্রেটারও কম্পাইলারের মতো এক ধরনের অনুবাদক প্রোগ্রাম যা উচ্চস্তরের ভাষায় লেখা প্রোগ্রামের একটি করে লাইন পড়ে এবং মেশিন বা যান্ত্রিক ভাষায় রূপান্তর করে।

এক্ষেত্রে উচ্চস্তরের ভাষায় লেখা প্রোগ্রামের একটি করে লাইন পড়ে ও ইন্টারমিডিয়েট কোডে রূপান্তর করে এবং প্রয়োজনীয় ডেটা ইনপুট নিয়ে নির্বাহ করে তাৎক্ষণিক ফলাফল প্রদর্শন করে।

কম্পাইলারের সাথে পার্থক্য হল, কম্পাইলার সম্পূর্ণ উৎস প্রোগ্রামকে একসাথে অবজেক্ট প্রোগ্রামে রূপান্তর করে এবং সর্বশেষ ফলাফল প্রদান করে কিন্তু ইন্টারপ্রেটার উৎস প্রোগ্রামটিকে লাইন-বাই-লাইন রূপান্তর করে ও নির্বাহ করে এবং তাৎক্ষণিক ফলাফল প্রদর্শন করে।

পাইথন, রুবি এর মতো প্রোগ্রামিং ভাষাসমূহ ইন্টারপ্রেটার ব্যবহার করে।

ইন্টারপ্রেটারের কাজঃ 

১। সংশ্লিষ্ট সাব-রুটিন এর সাথে সংযোগের ব্যবস্থা করা।

২। উৎস প্রোগ্রামের স্টেটমেন্ট সমূহকে বস্তু প্রোগ্রামে বা মেশিন ভাষায় রূপান্তর করা।

৩। প্রোগ্রাম ভুল থাকলে অনুবাদের সময় ভুলের তালিকা প্রণয়ন।

৪। প্রধান মেমোরির পরিসর চিহ্নিতকরণ।

ইন্টারপ্রেটারের সুবিধাঃ 

১।  ইন্টারপ্রেটার এর সবচেয়ে বড় সুবিধা হল এটি ইউজার ফ্রেন্ডলি।

২। এটি ব্যবহারে প্রোগ্রামের ভুল সংশোধন করা এবং পরিবর্তন করা সহজ হয়।

৩। ইন্টারপ্রেটার আকারে ছোট হয় বলে মেমোরিতে কম জায়গা দখল করে।

৪। এটি সাধারণত ছোট বা মাইক্রোকম্পিউটারে ব্যবহার করা হয়।

 ইন্টারপ্রেটারের অসুবিধাঃ 

১। ইন্টারপ্রেটার যেহেতু প্রোগ্রাম লাইন-বাই-লাইন অনুবাদ করে, তাই অনুবাদ করতে কম্পাইলারের তুলনায় বেশি সময় প্রয়োজন হয়।

২। ইন্টারপ্রেটার এর মাধ্যমে রূপান্তরিত প্রোগ্রাম সম্পূর্ণরূপে মেশিন বা বস্তু প্রোগ্রামে রূপান্তরিত হয় না।

৩। প্রত্যেকবার প্রোগ্রাম নির্বাহের সময় অনুবাদ করার প্রয়োজন হয়।

 

 

অ্যাসেম্বলার (Assembler): 

অ্যাসেম্বলার হলো এক ধরনের অনুবাদক প্রোগ্রাম যা অ্যাসেম্বলি ভাষায় লেখা প্রোগ্রামকে মেশিন ভাষায় রূপান্তর করে। এটি অ্যাসেম্বলি ভাষায় লেখা প্রোগ্রাম বা নেমোনিক কোডকে যান্ত্রিক ভাষায় রূপান্তর করে। এক্ষেত্রে  প্রোগ্রামে কোনো ভুল থাকলে Error Message দেয়।

প্রধান কাজ সমূহ:

১। নেমোনিক কোডকে মেশিন ভাষায় অনুবাদ করা।

২। সাংকেতিক ঠিকানাকে মেশিন ভাষার ঠিকানায় রূপান্তর করা।

৩। সব নির্দেশ ও ডেটা প্রধান মেমোরিতে রাখা।

৪।  প্রোগ্রামে কোনো ভুল থাকলে Error Message দেওয়া।

৫। প্রোগ্রামের সকল ভুল সংশোধনের পর প্রোগ্রাম কনট্রোলকে জানানো ইত্যাদি।

 

কম্পাইলার এবং ইন্টারপ্রেটারের মধ্যে পার্থক্যঃ 

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


পাঠ মূল্যায়ন- 

জ্ঞানমূলক প্রশ্নসমূহঃ

ক) অনুবাদক প্রোগ্রাম কী?

ক) অ্যাসেম্বলার কী?

ক) কম্পাইলার কী?

ক) ইন্টারপ্রেটার কী?

ক) উৎস বা সোর্স প্রোগ্রাম কী?

ক) বস্তু বা অবজেক্ট প্রোগ্রাম কী?

Go for answer

 

অনুধাবনমূলক প্রশ্নসমূহঃ 

খ) ‘প্রত্যেকবার প্রোগ্রাম নির্বাহের সময় অনুবাদ করা প্রয়োজন’- ব্যাখ্যা কর।

খ) ‘অনুবাদক প্রোগ্রাম হিসেবে কম্পাইলার বেশি উপযোগী’- ব্যাখ্যা কর।

খ) কম্পাইলারের তুলনায় ইন্টারপ্রেটার কোন ক্ষেত্রে ভালো?- ব্যাখ্যা কর।

খ) উৎস প্রোগ্রামকে অনুবাদ করার প্রয়োজন হয় কেন?

Go for answer

 

সৃজনশীল প্রশ্নসমূহঃ

উদ্দীপকটি পড় এবং প্রশ্নগুলোর উত্তর দাওঃ

আরাফাত এবং নিলা দুইজন প্রোগ্রামার। আরাফাত বিভিন্ন নিমোনিকের সাহায্যে প্রোগ্রাম লিখে। অপরপক্ষে নিলার লেখা প্রোগ্রাম দেখতে মানুষের ভাষার কাছাকাছি। তাদের দুইজনের লেখা প্রোগ্রাম একই সমস্যা সমাধান করতে পারে।

গ) আরাফাতের লেখা প্রোগ্রাম অনুবাদের জন্য ব্যবহৃত অনুবাদক প্রোগ্রাম ব্যাখ্যা কর।

ঘ) উদ্দীপকে উল্লিখিত নিলার লেখা প্রোগ্রামকে বস্তু প্রোগ্রামে রূপান্তরের জন্য কোন অনুবাদক প্রোগ্রামটি সুবিধাজনক? বিশ্লেষণ কর।

উদ্দীপকটি পড় এবং প্রশ্নের উত্তর দাওঃ

রহিম ও করিম প্রোগ্রামার। দুই জনের প্রোগ্রাম তৈরির পদ্ধতি দুই ধরনের। রহিমের প্রোগ্রাম ভুল সংশোধন করে সম্পূর্ণ প্রোগ্রাম পড়ার পর আর করিমের প্রোগ্রাম ভুল সংশোধন করে প্রতিটি লাইন পৃথকভাবে। অপরদিকে কাব্য প্রোগ্রাম লেখার জন্য বিভিন্ন ইংরেজি শব্দ ব্যবহার করে।

ঘ) উদ্দীপকে উল্লিখিত রহিম ও করিমের প্রোগ্রাম নির্বাহের ক্ষেত্রে কোনটি দ্রুতগতিসম্পন্ন? বিশ্লেষণপূর্বক মতামত দাও।

 

বহুনির্বাচনি প্রশ্নসমূহঃ

১। অনুবাদক সফটওয়্যার কয় ধরনের?

ক) ২             খ) ৩

গ) ৪              ঘ) ৫

২। উচ্চস্তরের ভাষায় লেখা প্রোগ্রামকে কী বলা হয়?

ক) বস্তু প্রোগ্রাম           খ) উৎস প্রোগ্রাম

গ) ভিজুয়াল প্রোগ্রাম    ঘ)  অনুবাদক প্রোগ্রাম

৩। কম্পাইলারের সুবিধা হলো-

i. সম্পূর্ণ প্রোগ্রামটি একবারে অনুবাদ করে

ii. প্রোগ্রামে ডিবাগিং ও টেস্টিং দ্রুতগতিসম্পন্ন

ii. ভুল থাকলে তা মনিটরে প্রদর্শন করে

নিচের কোনটি সঠিক?

ক) i ও ii               খ) i ও iii

গ) ii ও iii             ঘ) i, ii ও iii

৪। C প্রোগ্রামিং ভাষার জন্য কোন অনুবাদক প্রোগ্রাম ব্যবহৃত হয়?

i. কম্পাইলার

ii. ইন্টারপ্রেটার

iii. অ্যাসেম্বলার

নিচের কোনটি সঠিক?

ক) i ও ii               খ) i ও iii

গ) ii ও iii              ঘ) i, ii ও iii

৫। ‘কম্পাইলার’ ও ‘ইন্টারপ্রেটার’ এর মধ্যে পার্থক্য রয়েছে-

i. প্রোগ্রামটি অনুবাদের ক্ষেত্রে

ii. কাজের গতির ক্ষেত্রে

iii. ভুল প্রদর্শনের ক্ষেত্রে

নিচের কোনটি সঠিক?

ক) i ও ii               খ) i ও iii

গ) ii ও iii             ঘ) i, ii ও iii

 


Written by,

Spread the love

Leave a Reply

Your email address will not be published. Required fields are marked *