ကွန်ပျူတာပရိုဂရမ်

**ကွန်ပျူတာပရိုဂရမ်** ()ကရိုနဝ်ꩻ ကွန်ပျူတာကောသွုံꩻသားလိုႏရာꩻအတွိုင်ꩻ ထွဉ်ႏအီကွန်ပျူတာမာꩻထာꩻမာꩻတာႏ ယီးထွဉ်ႏချက်စာႏရင်ꩻဒျာႏသွူ။ ပရိုဂရမ်ဖုံႏမီႏအဝ်ႏမꩻ ကွန်ပျူတာမာꩻထာꩻမာꩻလꩻတဲင် ပရိုဂရမ်ယီးထွဉ်ႏချက် ကမာꩻထာꩻမာꩻခင်ႏလမ်းနဝ်ꩻ အဝ်ႏဒျာႏဗဟိုႏပရိုသဲတ်သာကိုကဲဉ်းအာသွူ။ ပရိုဂရမ်နဝ်ꩻ ကွန်ပျူတာကသေနာႏနွောင်ꩻဒါႏ (executable) ပွုံႏစံႏလဲ့အဝ်ႏ၊ နီနာꩻလိုꩻသီး သေနာႏဟော်ꩻထွားနွောင်ꩻဒါႏ အရွီးအခိုႏကုဒ်ပွုံႏစံႏလဲ့အဝ်ႏသွူ။ နဝ်ꩻအကို နီနာꩻလိုꩻသီး ကသေနာႏဟော်ꩻထွားနွောင်ꩻဒါႏ အရွီးအခိုႏကုဒ်ပွုံႏစံႏယိုနဝ်ꩻ မာꩻပြောင်ꩻလွေꩻ ကွန်ပျူတာကသေနာႏဒါႏ အိတ်စျူသတေဗယ်လ်ပွုံႏစံႏတဲ့ လꩻဒျာႏသွူ။ ကွပ်ပွိုး အရွီးအခိုႏကုဒ်ပွုံႏစံႏအဝ်ႏမꩻ ပရိုဂရမ်မာသီး ဖန်ꩻဆင်ꩻပျုပျင်ႏလွေꩻ (algorithms)ဖုံႏ ယိုꩻအီသွူ။ source code နဝ်ꩻ လိုꩻကလွူးအီနမ်းတွမ်ႏ ကွန်ပျူတာပရိုဂရမ်မာပညာႏသားဖုံႏ ကုဲင်းတဲမ်းသေႏသေႏသွူ။ အရွီးအခိုႏကုဒ်ယိုနဝ်ꩻ နေတွမ်ႏ imperative programming မွေးတဝ်းလဲ့ declarative programming ကပါဒါႏ ပရိုဂရမ်မိဉ်းဘာႏသာႏ(programming language) ယိုတမျိုꩻတဲင် တဲမ်းစန်ႏလွေꩻအီဒျာႏသွူ။ Source code ကရိုꩻနဝ်ꩻ အဝ်ႏ compiler ပြောင်ꩻလုဲင်ႏမာꩻထွာလွေꩻဖေႏ executable fileလꩻသွူ။ ယင်းတမျိုꩻနဝ်ꩻ interpreter  (မွေးတဝ်းလဲ့) hardwareကိုနဝ်ꩻ အွဉ်ႏသော့ꩻသေꩻခါꩻ interpreter အဝ်ႏတဲင် နေးတွမ်ႏဝွေꩻအကူႏအညီႏမꩻ အဝ်ႏ central processing unit မာꩻထွာလွေꩻ execute တဲ့လꩻဒျာႏသွူ။
‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

