ပရိုဂရမ်မင်းဘာသာစကား

ဖြင့်ရေးထားသော ရိုးရှင်းသည့် *Hello world* source code]]
**ကွန်ပျူတာပရိုဂရမ်းဘာသာစကား**  () (အစီစဉ်ချ ဘာသာစကား (သို့) ကွန်ပျူတာဆော့ဖ်ဝဲလ်များရေးသားရာတွင်သုံးသည့် ဘာသာစကား) သည် စက်များ အထူးသဖြင့် ကွန်ပျူတာ များကို ညွှန်ကြားချက် ပေးရန် ပုံစံကျ တည်ဆောက်ထားသော လူနားလည်ရန်လွယ်သော စနစ်ကျ ဘာသာစကား သို့တည်းမဟုတ် ကွန်ပျူတာအား ဆက်တိုက်အလုပ်လုပ်စေရန် အမိန့်ပေးစာသားများကို ရေးသားရန်အတွက် ပြင်ဆင်ထားသော ဘာသာစကားများကို ခေါ်ဆိုသည်။ Programming Language အား အသုံးပြု၍ စက်များ၏ အပြုအမူများကို ထိန်းချုပ်ခြင်း၊ algorithms များဖြင့် ဉာဏ်တုများ တည်ဆောက်ခြင်းတို့ကို ပြုလုပ်နိုင်သည်။ ဤသို့သော အမိန့်ပေး အစီအစဉ်အစုအဝေးကိုပရိုဂရမ်ဟု ခေါ်ဆိုပြီး၊ ပရိုဂရမ်များကို ရေးသားခြင်းအား ပရိုဂရမ်ဟုခေါ်ဆိုသည်။ သဘာဝ ဘာသာစကားများကဲ့သို့ပင်၊ **ရေးသားပုံစနစ်** (ပရိုဂရမ်သဒ္ဒါ) နှင့်၊ **အဓိပ္ပာယ်သတ်မှတ်ချက်**များကို သတ်မှတ်ထားလေ့ရှိ၏။

နာမည်ကြီး Programming Languages များမှာ C, C++, C#, Java, Python, Ruby, PHP  စသည်တို့ဖြစ်သည်။ 

Programming Languages များကို ခွဲခြားကြည့်လျှင် General Purpose Language နှင့် Special Purpose Language ဟူ၍ (၂) မျိုးတွေ့ရသည်။ 

ရှေးဦးစွာ Software အမျိုးအစားများကို အကြမ်းဖျင်းလေ့လာကြည့်လျှင် 

* System Software
* Computer Software
* Mobile
* Web 

စသဖြင့် တွေ့နိုင်သည်။ 

General Purpose Language ဆိုသည်မှာ အထွေထွေသုံးရန်ရည်ရွယ်ထားသော ဘာသာစကားဟုခေါ်သည်။ ယင်းဘာသာစကားများသည် Software အမျိုးအစား(၁)မျိုးထက်ပို၍ ရေးသားနိုင်ကြသည်။ ဥပမာ-Java Language (Computer, Mobile, Web)။

Special Purpose Language ဆိုသည်မှာ သီးသန့်သုံးရန်ရည်ရွယ် ထားသော ဘာသာစကားဟုခေါ်သည်။ Software အမျိုးအစားတစ်ခု တည်းအတွက်သာ တီထွင်ထားသော ဘာသာစကားများဖြစ်ကြသည်။ ဥပမာ-PHP Language (Web Only)။

## How Does Work 
Computer ဟာ အလိုအလျောက် အလုပ်မလုပ်နိုင်ပါဘူး။ Computer နားလည်တဲ့ ဘာသာစကား နဲ့ computer ကို ခိုင်းစေရပါတယ်။ ဥပမာ။။ Viber မှာ call ကို နှိပ်လိုက်ရင် ဒီလူ ရဲ့ ဖုန်းကို သွားခေါ် ဆိုပြီး ရေးသားထားရပါတယ်။ ဒါမှ သုံးစွဲ သူက Call ဆိုတဲ့ ခလုတ်ကို နှိပ်လိုက်တဲ့ အခါမှာ ဖုန်း သွားခေါ်ပေးပါတယ်။

