Compiler နဲ့ Interpreter ဘာကွာလဲ
Compiler နဲ့ Interpreter နှစ်ခုလုံးဟာ ကိုယ်ရေးထားတဲ့ High-level code (C#, Python, Java) တွေကို ကွန်ပျူတာနားလည်တဲ့ Machine code အဖြစ် ပြောင်းပေးတဲ့ "ဘာသာပြန်ဆရာ" တွေ ဖြစ်ကြပါတယ်။ ဒါပေမဲ့ သူတို့ ဘာသာပြန်ပုံချင်းကတော့ အခြေခံအားဖြင့် ကွာခြားပါတယ်။
အဓိက ကွာခြားချက်တွေကို အောက်ပါအတိုင်း နှိုင်းယှဉ်ကြည့်နိုင်ပါတယ်-
၁။ အလုပ်လုပ်ပုံ (Process)
• Compiler: ပရိုဂရမ်တစ်ခုလုံး (တစ်အုပ်လုံး) ကို အစကနေ အဆုံးထိ အကုန်ဖတ်ပြီးမှ တစ်ခါတည်း ဘာသာပြန်ပါတယ်။ ပြီးရင် .exe လိုမျိုး သီးခြားဖိုင်တစ်ခု ထုတ်ပေးပါတယ်။
• Interpreter: ကုဒ်ကို တစ်ကြောင်းချင်းစီ ဖတ်ပါတယ်။ ပထမတစ်ကြောင်းကို ဖတ်တယ်၊ ဘာသာပြန်တယ်၊ ချက်ချင်း Run တယ်။ ပြီးမှ နောက်တစ်ကြောင်းကို ဆက်သွားပါတယ်။
၂။ အမြန်နှုန်း (Speed)
• Compiler: ဘာသာပြန်တဲ့အချိန် (Compilation time) ကတော့ ကြာတတ်ပါတယ်။ ဒါပေမဲ့ တစ်ခါဘာသာပြန်ပြီးသွားရင် ထွက်လာတဲ့ executable ဖိုင်က အလွန်မြန်မြန် Run နိုင်ပါတယ်။
• Interpreter: သူကတော့ ဘာသာပြန်စရာမလိုဘဲ ချက်ချင်းစ Run လို့ရပါတယ်။ ဒါပေမဲ့ Run နေစဉ်မှာပဲ တစ်ကြောင်းချင်း ဘာသာပြန်နေရလို့ ပရိုဂရမ်တစ်ခုလုံးရဲ့ လုပ်ဆောင်ချက်က Compiler ထက် နှေးပါတယ်။
၃။ အမှားရှာဖွေခြင်း (Error Handling)
• Compiler: ကုဒ်ထဲမှာ တစ်နေရာရာမှာ အမှား (Error) ပါနေရင် ပရိုဂရမ်တစ်ခုလုံးကို ဘာသာပြန်မှာ မဟုတ်ပါဘူး။ အားလုံးမှန်မှသာ အလုပ်လုပ်ပါတယ်။
• Interpreter: အမှားရှိတဲ့ စာကြောင်းကို မရောက်မချင်း ပရိုဂရမ်က ဆက် Run နေပါလိမ့်မယ်။ အမှားရှိတဲ့နေရာရောက်မှသာ ရပ်သွားပြီး Error ပြပါလိမ့်မယ်။
နှိုင်းယှဉ်ချက်ဇယား (Comparison Table)
အချက်အလက် Compiler -Interpreter
ဘာသာပြန်ပုံ တစ်ခုလုံးကို အပြတ်ပြန်သည်။ -တစ်ကြောင်းချင်းစီ ပြန်သည်။
Output .exe သို့မဟုတ် .obj ဖိုင်ထွက်သည်။ -သီးခြားဖိုင် ထွက်မလာပါ။
အသုံးပြုမှု C, C++, C# -Python, JavaScript, PHP
Memory Memory ပိုသုံးသည်။ -Memory သုံးစွဲမှု သက်သာသည်။
ဥပမာ -
• Compiler က "စာအုပ်တစ်အုပ်လုံးကို ဘာသာပြန်ထားတဲ့ ဘာသာပြန်စာအုပ်" နဲ့ တူပါတယ်။ သင်ဖတ်ချင်တဲ့အခါ အသင့်ဖတ်ရုံပါပဲ။
• Interpreter ကတော့ "ဘေးကနေ တစ်ကြောင်းချင်း လိုက်ပြောပေးနေတဲ့ စကားပြန်" နဲ့ တူပါတယ်။ သူပြောတာကို စောင့်နားထောင်ရသလို သူရှိမှသာ အလုပ်ဖြစ်မှာပါ။
မှတ်ချက်: C# ကတော့ ထူးခြားပါတယ်။ သူက Compiler ကိုရော (ကုဒ်ကို Intermediate Language ပြောင်းဖို့)၊ Interpreter/JIT (Just-In-Time) ကိုရော (IL ကနေ Machine Code ပြောင်းဖို့) နှစ်မျိုးလုံးကို ပေါင်းစပ်အသုံးပြုတာ ဖြစ်ပါတယ်။
Top comments (0)