ကွန်ပျူတာပရိုဂရမ် (တဝ်းလဲ့) ပရိုဂရမ်နဝ်ꩻ ကွန်ပျူတာတဖြုံႏ မာꩻအီထာꩻမာꩻတာႏ ကတဲမ်းစန်ႏသေꩻခါꩻဒါႏ ယီးနယ်ထွဉ်ႏချက်(အမိန်း) အစီႏအစဲဉ်ႏဖုံႏဒျာႏသွူ။ ပရိုဂရမ်မီႏအဝ်ႏမꩻ ကွန်ပျူတာထွဉ်ႏအတွိုင်ꩻ ကွန်ပျူတာCPUအီႏမာꩻနွောင်ꩻ executionသွူ။ ပရိုဂရမ်ကိုနဝ်ꩻ ကွန်ပျူတာထူႏသွုံꩻစွဉ်ႏနွောင်ꩻဒါႏ executableထွို့ꩻဗူႏပွုံႏပါနေနေသွူ။ ပရိုဂရမ်ဖုံႏအကို နီꩻနာꩻလိုꩻသီး ကသေနာႏဟော်ꩻထွားနွောင်ꩻဒါႏ အရွီးအခိုႏကုဒ်ထွို့ꩻဗူႏပွုံႏအယ်ဂေါ်ရစ်တံနဝ်ꩻ ကောတဲမ်းစန်ႏပရိုဂရမ်သားအတာႏ ထွာအီအကူႏအညီႏ အထောက်အပံ့တဗာႏသွူ။ ကွန်ပျူတာပရိုဂရမ်ဖုံႏတွမ်ႏ ပွိုင်ႏဝွို့တွမ်ႏဝွေꩻဒေတာ(အချက်အလက်) အစုစုအဒဝ်ႏဒဝ်ႏဖုံႏယိုနဝ်ꩻ ဝင်ꩻဟဲ့ꩻသော့ဝွဲသွူ။ ကွန်ပျူတာ ရွီးခိုႏဖုံႏနဝ်ꩻ လိုကဖန်ဆင်ꩻတဲမ်းစန်ႏဒါႏပရိုဂရမ်သား တဲမ်းစန်ႏချာဒျာႏသွူ။ အရွီးအခိုႏကုဒ်ယိုနဝ်ꩻ အဝ်ႏဖိုင်ကမာꩻအီလꩻဒါႏထာꩻမာꩻဖုံႏ ပြောင်ꩻလွေꩻဖေႏcompilerထွူမꩻ ကွန်ပျုတာCPUထူႏသွုံꩻမာꩻအီလွေꩻထာꩻမာꩻ နုဲင်းနဝ်ꩻသွူ။ ကွန်ပျူတာပရိုဂရမ်ဖုံႏယိုနဝ်ꩻ နေးတွမ်ႏ interpreter အကူႏအညီႏ (မွေးတဝ်းလဲ့) သွင်ꩻသော့ꩻပွုံႏသီခါꩻနေး ဟာဒ်ဝွဲ(ကွန်ပျူတာစက်)ကိုထွူမꩻ ထွဉ်ႏမာꩻထာꩻမာꩻလꩻသွူ။ ကွန်ပျူတာပရိုဂရမ်ဖုံႏအကို system software (သော့ဝွဲစက်ကိုဖဲ့ꩻ) တွမ်ႏ External Software(သော့ဝွဲစက်အထန်ႏဖဲ့ꩻ)စတဲင် ခွဲꩻချာꩻခါꩻနေး နီမျိုꩻသွူ။ ကွန်ပျူတာတဖြုံႏနဝ်ꩻ ထွဉ်ႏပရိုဂရမ်ခွုင်းမုဲင်ꩻဗာႏဗာႏတွော့ꩻ အွဉ်ႏမာꩻသွိုတဝင်ꩻထာꩻမာꩻတလဲင်ႏချင်ꩻလꩻသွူ။ နဝ်ꩻနဝ်ꩻ ဝင်ꩻဟဲ့ꩻ multitaskingသွူ။

## ပရိုဂရမ်းမိဉ်း
ပရိုဂရမ်ဖုံႏအကို ကပါသော့ꩻဒါႏ အရွီးအခိုႏကုဒ်ဖုံႏယိုနဝ်ꩻ စဲစ်ဆေꩻစံꩻထွားလꩻ၊ ဖꩻဖြယ်ခွဲꩻထန်ႏထိုꩻလꩻ၊ ဖေႏနေးကယံထဲင်းထဲင်းတဲင် ဖျင်တသာထဲင်းထဲင်းလꩻ၊ စုခြွဉ်းသော့ꩻငီꩻတွမ်ႏ ဝင်ꩻလင်ကဖန်ဆင်ꩻတဲမ်းစန်းသေꩻခါꩻဒါႏပရိုဂရမ်အလင်တဲ့လꩻသွူ။ စတဲင် ကမာꩻဒါႏနုဲင်းယိုစားဖုံႏနဝ်ꩻ ဝင်ꩻဟဲ့ꩻသော့ဝွဲထင်ႏထိုရေꩻသွူ။ ထာꩻမာꩻယိုနဝ်ꩻ ပီနုဲင်းဒျာႏ အဉ်စဉ်နီယာအနယ်ꩻစနိစ်တဗာႏနေနေတဲင်တွော့ꩻ သော့ဝွဲအဉ်စဉ်နီယာကရိုꩻဒါႏ အသွုံꩻအနွုံꩻယိုတဗာႏလဲ့ တိုꩻတက်စွစ်ꩻလီလွဉ်လဲဉ်းသွူ။