Microsoft Words မှာလည်း ထိုနည်းတူပါပဲ။ Print ဆိုတာကို နှိပ်လိုက်ရင် printer ကနေ စာထွက်လာအောင် ဆိုပြီး programming နဲ့ ရေးသားထားရပါတယ်။ သုံးစွဲ သူတွေ အနေနဲ့ကတော့ print ဆိုတာကို နှိပ်လိုက်တာနဲ့ printer ကနေ print ထုတ်ပေးပါတယ်။

Computer ဟာ 0 နဲ့ 1 ကို သာ သိပါတယ်။ ကျွန်တော်တို့ အနေနဲ့ 0 နဲ့ 1 နဲ့ ရေးဖို့ အရာမှာ မလွယ်ကူလှတဲ့ အတွက် high level language တွေကို အသုံးပြုပြီး computer ကို ခိုင်းစေအောင် ရေးသားကြပါတယ်။ Computer ကို ခိုင်းစေတတ်တဲ့သူဟာ programmer ဖြစ်လာပါတယ်။

Progrommer ဟာ သုံးစွဲ သူ နဲ့ computer ကြားမှာ ကြားခံ အနေနဲ့ သုံးစွဲ သူ ခိုင်းစေလိုတာတွေကို computer နားလည်အောင် ရေးသားပေးရတဲ့ သူပါ။ Programming language ကတော့ ဘာသာစကား တစ်ခုပါပဲ။ computer နဲ့ programmer ကြားမှာ ဆက်သွယ်ပေးတဲ့ ဘာသာစကားပါ။ Computer ဟာ အလိုအလျောက် ဘာမှ မလုပ်နိုင်ပါဘူး။ Programmer ဟာ computer ကို ဒါလုပ် ဒါလုပ် စသည် ဖြင့် ခိုင်းစေရပါတယ်။

အောက်က code မှာ computer ကို screen ပေါ်မှာ Hello World! ဆိုပြီး ရိုက်ပြခိုင်းပါတယ်။ Run ဆိုတာလေးကို နှိပ်ကြည့်လိုက်ပါ။ Hello World! ဆိုပြီး ပေါ်လာတာ တွေ့ရပါလိမ့်မယ်။

## မျိုးဆက် 
programming language generation နဲ့ ပတ်သက်ပြီးတော့ programming ကို စတင် သင်တဲ့ သူတွေ တော်တော်များများ သိထားသင့်ပါတယ်။ မသိလို့ ဘာဖြစ်လည်း ဆိုတော့ ဘာမှတော့ မဖြစ်ပါဘူး။ သိထားတော့ လက်ရှိ ကိုယ် သုံးနေတာ ဘယ် generation ရောက်နေပြီလဲ။ ဒီ generation မတိုင်ခင်က ဘယ် language တွေ ရှိခဲ့လဲ။ အခု ကိုယ်လေ့လာနေတာက ဘယ် generation လဲ။ စတာတွေကို သိရှိနိုင်ပါတယ်။

#### First Generation Language ( 1GL ) 
1950 မတိုင်ခင်က UNIVAC I နဲ့ IBM 701 တို့ဟာ ပထမဆုံး machine language program လို့ ဆိုလို့ရပါတယ်။ သို့ပေမယ့် 1GL ဟာ လျင်မြန်စွာ ကုန်ဆုံးသွားပြီး 2GL ကို ကူးပြောင်းလာခဲ့ပါတယ်။

