সংযোজনকারী বনাম দোভাষী
সাধারণত, কম্পাইলার হল একটি কম্পিউটার প্রোগ্রাম যা একটি ভাষায় লেখা একটি প্রোগ্রাম পড়ে, যাকে সোর্স ল্যাঙ্গুয়েজ বলা হয় এবং অন্য ভাষায় অনুবাদ করে, যাকে টার্গেট ল্যাঙ্গুয়েজ বলা হয়। ঐতিহ্যগতভাবে, উৎস ভাষা হল একটি উচ্চ স্তরের ভাষা যেমন C++ এবং লক্ষ্য ভাষা হল নিম্ন স্তরের ভাষা যেমন সমাবেশের ভাষা। যাইহোক, এমন কম্পাইলার রয়েছে যেগুলি অ্যাসেম্বলি ভাষায় লেখা একটি উত্স প্রোগ্রামকে রূপান্তর করতে পারে এবং এটিকে মেশিন কোড বা অবজেক্ট কোডে রূপান্তর করতে পারে। অ্যাসেম্বলার যেমন সরঞ্জাম। অন্যদিকে, ইন্টারপ্রেটার হল এমন টুল যা কিছু প্রোগ্রামিং ভাষায় লিখিত নির্দেশাবলী কার্যকর করে।দোভাষী হয় সরাসরি উচ্চ স্তরের সোর্স কোড চালাতে পারে বা তাদের মধ্যবর্তী কোডে অনুবাদ করতে পারে এবং তারপরে এটি ব্যাখ্যা করতে পারে বা প্রি-কম্পাইল করা কোড চালাতে পারে।
অ্যাসেম্বলার কি?
অ্যাসেম্বলার হল সফ্টওয়্যার বা একটি টুল যা অ্যাসেম্বলি ভাষাকে মেশিন কোডে অনুবাদ করে। সুতরাং, অ্যাসেম্বলার হল এক ধরনের কম্পাইলার এবং সোর্স কোডটি অ্যাসেম্বলি ভাষায় লেখা হয়। সমাবেশ একটি মানুষের পাঠযোগ্য ভাষা কিন্তু এটি সাধারণত সংশ্লিষ্ট মেশিন কোডের সাথে এক থেকে এক সম্পর্ক রয়েছে। তাই একজন অ্যাসেম্বলারকে আইসোমরফিক (এক থেকে এক ম্যাপিং) অনুবাদ করতে বলা হয়। অ্যাডভান্সড অ্যাসেম্বলার অতিরিক্ত বৈশিষ্ট্যগুলি প্রদান করে যা প্রোগ্রাম ডেভেলপমেন্ট এবং ডিবাগিং প্রক্রিয়াকে সমর্থন করে। উদাহরণস্বরূপ, ম্যাক্রো অ্যাসেম্বলার নামক অ্যাসেম্বলারের ধরন একটি ম্যাক্রো সুবিধা প্রদান করে৷
একজন দোভাষী কি?
একজন দোভাষী হল একটি কম্পিউটার প্রোগ্রাম বা একটি টুল যা প্রোগ্রামিং নির্দেশাবলী কার্যকর করে। একজন দোভাষী হয় সরাসরি সোর্স কোড এক্সিকিউট করতে পারে অথবা সোর্সটিকে একটি ইন্টারমিডিয়েট কোডে রূপান্তর করতে পারে এবং সরাসরি এক্সিকিউট করতে পারে বা কম্পাইলার দ্বারা উত্পাদিত প্রি-কম্পাইলড কোড এক্সিকিউট করতে পারে (কিছু ইন্টারপ্রেটার সিস্টেমে এই কাজের জন্য একটি কম্পাইলার থাকে)।পার্ল, পাইথন, ম্যাটল্যাব এবং রুবির মতো ভাষাগুলি একটি মধ্যবর্তী কোড ব্যবহার করে এমন প্রোগ্রামিং ভাষার উদাহরণ। UCSD Pascal একটি প্রি-কম্পাইল করা কোড ব্যাখ্যা করে। Java, BASIC এবং Samlltalk এর মতো ভাষাগুলি প্রথমে বাইটকোড নামক একটি মধ্যবর্তী কোডে উত্সকে সংকলন করে এবং তারপরে এটি ব্যাখ্যা করে৷
একজন অ্যাসেম্বলার এবং একজন দোভাষীর মধ্যে পার্থক্য কী?
একটি অ্যাসেম্বলারকে একটি বিশেষ ধরণের কম্পাইলার হিসাবে বিবেচনা করা যেতে পারে, যা কেবলমাত্র অ্যাসেম্বলি ভাষাকে মেশিন কোডে অনুবাদ করে। দোভাষী হল এমন সরঞ্জাম যা কিছু ভাষায় লিখিত নির্দেশ কার্যকর করে। ইন্টারপ্রেটার সিস্টেমে ব্যাখ্যা করার আগে কোড প্রাক-কম্পাইল করার জন্য একটি কম্পাইলার অন্তর্ভুক্ত থাকতে পারে, কিন্তু একটি দোভাষীকে একটি বিশেষ ধরনের কম্পাইলার বলা যায় না। অ্যাসেম্বলাররা একটি অবজেক্ট কোড তৈরি করে, যা একটি মেশিনে চালানোর জন্য লিঙ্কার প্রোগ্রাম ব্যবহার করে লিঙ্ক করতে হতে পারে, তবে বেশিরভাগ দোভাষী নিজেরাই একটি প্রোগ্রামের সম্পাদন সম্পূর্ণ করতে পারে। একজন অ্যাসেম্বলার সাধারণত এক থেকে এক অনুবাদ করবেন, কিন্তু বেশিরভাগ দোভাষীর ক্ষেত্রে এটি সত্য নয়।যেহেতু অ্যাসেম্বলি ল্যাঙ্গুয়েজে মেশিন কোডের সাথে এক থেকে এক ম্যাপিং রয়েছে, তাই একটি অ্যাসেম্বলার ব্যবহার করা যেতে পারে কোড তৈরির জন্য যা অত্যন্ত দক্ষতার সাথে চলে এমন অনুষ্ঠানের জন্য যেখানে কার্যকারিতা খুবই গুরুত্বপূর্ণ (যেমন গ্রাফিক্স ইঞ্জিন, ব্যক্তিগত কম্পিউটারের তুলনায় সীমিত হার্ডওয়্যার সংস্থান সহ এমবেডেড সিস্টেম যেমন মাইক্রোওয়েভ, ওয়াশিং মেশিন ইত্যাদি)। অন্যদিকে, যখন আপনার উচ্চ বহনযোগ্যতার প্রয়োজন হয় তখন দোভাষী ব্যবহার করা হয়। উদাহরণস্বরূপ, একই জাভা বাইটকোড উপযুক্ত দোভাষী (JVM) ব্যবহার করে বিভিন্ন প্ল্যাটফর্মে চালানো যেতে পারে।