image from google
Programming ဆိုတာ ကြန္ပ်ဴတာတစ္လုံးေပၚမွာ လုပ္ေဆာင္ခ်က္ေတြကို အမိန႔္ေပးခိုင္းေစနိုင္တဲ့ အရာေတြလို႔ အၾကမ္းအေနနဲ႕ မွတ္ယူနိုင္မွာျဖစ္ပါတယ္။
ဒီေတာ့ ကြၽန္ေတာ္တို႔ ထိေတြ႕ေနၾကတဲ့ ကြန္ပ်ဴတာဆိုတဲ့ အရာေတြကို ပထမဆုံးေလ့လာၾကည့္မွာ ျဖစ္ပါတယ္။
ကြၽန္ေတာ္တို႔ အသုံးျပဳေနတဲ့ ကြန္ပ်ဴတာဟာ ထိေတြ႕ကိုင္တြယ္နိုင္ေသာအရာ (Hardware) နဲ႕ ထိေတြ႕ကိုင္တြယ္လို႔ မရနိုင္ေသာအရာ (Software) တို႔နဲ႕ ေပါင္းစပ္ဖြဲ႕စည္းထားပါတယ္။
Hardware ဆိုတာ
(1). Input Device မ်ား
a. Keyboard
b. Mouse
c. Scanner
d. Microphone
e. Webcam
(2). Output Device မ်ား
a. Monitor
b. Printer
c. Speaker
d. Headphones
e. Projector
ဒီေနရာမွာ သိထားရမွာက Hardware မွာ မွတ္ဉာဏ္ပဲရွိၿပီးေတာ့ အသိဉာဏ္မရွိပါဘူး။ ဒါေၾကာင့္ (Computer has no Intelligence.) လို႔ဆိုနိုင္မွာျဖစ္ပါတယ္။
Software ဆိုတာ
ကြန္ပ်ဴတာႀကီး အသက္ဝင္လာေအာင္၊ အလုပ္ေတြလုပ္လို႔ရေအာင္ သူ႕မွတ္ဉာဏ္ကို အားကိုးၿပီး အသိဉာဏ္နဲ႕တူတဲ့ Software ေတြကို Run ေပးရပါတယ္။
ဒီ Software ေတြေၾကာင့္ ကြန္ပ်ဴတာဟာ လုပ္ေဆာင္ခ်က္ေတြကို လုပ္နိုင္တာျဖစ္ၿပီး၊ Hardware ေတြကို ခိုင္းေစရန္အတြက္ Software ေတြလိုအပ္လာပါတယ္။
Software ဆိုတဲ့ေနရာမွာ အလြယ္ေျပာရရင္ေတာ့ Programming ဘာသာစကားေတြနဲ႕ ေရးထားတဲ့ အစုေအဝးတစ္ခုကို ဆိုလိုပါတယ္။
ဥပမာအားျဖင့္ Adobe Pagemaker, Photoshop, Office, AutoCAD, စသည္ျဖင့္ အားလုံးကို Software လို႔ေခၚဆိုနိုင္ပါတယ္။
အဲ့ဒါေတြ ျဖစ္လာေအာင္ Programming Languages ေတြ နဲ႕ေရးၾကရပါတယ္။ အဲ့ဒီေတာ့ Programming ဆိုတာ Software ေရးနည္းလို႔ဆိုနိုင္မွာျဖစ္ပါတယ္။
Program တစ္ခုမွာ
Data
Instruction/ Command ဆိုၿပီး ႏွစ္ခုပါတယ္။
ဥပမာအေနနဲ႕ေျပာမယ္ဆိုရင္
5 နဲ႕ 4 ေပါင္းတဲ့ ကိစၥတစ္ခုကို ေဖာ္ျပပါမယ္။
အရွင္းလင္းဆုံးပုံစံနဲ႕ ျပရမယ္ဆိုရင္ 5 + 4 လို႔ေရးနိုင္ပါတယ္။
အဲ့ဒီေနရာမွာ 5 နဲ႕ 4 က Data ျဖစ္ၿပီး (+) က Instruction / Command ျဖစ္ပါတယ္။
Programming Language ေတြမ်ားစြာ ရွိပါတယ္။ ဒါေပမယ့္ အေျခခံသေဘာတရားေတြကေတာ့ အားလုံးအတူတူပဲလို႔ ဆိုနိုင္ပါတယ္။
Programming Language ကို အေျခခံအားျဖင့္ေတာ့ (၃) မ်ိဳး ခြဲျခားထားပါတယ္။
Machine Languages
Assembly Languages
High-Level Languages တို႔ျဖစ္ပါတယ္။
- Machine Languages
သူ႕မွာ “0” ရယ္ “1” ရယ္ႏွစ္ခုပဲ ရွိပါတယ္။ စက္အတြက္ ေရးတဲ့စာလို႔ နားလည္နိုင္ပါတယ္။ လူတစ္ဦးအေနနဲ႕ေတာ့ နားလည္ဖို႔ မျဖစ္နိုင္ပါဘူး။ စက္တစ္လုံးအေပၚမွာေတာ့ အျပည့္အဝနားလည္နိုင္တဲ့ အေျခအေနတစ္ခုျဖစ္ပါတယ္။
- Assembly Languages
Assembly Languages မွာေတာ့ လူက 30% ေလာက္နားလည္လာၿပီး စက္ကလည္း 70% ေလာက္ နားလည္လာပါၿပီ။
Assembly Languages မွာ Data ေတြရွိမယ္၊ Instruction / Command ေတြရွိမွာျဖစ္ပါတယ္။
ဥပမာအေနနဲ႕ ထပ္ေျပာရမယ္ဆိုရင္ေတာ့ 10 + 20 = 30 ဆိုတာမ်ိဳးပါ။ 10, 20, 30 က Data ေတြျဖစ္ၿပီး၊ + နဲ႕ = က Instruction / Command ေတြျဖစ္ပါတယ္။ဒါေပမယ့္ စက္ကို ဒီအတိုင္းသြားေရးျပမယ္ဆိုရင္ သူကမသိနိုင္ပါဘူး။ သူက 0 နဲ႕ 1 ႏွစ္ခုပဲသိတာ ျဖစ္ပါတယ္။ စက္နားလည္နိုင္ဖို႔အတြက္ ဘာသာျပန္ (Compile) လုပ္ေပးရတယ္။
အဲ့ဒီအခါမွ Machine Language ျဖစ္သြားၿပီး စက္မွ Run လို႔ရသြားမွာျဖစ္ပါတယ္။ Compile ဆိုတာ ေျပာင္းေပးတာျဖစ္ပါတယ္။ Assembly Language ကေန Machine Language ကိုေျပာင္းေပးတာကို Compile လုပ္တယ္လို႔ေခၚတယ္။ နာမည္အေနနဲ႕ Assembler လို႔ေခၚပါတယ္။
- High-Level Languages
High-Level Languages မွာေတာ့ လူေတြက 100% ကို နားလည္လာၿပီးျဖစ္ပါတယ္။
စက္ကိုလည္း နားလည္ေအာင္ Compile လုပ္လို႔ အဆင္ေျပသြားၿပီးလို႔ ဆိုနိုင္ပါတယ္။ High-Level မွာလည္း Data ေတြ Instruction / Command ေတြနဲ႕ ျပည့္စုံပါတယ္။ Program တစ္ခုေရးၿပီးလို႔ စက္နားလည္ေအာင္ Compile လုပ္ေပးရင္ သူ႕ကို နာမည္အေနနဲ႕ Compiler လို႔ေခၚပါတယ္။ ဆက္လက္ေဖၚျပပါမည္။