তথ্য ও যোগাযোগ প্রযুক্তি · অধ্যায় ৬
ইন্টারপ্রেটার বনাম কম্পাইলার: ভুল লাইনে কী হয়
মান বদলাও, চালাও, আর দেখো কী ঘটে।
তানিম Thonny-তে চার লাইনের একটি প্রোগ্রাম লিখল। প্রথম দুই লাইনে A ও B ছাপানোর কথা, তৃতীয় লাইনে সে c নামের একটি ভ্যারিয়েবল ছাপাতে চাইল, যেটি আগে কোথাও তৈরি করা হয়নি, আর চতুর্থ লাইনে D ছাপানোর কথা। পাইথন একটি ইন্টারপ্রেটার দিয়ে চলে। প্রোগ্রামটি চালালে স্ক্রিনে কী দেখা যাবে?
ইন্টারপ্রেটার দিয়ে চালালে কী দেখা যাবে?
- আগে A ও B ছাপা হবে, তারপর ৩ নম্বর লাইনে ভুল দেখিয়ে থেমে যাবে
- কিছুই ছাপা হবে না, শুরুতেই ভুল দেখাবে
- A, B ও D ছাপা হবে, ভুল লাইনটি বাদ যাবে
যা বদলাতে পারবে
- অনুবাদক: ইন্টারপ্রেটার (এক লাইন করে), কম্পাইলার (পুরো প্রোগ্রাম একসাথে)
যা মেপে দেখাবে
- আউটপুট
- ভুলের আগে ছাপা লাইন
- ভুলের লাইন
চালানোর সময় খেয়াল করো
- এবার অনুবাদক বদলে কম্পাইলার করো। কোনো লাইন কি আগে চলল?
নিজে করে দেখো
- এমনভাবে চালাও যাতে কোনো লাইনই না চলে।
ইঙ্গিত
কোন অনুবাদক আগে পুরো প্রোগ্রাম পড়ে?
ধারণাটা কী?আগে নিজে চালিয়ে দেখো, তারপর খোলো।
ইন্টারপ্রেটার এক লাইন করে অনুবাদ করে চালায়; কম্পাইলার আগে পুরো প্রোগ্রাম অনুবাদ করে
ইন্টারপ্রেটার প্রথম লাইন অনুবাদ করে চালায়, তারপর দ্বিতীয় লাইন, এভাবে চলতে থাকে। তাই A ও B ছাপা হয়ে যায়, আর ৩ নম্বর লাইনে c খুঁজে না পেয়ে NameError দেখিয়ে প্রোগ্রাম থেমে যায়; D আর ছাপা হয় না। কম্পাইলার আগে পুরো প্রোগ্রাম অনুবাদ করে ভুলগুলোর তালিকা দেয়, ভুল থাকলে কোনো লাইনই চলে না। পাইথন ইন্টারপ্রেটার ব্যবহার করে, তাই ভুল খুঁজতে কোন লাইন পর্যন্ত আউটপুট এসেছে সেটি দেখা খুব কাজের।
যেসব ভুল ধারণা হয়
- ইন্টারপ্রেটারও কম্পাইলারের মতো আগে পুরো প্রোগ্রাম পরীক্ষা করে, ভুল থাকলে কিছুই চলে না
- ভুল লাইন পেলে ইন্টারপ্রেটার সেটি বাদ দিয়ে পরের লাইনগুলো চালিয়ে যায়
বাস্তবে কোথায় দেখা যায়
- পাইথন, জাভাস্ক্রিপ্টের মতো ভাষায় প্রোগ্রামের কোন অংশে সমস্যা তা আউটপুট দেখে দ্রুত খুঁজে বের করা
- সি বা জাভার মতো কম্পাইলার ব্যবহারকারী ভাষায় চালানোর আগেই সব ভুল ঠিক করে নেওয়া