### Paradigms
ကွန်ပျူတာပရိုဖုံႏအကို ပရိုဂရမ်မိဉ်းဘာႏသာႏငေါဝ်းငွါ စီႏစဉ်ႏအွဉ်ႏအုံချက်မူအလꩻ imperative တွမ်ႏ declarative စတဲင် အဓိကထေခွဲꩻခါꩻနီမျိုꩻသွူ။

### ချားပြန်ႏ(compiling or interpreting)ဘာႏသာႏ
အရွီးအခိုႏကုဒ်ကရိုꩻဒါႏ ပရိုဂရမ်မျိုꩻနဝ်ꩻ နီနာꩻလိုꩻသီး ဟော်ꩻထွားသေနာႏနွောင်ꩻဒါႏ ကွန်ပျူတာဘာႏသာႏငေါဝ်းငွါတမျိုꩻဒျာႏသွူ။ အရွီးအခိုႏကုဒ် ဖေႏနေးကမာꩻထာꩻမာꩻနဝ်ꩻ သွုံꩻနေးတွမ်ႏ compiler တဲင်တွော့ꩻ ပြောင်ꩻလွေꩻ executable image တဲ့လꩻ၊ သွုံꩻစွဉ်ႏနေးဗော့ꩻ interpreter တဲ့လꩻသွူ။ ပရိုဂရမ်မာꩻအီထာꩻမာꩻအကို compiler (မွေးတဝ်းလဲ့) interpreter ယိုနီမျိုꩻနဝ်ꩻ နီလိုꩻသီးထွဉ်ႏခရာႏလိုႏတဝ်း ဝွေꩻတွမ်ႏဝွေꩻ သေမာꩻချာဒျာႏထာꩻမာꩻသွူ။ ကွဲတွော့ꩻ ပရိုဂရမ်ကမာꩻထာꩻမာꩻ တွမ်ႏ interpreter စနိစ်စားနဝ်ꩻ interactive sessionကို ကောသွုံꩻသား မီႏမဲဉ်သော့ꩻ commands မꩻ ဝွေꩻဗွောင်အွဉ်ႏစွꩻဖေႏအခွင်ꩻသွူ။ ဝွေꩻယိုတမျိုꩻကမာꩻထာꩻမာꩻနဝ်ꩻ စနိစ်တဲပ်တဲပ်နဲပ်နဲပ်တဲင် ထေခွဲꩻမာꩻလွေꩻကွို့ꩻ ကောသွုံꩻသား ကထွဉ်ႏမာꩻအတွိုင်ꩻလွုမ်ꩻသွူ။ ယံမာꩻထာꩻမာꩻ မိန်းထွဉ်ႏချက် (မွေးတဝ်းလဲ့) ပသာအီ ယီးထွဉ်ႏချက်(အမိန်း)အတာႏ ကထူႏသွုံꩻဒါႏ ကွန်ပျူတာဘာႏသာႏငေါဝ်းငွါတဗာႏယိုနဝ်ꩻ ဝင်ꩻဟဲ့ꩻ scripting languageသွူ။

interpreter ယိုနဝ်ꩻ statement ကားကအဝ်ႏ ဝွေꩻdecodeဒီကုတ်သွူးဗာႏ တရဲဉ်ႏစီႏတဲင်တွော့ꩻ အမာꩻထာꩻမာꩻ ဟံးပေါင်းယွိုက်ꩻကယ်ꩻလဲဉ်း compilerသွူ။ နဝ်ꩻထွူတကာႏတဝ်း ပရိုဂရမ်ဖုံႏ မာꩻအီထာꩻမာꩻတာႏ ကွန်ပျူတာကိုနဝ်ꩻ interpreter လိုႏအဝ်ႏသေႏသေႏငါႏသွူ။ ပရိုဂရမ်ကသွုံꩻနေးတွမ်ႏ compilier တွော့ꩻ မာꩻအီထာꩻမာꩻစားနဝ်ꩻ compilier အဝ်ႏတဝ်းလဲ့ မာꩻနွောင်ꩻဒျာႏထာꩻမာꩻသွူ။

