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