#### Second Generation Language ( 2GL ) 
2GL ကတော့ လူသိများတဲ့ assembly language သို့မဟုတ် assembler ပေါ့။ assembler ကတော့ အခုထက်ထိတော့ အချို့နေရာတွေမှာ အသုံးချနေဆဲပါပဲ။

#### Third Generation Language ( 3GL ) 
အဲဒီနောက်ပိုင်းမှာတော့ 3GL တွေ ဖြစ်တဲ့ FORTRAN , LISP, COBOL တွေ ထွက်ခဲ့ပါတယ်။ 3GL ဟာ ပိုမို ရေးသားရမှာ လွယ်ကူလာပြီး အရင်တုန်းက machine code တွေနဲ့ မတူညီတော့ပါဘူး။ 3GL ဟာ gerneral use အနေနဲ့ အသုံးချလာနိုင်ခဲ့ပါတယ်။ 3GL နဲ့ အတူတူ general purpos language တွေကိုလည်း ပေါ်ထွက်လာခဲ့ပါတယ်။

C language ကို 1969 နဲ့ 1973 ကြားမှာ developed လုပ်ခဲ့ပြီးတော့ အခုအချိန်ထိ popular ဖြစ်နေသေးတဲ့ langauge တစ်ခုပါ။ C ကို ထပ်ပြီးတော့ version အသစ်တိုးကာ 1980 မှာ C++ ကို ထုတ်ခဲ့ပါတယ်။ C++ က object-oriented နဲ့system programming တွေ ပါဝင်လာပါတယ်။

Third Generation နဲ့ အတူ လက်ရှိ အသုံးပြုနေတဲ့ general purpose programming language တွေကတော့ PHP, ASP, C, C++, Java, Javascript, Perl, Python, Pascal, Fortran တို့ ဖြစ်ပြီး သူတို့ဟာလည်း Third generation Language တွေပါပဲ။

#### Fourth Generation Language ( 4GL ) 
Fourth generation language ကိုတော့ စီးပွားရေးဆိုင်ရာ business software တွေအတွက် ရည်ရွယ်ပြီး ဖန်တီးခဲ့ကြပါတယ်။ အချို့ 3GL ဟာ 4GL ထဲမှာ General Use အနေနဲ့ ပါဝင်လာပါတယ်။

#### Fifth Generation Language ( 5GL ) 
5GL ကတော့ အဓိကအားဖြင့် programmer မလိုပဲနဲ့ program တွေကို တည်ဆောက်ဖို့အတွက် ရည်ရွယ်ထားတာပါ။ 5GL တွေကို အဓိကအားဖြင့် Artificial Intelligence research တွေ မှာ အဓိက အသုံးပြုပါတယ်။ Prolog , OPS5, Mercury တို့က 5GL example တွေပေါ့။

* General Use
** Perl
** Python
** Ruby
** Go
* Database
** SQL
* Report generators
** Oracle Report
* Data manipulation, analysis, and reporting languages
** SQL PL
** SPSS
* GUI creators
** XUL
** OpenROAD
* Mathematical optimization
** AIMMS
** GAMS
* Database-driven GUI application development
** Action Request System
** C/AL
* Screen painters and generators
** SB+/SystemBuilder
** Oracle Forms
* Web development languages
** CFML
** Html
** CSS
** Java Script
** PHP
** etc...

## သမိုင်း 
ဒီဂျစ်တယ် ကွန်ပျူတာများ မပေါ်မီကပင် စီစဉ်ချ ရေးဆွဲနိုင်သော စက်များ ပေါ်ခဲ့သည် ဆိုရမည်။ သက္ကရာဇ် ကိုးရာစုလောက်တွင် ဗဟုသုတများ စုဝေးရာဟု ခေါ်ရမည့် ဘက်ဂဒက်မြို့တွင် မူဆာ ညီအကိုက အလိုအလျောက် တီးမှုတ်နိုင်သော ပလွေကိရိယာစက်ကို တီထွင်ခဲ့သည်။

## ကိုးကား