## Execution and Storage (မာꩻထာꩻမာꩻတွမ်ႏ အွဉ်ႏသိမ်ꩻခင်ႏလမ်း)
ကွန်ပျူတာသွုံꩻသား ထွဉ်ႏမာꩻတဝ်းထာꩻမာꩻခိန်ႏဖုံႏနဝ်ꩻ အသိမ်ꩻသေꩻခါꩻဒျာႏ non-volatile memoryကိုသွူ။ ကွန်ပျူတာသွုံꩻသား မီႏထွဉ်ႏမာꩻထာꩻမာꩻခိန်ႏမꩻ ကထွဉ်ႏဒါႏအတွိုင်ꩻ အဝ်ႏoperation systemကို ထေထန်ႏလွဉ်ဖေႏ ကောသွုံꩻသားကလိုႏအပ်ဒါႏ ပရိုဂရမ်နဝ်ꩻတဗာႏတဲင် ဝွေꩻအွဉ်ႏပေါႏလွဉ်ဖေႏ random access memoryကိုသွူ။ နဝ်ꩻထွူမꩻ ကွန်ပျူတာ(CPU)နဝ်ꩻ ကောသွုံꩻသားထွဉ်ႏအတွိုင်ꩻ မဆွိုးမချင်ꩻ အွဉ်ႏပရိုဂရမ်နဝ်ꩻတဗာႏ မာꩻလွေꩻထာꩻမာꩻသွူ။ ကွန်ပျူတာကောသွုံꩻသား မီႏအွဉ်ႏဆွိုးနားထိုꩻ မွေးတဝ်းလဲ့ ကွန်ပျူတာဟာဒ်ဝွဲ(စက်)အမာႏမီႏထွာတစွိုးစွိုးမꩻ ဝွေꩻအီႏအွဉ်ႏဆွိုးတရတ်ထာꩻမာꩻသွူ။

### Embedded programs(ပလို့ꩻခါꩻဒါႏ ပရိုဂရမ်)
ကွန်ပျူတာပရိုဂရမ်ယင်ဟန်ႏနဝ်ꩻ ပလို့ꩻပွုံႏသီခါꩻဒျာႏ ကွန်ပျူတာစက်ခြွိုင်း(ဟာဒ်ဝဲ)ကိုသွူ။ ကွန်ပျူတာမာꩻအီထာꩻမာꩻတာႏ အရီးသွတ်ꩻကလိုႏအပ်ဒါႏ ပရိုဂရမ်နဝ်ꩻ အွဉ်ႏသိမ်ꩻသေꩻခါꩻဒျာႏ read-only memoryကိုသွူ။ ကွန်ပျူတာ ကမာꩻစထာꩻတွင်ꩻ အနယ်ꩻစနိစ်(system)ကလိုႏအပ်ရာꩻ အကွို့ꩻအခဝ်ဖုံႏယို တယ်ႏပထမ processor registersတဲင် လွိုက်ရွေꩻမာꩻလွေꩻဖေႏ တယ်ႏdevice controllers၊ device controllers ဗꩻလွေꩻစွဉ်ႏဒျာႏ memory contentsသွူ။ ပထမကွန်ပျူတာပရိုဂရမ်ကရိုꩻနဝ်ꩻ ပထမအရီးသွတ်ꩻ မာꩻဗာႏထာꩻမာꩻတဲင် အမိဉ်ꩻနဝ်ꩻ ဟဲ့ꩻဒျာႏ operating system သွူ။ နေးတွမ်ႏဝွေꩻယို သော့ꩻလွေꩻပရိုဂရမ်ကောင်တာတဲင် ပွုံႏမဲဉ်ႏအွဉ်ႏမာꩻအီထာꩻမာꩻလꩻသွူ။ ကွန်ပျူတာ ကမာꩻဒါႏထာꩻမာꩻဖုံႏယို ထိန်ꩻချုဖေႏနေးကလꩻတဲင် ဟာ့ဒ်ဝွဲကိုနဝ်ꩻ အွဉ်ႏပလို့ꩻပွုံႏသီသေꩻခါꩻနေး ဖဉ်းဝွဲ ဖုံႏသွူ။ ပြောင်ꩻလုဲင်ႏဖေႏခရာႏတလိုႏတဝ်း မွေးတဝ်းလဲ့ ပြောင်ꩻလုဲင်ႏဖေႏဗာႏဆေ့ꩻဒါႏ ပရိုဂရမ်အမျိုꩻအသာꩻဖုံႏတွမ်ႏ မီႏပေ့ꩻပါဝါခိန်ႏ ပရိုဂရမ်ဖုံႏ ယံဖေ့ကုဲင်ထိုꩻမားမွုန်းနဝ်ꩻ ထူႏသွုံꩻအီႏဗာႏ ဖဉ်းဝွဲ(firmware)သွူ။

## အာႏကွိုꩻ
*