✔Programming ဆိုတာဘာလဲ?✔
Programming ဆိုတာ ဘာလဲ မေျပာခင္ programming ရဲ႕ သမိုုင္းကို အရင္ေျပာရေအာင္ဗ်ာ၊၊
computer အတြက္ အလုပ္လုပ္မယ့္ ပထမဆံုုး algorathm နဲ႕ တည္ေဆာက္ထားတယ့္ programming ကို စတင္ ေမြးဖြားအသက္သြင္း ခဲ့သူ ကေတာ့ England ႏိုင္ငံ London ၿမိဳ႕က “Ada Lovelase” ပဲျဖစ္ပါတယ္ ၊ သူမက programming ရဲ႕ မိခင္ႀကီးေပါ့၊
သူမကို 1815,December,10 မွာေမြးခဲ႔တာပါ ၊ 1852,Novemver,27 သူမအသက္ ၃၆ နွစ္မွာ လူသားေတြအတြက္ အလြန္အသံုုး၀င္တယ့္ programming ဆိုုတယ့္ မ်ိဳးဆက္သစ္ကိုု ထားခဲ႕ျပီး ေလာကၾကီးမွ အနားယူသြားပါတယ္ ၊ ေရွးပေ၀သဏီေခတ္တုုန္းကေတာ့ arithmethic တိုု႕ algebra တိုု႕ geometry တိုု႕လိုု စိတ္ကူးျခင္းေတြမရွိပါဘူး ၊ အဲ႔ဒီတုုန္းက လူသားေတြရဲ႕ သမိုုင္းမွာ တြက္ခ်က္ေပးတယ့္ စက္ပစၥည္းနဲ႕ ပတ္သက္တယ့္ ပစၥည္းဆိုုလိုု႕ BC2500 ခန္႕က Sumeria မွာ တီထြင္ခဲ့တယ့္ “ေပသီးတြက္ခံုု” ပဲ ရွိခဲ႔တာပါ ၊ ၊ BC100 ေလာက္က ပထမဆံုုး “mechanical calculator “ လိုု႕ ေခၚခဲ႕တာေပါ့ ၊ သူရဲ႕ အမ်ိဳးမ်ိဳးေသာ အရြယ္အစားနဲ႕ gears ေတြက calculations လုပ္ဖိုု႕အတြက္ေဆာင္ရြက္ေပးပါတယ္ ၊ အဲ႕ဒါကလည္း lunar-to-soloar calendars မွာသံုုးတဲ့ metonic cycle ကို အေျခခံၿပီးေတာ့ တည္ေဆာက္ထားတာပါ ၊ ထားပါေတာ့ဗ်ာ ၊ အရင္ ပေ၀သဏီ ကအေၾကာင္းေတြေတာ့ ျပန္မေျပာေတာ့ဘူး ၊ Analytical Engine အတြက္ ပထမဆံုး computer program ကိုု သခ်ာၤပညာရွင္ Ada Lovelase က Bernoulli numbers ရဲ႕ အစီအစဥ္ေတြကို တြက္ခ်က္ျပီးေရးသြားခဲ့ပါတယ္ ၊ Numerical calculations ရဲ႕ synthesis ဟာ computer programming အတြက္ ၾကိဳတင္ေဟာကိန္းလိုပါပဲ ၊အဲ႕ဒီေနာက္မွာေတာ့ လူသားေတြအတြက္ အလြန္လြယ္ကူတဲ့ နည္းလမ္းနဲ႔ အမိန္႕မ်ားျဖည့္သြင္းပီးေတာ့ ဖြဲ႕စည္းတည္ေဆာက္မႈေတြကို အၾကံရခဲ့ ပါတယ္ ၊ အဲ့ဒါက computer programming ရဲ႕ modern development ကို ဦးေဆာင္လမ္းျပေပးခဲ့တာပါ၊ စက္မႈေတာ္လွန္ေရးၿပီးေနာက္ပိုင္းေတာ့ Computer programming ရဲ႕ ဖြံ႕ျဖိဳးမႈက အရွိန္အရမ္းျမင့္လာပါတယ္၊
အခ်က္အလက္ေတြနဲ႕ အမိန္႕ေတြကို external punched card ေပၚမွာ ပထမဆံုး သိုုေလွာင္လိုက္ပါတယ္ ၊punched card ဆိုတာ stiff paper ရဲ႕ အပိုုင္းအစေလးပါပဲ ၊ punched card ထဲမွာ data processing applications ေတြအတြက္ data ဒါမွမဟုုတ္ စက္အစိတ္အပိုင္းကို အလိုေလွ်ာက္ ထိန္းခ်ဳပ္ဖို႕အတြက္ commands ေတြပါပါတယ္ |ေနာက္မွ punched card အေၾကာင္းကို post တစ္ခုအေနနဲ႔ေရးေတာ့မယ္ ၊အခုဆက္ရေအာင္ဗ်ာ
1880 မွာ Herman Hollerith က အခ်က္အလက္ေတြ မွတ္တမ္းတင္နိုုင္ တဲ့ ၾကားခံတစ္ခုကို တည္ထြင္ခဲ႔ပါတယ္။အဲ့ဒီ့ ၾကားခံမွာ ထည့္သြင္းထားတဲ့ မွတ္တမ္းေတြကို စက္ေတြနဲ႔ျပန္ဖတ္နိုုင္တယ္၊ Hellerith က အေမရိကန္ သခ်ာၤပညာရွင္ န႕ဲ တီထြင္သူေပါ့ ၊ သူက သန္းေပါင္းမ်ားစြာေသာ data ေတြကေန လ်င္ျမန္စြာ တြက္ခ်က္ေပးနုုိင္မယ့္ mechanical tabulator ကို punched card ေပၚမွာ အေျခခံပီးေတာ့ တီထြင္ခဲ့ပါတယ္ ၊”Hellerith cards” လို႕ ပထမဆံုုးေခၚခဲ့ပါတယ္ ၊ သူက keypunch,sorter နဲ႕ tabulator unit record machines ကိုပါတီထြင္ခဲ့ပါတယ္ ၊ ဒီတီထြင္မႈေတြက သူရဲ႕ data processing လုုပ္ငန္းအတြက္ အေျခခံျဖစ္လာပါတယ္၊ Hellerith က ေနာင္မွာ IBM ဆိုပီးျဖစ္လာမယ့္ Tabulating Machine Company ကို စတင္တည္ေထာင္သူေပါ့ ၊ modern machine data porcessing ရဲ႕ ဖခင္ အျဖစ္ သတ္မွတ္ခံထားရတဲ႕ လူတစ္ေယာက္ပါ ၊ သူ႕ရဲ႕ မူၾကမ္းအယူအစ က ရာစုနွစ္တစ္ခုအတြက္ တြက္ခ်က္ေရးေလာကကို စိုးမိုးျခယ္လွယ္ခဲ့ပါတယ္ ၊ 1906 မွာ control panel(plugboard) ကိုေပါင္းထည့္ခဲ့ပါတယ္ ၊ plugboard ဆိုတာက ဘုတ္ျပားေပၚမွာ မ်ားျပားလွတယ့္ sockets ေတြကေန လ်ွပ္စစ္ပတ္လမ္းေတြ ၊ တယ္လီဖုုန္းလိုုင္းေတြ နဲ႕ ကြန္ျပဴတာ အစိတ္အပိုုင္းေတြကိုု အတြင္းပိုုင္းမွာခ်ိတ္ဆက္ေပးထားတာပါ ၊ ၊ Tabulator က Hardware ဆုိင္ရာ ျပန္လည္တည္ေဆာက္ျခင္းမရွိပဲ ထူးျခားလွတယ့္အလုပ္ မတူညီတယ့္အလုပ္ေတြကို လုပ္ခြင့္ေပးထားပါတယ္ ၊ 1940 မွာ IBM 602 နဲ႕ IBM 604 ကေတာ့ မ်ားျပားလွတယ့္ တြက္ခ်က္မႈေတြကို စံနႈန္းျမင့္ မွတ္တမ္းတင္နိုုင္ခဲ့ပါတယ္ ၊ သူရဲ႕ control panels ေတြက operations ရဲ႕ စာရင္းအခ်က္အလက္ေတြကိုု သတ္မွတ္နိုုင္ခဲ့တယ္ ၊ ဒီနည္းနဲ႕ပဲ programmable machines ေတြျဖစ္လာခဲ့ပါတယ္ ၊
ေနာက္တေယာက္ကေတာ့ von Neumann ပါ ၊ သူက game theory နဲ႕ design ၿပီးေတာ့ computer memory ထဲမွာ သိမ္းနိုုင္မယ့္ computer programs ေတြကိုတီထြင့္ခဲ့တယ္ ၊Computer model အားလံုုးက ထူးျခားတယ့္ အမိန္႕ေတြ(machine language) ေတြသံုုးပီး တူညီတယ့္လုုပ္ငန္းတာ၀န္ေတြ လုပ္ပါတယ္ ၊ ေနာက္ေတာ့ programmer ေတြက assembly languages ေတြကို developed လုပ္ခဲ႕ၾကပါတယ္ ၊သေကၤတပံုစံ(e.g., ADD X,TOTAL) ထဲမွာ လိပ္စာေတြသတ္မွတ္တယ္ ၊ၿပီးေတာ့ ကိန္းဂဏန္း သေကၤတ တစ္ခုခ်င္းစီ ကိုု ေရးသားတာထက္စာရင္ စာသားပံုစံတခုထဲမွာ instruction တခုခ်င္းစီကို သတ္မွတ္လိုက္တာ ပိုျပီးလြယ္ကူသြားပါတယ္ ၊
assembly language လို programming ဘာသာရပ္တစ္ခု ေပၚျခင္းက ပိုၿပီးအဆင္ေျပေစပါတယ္ ၊ အလုပ္လုပ္ရတာ ပိုၿပီးျမန္လာပါတယ္ ၊ ျပီးေတာ့ machine language ကို သံုးျခင္းထက္ လူသားေတြ error တတ္နုုိင္မယ့္ အေျခအေန ပိုနည္းလာပါတယ္ ၊ဒါေပမယ့္ assembly language က machine language တခုထက္ ပိုမိုရုိးရွင္းျပီး သေကၤတစနစ္ေတြ ပိုမ်ားမ်ားအသုံးျပဳရပါတယ္။
1954 မွာ “FORTRAN” ကို တီထြင္ခဲ့ပါတယ္ ၊ FORTRAN က ပထမဆံုး high level programming language ပဲျဖစ္ပါတယ္ ၊ high-level language က စည္းကမ္းခ်က္ၾကီးပါတယ္ ၊ program စာသား ဒါမွမဟုုတ္ source ေတြက compiler လို႕ ေခၚတယ့္ special program ကို သံုးျပီး စက္နားလည္တယ့္ အမိန္႕အျဖစ္ ေျပာင္းေပးနုုိင္ပါတယ္၊ အမွန္က FORTRAN ဆိုတယ့္ နာမည္က “Formula Translation” အတြက္ ရပ္တည္ထားတာပါ ၊ မ်ားျပားလွတယ့္ တျခား languages ေတြကိုလည္း တီထြင္ခဲ့ၾကပါတယ္ ၊ စီးပြားျဖစ္ programming languages ေတြလည္း ပါ၀င္လာပါတယ္ ၊COBOL လိုေပါ့ ၊
အခ်ိန္ကာလတိုးတက္လာေတာ့ computers ေတြရဲ႕ အလုပ္လုုပ္နုုိင္တယ့္ စြမ္းအားဟာ ဘီလူးၾကီးတေကာင္ခုုန္သြားသလို ေၾကာက္စရာေကာင္းေလာက္ေအာင္ အရမ္းျမန္ဆန္လာပါတယ္ ၊ programming ဘာသာရပ္အသစ္ ေတြကိုု ယူေဆာင္လာပါတယ္ ၊အခုုေခတ္မွာ ေက်ာ္ၾကားေနတယ့္ programming languages ေတြကေတာ့ C,C++,C#,Haskell,PHP,Java,JavaScript,Objective-C,Perl,Python,Ruby,Smalltalk,SQL,Visual Basi, ActionScript ပီးေတာ့ အမ်ားအမ်ားၾကီးရွိပါေသးတယ္ ၊ Programming ေတြ ပိုပီးပိုုပီး ျပန္႕ နွံ႕ လာတာနဲ႕အမ်ွ သင္ရတာပိုပီးလြယ္လာမယ္ ၊ပီးေတာ့ programmer ေတြက source code နည္းနည္းေလးနဲ႕ applications ေတြ developed လုပ္နိုုင္တယ့္ အေျခအေနတရပ္ကိုု ျဖစ္ေပၚေစခဲ႔ပါတယ္ ၊ low-level နဲ႔ ပတ္သတ္တဲ့ hardware ထိန္းခ်ဳပ္ဖိုု႕ လိုအပ္လာတယ့္အခ်ိန္ ဒါမွမဟုုတ္ processing speed အျမင့္ဆံုုး မရွိမျဖစ္ လိုအပ္တယ့္အခ်ိန္ေတြမွာ high-level languages ေတြအသံုးျပဳျခင္းက လက္ေတြ႕မက်ပါဘူး၊ ဖြံ႕ျဖိဳးတုိးတတ္ေနတယ့္ ကမာၻမွာ Computer Programming က ေခတ္စားေနတယ့္ အသက္ေမြး၀မ္းေၾကာင္းတခု ျဖစ္လာပါတယ္ ၊
အလုပ္အတြက္ ဒါမွမဟုတ္ အပန္းေျဖစရာအျဖစ္ computer ကိုု အသံုုးျပဳတတ္ၾကမွာပါ ၊ လူအမ်ားစုကေတာ့ ေန႕စဥ္လုုပ္ငန္းတာ၀န္ အျဖစ္ computer ကို သံုုးၾကပါတယ္ ၊ သူတို႕ သာမာန္လူေတြအတြက္ ျငီးေငြ႕ ဖြယ္ေကာင္းတယ့္ အလုပ္ေတြကိုု ေကာင္းေကာင္းကိုုင္တြယ္ေျဖရွင္း နိုုင္ပါတယ္ ၊ ဥပမာ number ေတြေပါင္းတာ ၊ စာရြက္ေပၚမွာ စာေတြေရးတာေပါ့ ၊ Game စက္တလံုုးအေနနဲ႕ သံုုးရင္လည္း ေကာင္းပါတယ္ ၊ ဘာလို႕တုန္းဆိုုေတာ့ သူတို႕က အသံနဲ႕ ရုုပ္ပံုုေတြရဲ့ sequences ေတြကိုု play ေပးနိုုင္ပါတယ္ ၊ checkbook ကို ေငြစစ္နိုုင္တယ္ ၊ paper ေတြကို print ထုုတ္နိုုင္တယ္ ၊ ဂိမ္းေဆာ့နိုုင္တယ္ ၊ ကြန္ျပဴတာနဲ႔ယွဥ္ရင္ တျခားပစၥည္းေတြက လုပ္ငန္းအတြက္ အလုုပ္လုုပ္နုုိင္စြမ္းက နယ္ပယ္က်ဥ္းေျမာင္းပါတယ္ ၊
Computer မွာ လုပ္ငန္းတာ၀န္တခုစီ ေဆာင္ရြက္ဖိုု႕ အတြက္ program ေရးရမွာျဖစ္ပါတယ္ ၊ Computer က စက္ပစၥည္းေတြထဲမွာ တာ့ စံျပပဲျဖစ္ပါတယ္ ၊ data(numbers,words,media) ေတြသိမ္းထားနိုုင္ပါတယ္ ၊ devices(monitor screen,sound system,printer) ေတြနဲ႕ အျပန္အလွန္ တြဲဖက္အလုပ္လုပ္ႏိုင္တယ္၊ programs ေတြဖန္းတီးနိုုင္ပါတယ္
“Computer မွာ လုုပ္ငန္းတာ၀န္ေတြခိုင္းဖို႕ programs ေရးရပါတယ္ ၊ ကြဲျပားျခားနားတယ့္ လုုပ္ငန္းစဥ္ေတြအတြက္ ကြဲျပားျခားနားတယ့္ programs ေတြ လိုုပါတယ္”
ဒီေန႕ေခတ္ရဲ႕ computer programs ေတြ က ေခတ္မီဆန္းျပားလာပါတယ္ ၊ သူတို႕ကို ယံုုၾကည္ဖိုု႕ ခက္ခဲပါတယ္ ၊ သူတို႕က အလြန္ အေသးစိတ္တဲ့ ခြဲစိတ္မႈတခုုလုုပ္သလိုုမ်ိဳး အားလံုုးကို ေရးရပါတယ္၊ “computer programs ေတြက အရမ္းျမန္တယ့္ အရွိန္အဟုုန္ထဲမွာ အလြန္အေျခခံက်တယ့္ operations ေတြ ရဲ႕ အစီအစဥ္ေတြအတိုုင္း အလုပ္လုပ္ကိုင္တယ္”၊
Computer program ေတြက Computer ကို လိုုအပ္တယ့္ အစီအစဥ္ေတြနဲ႔ သတင္းအခ်က္အလက္ကို စကၠန္႕နွင့္ အမ်ွပိုု႕ေပးပါတယ္ ၊ program တခုုမွာ ရိုုးရွင္းတယ့္ operations ေတြအတြက္ ၾကီးမားတယ့္ ကိန္းဂဏန္းေတြ ပါ၀င္ပါတယ္ ၊ computer မွာ အသိဥာဏ္မရွိဘူး ၊ သူက ထည့္သြင္းသတ္မွတ္ထားတဲ့ အစီအစဥ္ ေတြကိုု အလြယ္တကူ အေကာင္အထည္ေဖာ္ေပးလိုုက္တာပါ ၊
Computer ကို သံုုးဖို႔အတြက္ programming ကိုု သိရွိနားလည္ဖို႕ မလိုုပါဘူး၊ဒါေပမယ့္ programming ကိုု စေလ့လာရင္ေတာ့ သာမန္ထက္ပိုုပီး လံုု႕လထားဖို႕ေတာ့လိုမယ္ဗ်ာ။
Ref; Brighter Myanmar
No comments:
Post a Comment
zawthwin3@gmail.com