Google Play badge

တေးရေး


ရေးဖွဲ့သူများ

compiler ဆိုသည်မှာ ပရိုဂရမ်းမင်းဘာသာစကားတစ်မျိုး (ရင်းမြစ်ဘာသာစကားအဖြစ် ရည်ညွှန်းသည်) ဖြင့် ရေးသားထားသော ကွန်ပျူတာကုဒ်ကို အခြားပရိုဂရမ်းမင်းဘာသာစကား (ပစ်မှတ်ဘာသာစကားအဖြစ် ရည်ညွှန်းသည်) သို့ ဘာသာပြန်ဆိုရန် အသုံးပြုသော ကွန်ပျူတာပရိုဂရမ်ကို ရည်ညွှန်းသည်။ compiler ဟူသော အသုံးအနှုန်းသည် မြင့်မားသောအဆင့် ပရိုဂရမ်းမင်းဘာသာစကားမှ အောက်ခြေအဆင့် ပရိုဂရမ်းမင်းဘာသာစကားသို့ အရင်းအမြစ်ကုဒ်များကို ဘာသာပြန်သည့် ပရိုဂရမ်များအတွက် အဓိကအသုံးပြုသည်။ ဥပမာအားဖြင့်၊ စက်ကုဒ်၊ အရာဝတ္ထုကုဒ် သို့မဟုတ် စည်းဝေးပွဲဘာသာစကားကို executable ပရိုဂရမ်တစ်ခုဖန်တီးရန်။

compilers အမျိုးအစားများစွာ ရှိကြောင်း သတိပြုရန် အရေးကြီးပါသည်။ စုစည်းထားသော ပရိုဂရမ်သည် လည်ပတ်မှုစနစ် သို့မဟုတ် CPU သည် ကွန်ပြူတာလည်ပတ်သည့်စနစ်နှင့် ကွဲပြားသည့် ကွန်ပျူတာပေါ်တွင် အလုပ်လုပ်နိုင်လျှင် ကွန်ပလီတာကို ကွန်ပလီလာကို ကော်ပီလာဟု ခေါ်သည်။ အခြားတစ်ဖက်တွင် bootstrap compiler သည် compile လုပ်ရန် ရည်ရွယ်သော ဘာသာစကားဖြင့် ရေးသားထားသည်။ decompiler သည် အဆင့်နိမ့်ဘာသာစကားကို ပိုမိုမြင့်မားသောဘာသာစကားသို့ ဘာသာပြန်ဆိုရန် အသုံးပြုသည့် ပရိုဂရမ်တစ်ခုဖြစ်သည်။ အဆင့်မြင့်ဘာသာစကားများအကြား ဘာသာပြန်ဆိုရန် အသုံးပြုသည့် ပရိုဂရမ်ကို အရင်းအမြစ်မှ အရင်းအမြစ် စုစည်းမှုအဖြစ် ရည်ညွှန်းသည်။ ၎င်းကို transpiler အဖြစ်လည်း ရည်ညွှန်းနိုင်သည်။ ဘာသာစကား ပြောင်းလဲခြင်းမရှိဘဲ စကားအသုံးအနှုန်းပုံစံကို ဘာသာပြန်ဆိုရန် တာဝန်ရှိသော ပရိုဂရမ်ကို ဘာသာစကား ပြန်လည်ရေးသားခြင်းဟု လူသိများသည်။ compiler-compiler ဟူသောအသုံးအနှုန်းသည် syntax ခွဲခြမ်းစိတ်ဖြာမှုကိုလုပ်ဆောင်ရန်အတွက် parser များကိုဖန်တီးရန်အသုံးပြုသည့်ကိရိယာများကိုရည်ညွှန်းသည်။

compiler မှ လုပ်ဆောင်သော အချို့သော လုပ်ဆောင်ချက်များတွင်- ကြိုတင်လုပ်ဆောင်ခြင်း၊ ခွဲခြမ်းစိတ်ဖြာခြင်း၊ (syntax directed translation) semantic analysis၊ lexical analysis၊ code ထုတ်လုပ်ခြင်း၊ code optimization နှင့် input programs များကို intermediate ကိုယ်စားပြုအဖြစ်သို့ ပြောင်းလဲခြင်း။ စုစည်းသူများသည် မှန်ကန်သောအသွင်ပြောင်းမှုများနှင့် အရင်းအမြစ်ထွက်ရှိရန် ပစ်မှတ်သို့ အရင်းအမြစ်ထည့်သွင်းခြင်း၏ ထိရောက်သောဒီဇိုင်းကို မြှင့်တင်ပေးသည့် ကွဲပြားသောအဆင့်များတွင် အဆိုပါလုပ်ဆောင်မှုများကို အကောင်အထည်ဖော်ရန် တာဝန်ရှိပါသည်။ compiler ၏ မှားယွင်းသော အပြုအမူကြောင့် ဖြစ်ပေါ်လာသော ပရိုဂရမ် ချို့ယွင်းချက်များသည် ခြေရာခံပြီး လုပ်ဆောင်ရန် အလွန်ခက်ခဲပါသည်။ ထို့ကြောင့် Compiler အကောင်အထည်ဖော်သူများသည် compiler မှန်ကန်မှုရှိစေရန် သိသာထင်ရှားသော ကြိုးပမ်းအားထုတ်မှုများကို ရင်းနှီးမြှုပ်နှံကြသည်။

