DEV Community

Cover image for C# သင်ခန်းစာ - ၆
khunsai thawzin
khunsai thawzin

Posted on

C# သင်ခန်းစာ - ၆

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)