ေဇာ္ဂ်ီ ႏွင့္ ယူနီကုတ္ ခ်ိန္းရန္

Tuesday, December 23, 2014

Programming ဆိုတာဘာလဲ?

Programming ဆိုတာဘာလဲ?
Programming ဆိုတာ ဘာလဲ မေျပာခင္ programming ရဲ႕ သမိုုင္းကို အရင္ေျပာရေအာင္ဗ်ာ၊၊ computer အတြက္ အလုပ္လုပ္မယ့္ ပထမဆံုုး algorathm နဲ႕ တည္ေဆာက္ထားတယ့္ programming ကို စတင္ ေမြးဖြားအသက္သြင္း ခဲ့သူ ကေတာ့ England ႏိုင္ငံ London ၿမိဳ႕က “Ada Lovelase” ပဲျဖစ္ပါတယ္ ၊ သူမက programming ရဲ႕ မိခင္ႀကီးေပါ့၊ သူမကို 1815,December,10 မွာေမြးခဲ႔တာပါ ၊ 1852,November,27 သူမအသက္ ၃၆ နွစ္မွာ လူသားေတြအတြက္ အလြန္အသံုုး၀င္တဲ့ programming ဆိုုတယ့္ မ်ိဳးဆက္သစ္ကိုု ထားခဲ႕ၿပီး ေလာကႀကီးမွ အနားယူသြားပါတယ္ ။ ေရွးပေ၀သဏီေခတ္တုုန္းကေတာ့ arithmetic တိုု႕ algebra တိုု႕ geometry တိုု႕လိုု စိတ္ကူးျခင္းေတြမရွိပါဘူး ၊ အဲဒီတုုန္းက လူသားေတြရဲ႕ သမိုုင္းမွာ တြက္ခ်က္ေပးတဲ့စက္ပစၥည္းနဲ႕ ပတ္သက္တဲ့့ ပစၥည္းဆိုုလိုု႕ BC2500 ခန္႕က Sumerian မွာ တီထြင္ခဲ့တဲ့“ေပသီးတြက္ခံုု” ပဲ ရွိခဲ႔တာပါ ၊ ၊ BC100 ေလာက္က ပထမဆံုုး “mechanical calculator “ လိုု႕ ေခၚခဲ႕တာေပါ့ ၊ သူရဲ႕ အမ်ိဳးမ်ိဳးေသာ အရြယ္အစားနဲ႕ gears ေတြက calculations လုပ္ဖိုု႕အတြက္ေဆာင္ရြက္ေပးပါတယ္ ၊ အဲ႕ဒါကလည္း lunar-to-solar calendars မွာသံုုးတဲ့ me toni 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

Related Posts Plugin for WordPress, Blogger...