compilers များသည် အရင်းအမြစ်ပရိုဂရမ်များကို ပြောင်းလဲရန်အတွက် အသုံးပြုသည့် တစ်ခုတည်းသော ဘာသာပြန်များမဟုတ်ကြောင်း မှတ်သားထားရန် အရေးကြီးပါသည်။ အသွင်ပြောင်းပြီးနောက် ညွှန်ပြထားသည့် လုပ်ဆောင်ချက်များကို လုပ်ဆောင်ရန် တာဝန်ရှိသော ကွန်ပျူတာဆော့ဖ်ဝဲကို စကားပြန်အဖြစ် ရည်ညွှန်းသည်။ ဘာသာပြန်ခြင်းလုပ်ငန်းစဉ်သည် အဓိပ္ပာယ်ပြန်ဆိုခြင်း သို့မဟုတ် စုစည်းမှုတို့ကို ဦးစားပေးသည့် ကွန်ပျူတာဘာသာစကားများ ဒီဇိုင်းကို လွှမ်းမိုးထားသည်။ လက်တွေ့တွင်၊ compilers နှင့် compiled languages ​​များအတွက် စကားပြန်တစ်ဦးကို အကောင်အထည်ဖော်ခြင်းဖြင့် ဘာသာပြန်ထားသော ဘာသာစကားများအတွက် အကောင်အထည်ဖော်နိုင်ပါသည်။

compiler ကိုအသုံးပြုသောအခါ၊ program တစ်ခုကို run ရန် two-step process ကိုအသုံးပြုသည်ကို သတိပြုပါ။

စုစည်းမှုကိရိယာ ကွင်းဆက်

ကြီးမားသော ပရိုဂရမ်များအတွက်၊ compiler သည် multi step tool chain ၏ အစိတ်အပိုင်းဖြစ်သည်။

(preprocessor)- (compiler)- (assembler)- (linker)- (loader)။

Compiler တစ်ဦး၏ဖွဲ့စည်းပုံ

ခေတ်မီကွန်ပလီများကို အဓိက အစိတ်အပိုင်းနှစ်ခုဖြင့် ဖွဲ့စည်းထားသည်။ ဤအပိုင်းတစ်ခုစီကို မကြာခဏ ခွဲထားသည်။ ဤအဓိက အစိတ်အပိုင်း နှစ်ခုမှာ ရှေ့ဆုံး နှင့် နောက် ဆုံး ဖြစ်သည်။

ရှေ့ဆုံးတွင် အရင်းအမြစ်ပရိုဂရမ်ကို ပိုင်းခြားစိတ်ဖြာရန် တာဝန်ရှိသည်၊ ပရိုဂရမ်၏ အလယ်အလတ်ကိုယ်စားပြုမှုကို တည်ဆောက်ကာ ၎င်း၏ အစိတ်အပိုင်းများကို ဆုံးဖြတ်ရန် တာဝန်ရှိသည်။ ယေဘုယျအားဖြင့်၊ ရှေ့ဆုံးသည် ပစ်မှတ်ဘာသာစကားနှင့် သီးခြားဖြစ်သည်။

အခြားတစ်ဖက်တွင် နောက်ကျောသည် ပစ်မှတ်ပရိုဂရမ်ကို ရှေ့ဆုံးမှထုတ်လုပ်သည့် အလယ်အလတ်ကိုယ်စားပြုမှုမှ ပေါင်းစပ်လုပ်ဆောင်ရန် တာဝန်ရှိသည်။ ယေဘူယျအားဖြင့်၊ နောက်ခံဘာသာစကားသည် အရင်းအမြစ်ဘာသာစကားနှင့် ကင်းကွာသည်ဟု ဆိုသည်။

Download Primer to continue