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