Editor
သူကေတာ့ program ေရးတဲ့အခါမွာ program code ေတြကို ရုိက္ဖုိ.အတြက္သံုးတဲ့
Software တစ္ခုပါပဲ။ Editor ေကာင္းတစ္ခုဟာ syntax highlighting ေတြ error
ၿဖစ္ႏုိင္တဲ့ေနရာေတြ
ၿပီးေတာ့ code completion အစရိွတာေတြကို လုပ္ေပးႏုိင္ပါတယ္။ Editor ေကာင္း
မေကာင္းအေပၚမူတည္ၿပီး program ေရးရတာဟာ error
သက္သက္သာသာနဲ.ၿမန္ၿမန္ဆန္ဆန္ၿပီးေစႏုိင္ပါတယ္
Microsoft Language ေတြၿဖစ္တဲ့ C# VB.NET အစရိွတဲ့ programming language
ေတြအတြက္ကေတာ့ built in Microsoft Visual Studio ကပါလာၿပီးသားၿဖစ္ပါတယ္။
တစ္ၿခား Language ေတြမွာလဲ
သူတုိ.နဲ.ဆုိင္ရာ editor ေတြရိွပါတယ္။ ေပါ့ေပါ့ပါးပါးေရးမယ္ဆုိရင္ေတာ့
notepad++ ကိုသံုးလုိ.ရပါတယ္ ။ Java အတြက္ဆုိရင္ေတာ့ JCreator, Netbean,
Eclipse အစရိွတဲ့ IDE ေတြမွာ Editor ေကာင္းေတြပါလာပါတယ္။ဒါေပမဲ့ Python လို
indentation ေပၚမူတည္ၿပီး meaning ကြဲႏုိင္တဲ့ programming language
ေတြအတြက္က်ေတာ့ သူနဲ.သင့္ေတာ္တဲ့ Python IDLE ကိုသံုးတာပိုသင့္ေတာ္ပါတယ္။
Compiler
သူကေတာ့ programmer ေရးလုိက္တဲ့ source code ကို machine နားလည္တဲ့ object
code, byte code, exe အစရိွတာေတြကုိေၿပာင္းေပးတဲ့ေကာင္ပါ။ သူဟာ programmer
ေရးလိုက္တဲ့ source code
ကုိယူၿပီးေတာ့ object code အစရိွတာေတြထုတ္ယံုတင္မကပဲနဲ. program ကုိပုိၿမန္ေအာင္ optimization ေတြကိုလဲလုပ္ေပးေလ့ရိွပါတယ္။
Libraries
Program ေတြဟာ ၾကီးလာတာနဲ.အမွ် သူတုိ.ရဲ. code ေတြဟာ မ်ားလာပါတယ္။ Code
ေတြကို functionality အလိုက္တူရာတူရာစုၿပီးေတာ့ unit
တစ္ခုအေနနဲ.သိမ္းတတ္ၾကပါတယ္။
အဲ့ဒီေကာင္ေတြကို libraries လို.ေခၚပါတယ္။ Java ,C# မွာဆုိရင္ေတာ့ package
လုိ.သံုးပါတယ္။ Ruby, Python မွာေတာ့ module လို.သံုးပါတယ္ ။ C,C++, PHP
မွာေတာ့ Library လို.ေခၚၾကပါတယ္။
ဥပမာ networking နဲ.ဆုိတဲ့ code ေတြကို သက္သက္၊ Graphical User Interface
နဲ.ဆုိင္တာေတြကို သက္သက္ module, package သို.မဟုတ္ Library
တစ္ခုစီမွာသိမ္းၾကပါတယ္။
Linker
Program တစ္ခုဟာ source file တစ္ခုထဲပါ၀င္တာမဟုတ္ပဲနဲ. module ေတြ package
ေတြ Library ေတြကုိပါ ယူသံုးထားမယ္၊ ဒါမွမဟုတ္ multiple source file
သုိ.မဟုတ္ object file ေတြအၿဖစ္တည္ရိွေနမယ္ဆုိရင္ အဲ့ဒီ program
အလုပ္လုပ္ႏုိင္ဖုိ.အတြက္ ပါ၀င္တဲ့ module၊ library, package
ေတြတစ္ခုခ်င္းစီကုိ ခ်ိတ္ဆက္ေပးရမွာပါ။ ဥပမာ ကြ်န္ေတာ္က Hello.java မွာ
ေနာက္ package တစ္ခု
က class တစ္ခု ဥပမာ( Stack.java) ကိုေခၚသံုးထားပါတယ္ဆုိပါဆုိ. ဒါဆုိရင္
ကြ်န္ေတာ့္ program အလုပ္လုပ္ႏုိင္ဖုိ.အတြက္ Hello.java
ဖုိင္တစ္ခုတည္းနဲ.မလုံေလာက္ပဲနဲ. Stack.java ကုိပါ Link
လုပ္ၿပီးအသံုးၿပဳရမွာၿဖစ္ပါတယ္။ အဲဒီ လို external reference ေတြကို
resolve လုပ္တာကို linking လို.ေခၚပါတယ္။ Linking ကုိ လုပ္ေပးတဲ့ program
ကုိက်ေတာ့ linker ေပါ့ဗ်ာ။ Linking မွာ ႏွစ္မ်ိဳး၇ိွ႔ပါတယ္
Static Linking နဲ. Dynamic Linking ေပ့ါ။ Static Linking ဆုိတာ program
ကိုမ run ခင္မွာ object code ေတြကို link လုပ္တာပါ။ C, C++ လို language
မ်ိဳးမွာသံုးပါတယ္။ မေကာင္းတဲ့အခ်က္ကေတာ့ သူဟာ memory ေပၚေခၚတင္ရတဲ့ code
size ကုိၾကီးသြားေစပါတယ္။ ေနာက္တစ္ခုကေတာ့ modern programming language
ေတြၿဖစ္တဲ့ Java,C# တုိ.မွာသံုးတာမ်ိဳးပါ သူကေတာ့ libraries ေတြကို
program run ေနတဲ့အခ်ိန္ (run time)ေရာက္ေတာ့မွ link လုပ္ပါတယ္။ ဒါကို
Dynamic Linking လို.ေခၚပါတယ္။ Dynamic Linking ရဲ.အားသာခ်က္ကေတာ့ သူဟာ
object code ေတြအားလံုးကိုစံုၿပံဳၿပီး
memory ေပၚမွာတင္ထားစရာမလုိတာပါပဲ။
Loader
သူကေတာ့ Object code,exe code အစရိွတာေတြကို hard disk ေပၚကေနဖတ္ၿပိးေတာ့
operation system ရဲ. memory အေပၚမွာစနစ္တက်ေနရာခ်ထားေပးတဲ့ program
ပါပဲ။ဥပမာ ခု run မဲ့ program
အတြက္ code segment က address ဘယ္ေလာက္မွာေနရာယူမယ္ data segment ကဘယ္ေလာက္ ေနရာယူမယ္ အစရိွတဲ့တာ၀န္ေတြကို loader ကတာ၀န္ယူေပးရပါတယ္။
Debugger
Program တစ္ခုဟာေရးၿပီးရံုနဲ.မၿပီးေသးပါဘူး ၊စင္းလံုးေခ်ာ
မမွန္ႏုိင္ေသးပါဘူး သူ.မွာ error ေတြ bug ေတြပါလာႏုိင္ပါတယ္။
ၿမန္မာလိုဆုိရင္ေတာ့ error ေရာ bug ေရာကုိ
အမွားလုိ.ၿပန္ရမွာပါ။တကယ္ေတာ့အဲ့ဒီႏွစ္ခုဟာ
မတူပါဘူး ၊ error ဆုိတာကို ထင္သာၿမင္သာ၇ိွတဲ့အမွားမ်ိဳးလို.ေၿပာရမွာ
ၿဖစ္ပါတယ္ ဥပမာ C,C++,Java,C# မွာ statement တစ္ေၾကာင္းဆံုးရင္ semicolon
ထဲ့ရပါတယ္ မပါရင္ syntax error တက္ပါလိမ့္မယ္
bug ဆုိတာကေတာ့ အလြယ္တကူမၿမင္ႏုိင္ပဲနဲ. ခုိေအာင္းေနတဲ့ error မ်ိဳးပါ ဥပမာ
logic error မ်ိဳးပါ ။ သူတုိ.ကိုရွာဖို.အတြက္ကေတာ့ program statement
ေတြဟာ ဘယ္ကေနဘယ္လို run သြားတယ္ variable
ေတြရဲ.တန္ဖုိးဘယ္လိုေၿပာင္းသြားတယ္ဆုိတာ ၾကည့္ဖုိ.လိုအပ္ပါတယ္ ။
အဲလိုေနရာမ်ိဳးမွာ ကူညီႏုိင္တာ debugger ပါ။ Debugger က အဓိ က
အလုပ္သံုးခုလုပ္ေပးပါတယ္
Tracing = program ဟာ ဘယ္ line ကေန ဘယ္ line ကုိ run သြားတယ္ဆုိတာကို ၾကည့္လုိ.ရေအာင္ကူညီေပးပါတယ္။
Break point = program ရဲ. ဘယ္ line အထိ ပဲ run မယ္ၿပီးရင္ ခန ရပ္မယ္ဆုိၿပီးေတာ့ လုပ္လို.ရပါတယ္။
Modifying and Examining Data= program တစ္ေလ်ာက္လံုးမွာ သံုးလာတဲ့ data
ေတြ variable ေတြရဲ.တန္ဖိုးေတြကို ၾကည့္ႏုိင္ၿပင္ႏုိင္ေအာင္ေပးထားပါတယ္။
Profiler
Program တစ္ခုဟာ အလုပ္လုပ္ေနရံုနဲ.မၿပီးပါဘူး သင့္ေတာ္တဲ့ computing time
ကုိပဲသံုးရပါမယ္။ အရမ္းၾကီးေႏွးေကြးေနတဲ့ program
ကိုဘယ္သူကမွလုိခ်င္မွာမဟုတ္ပါဘူး။
program တစ္ခုရဲ. ဘယ္အစိတ္အပိုင္းမွာ အခ်ိန္ဘယ္ေလာက္ကုန္တယ္ memory
ဘယ္ေလာက္သံုးလဲအစရိွတာေတြကို profiler ကုိသံုးၿပိးေတာ့ ၾကည့္လို.ရပါတယ္။
ၿပီးေတာ့ program ကုိသင့္ေတာ္ေအာင္
ၿပန္ေရးေပါ့။
Interpreter
သူကေတာ့ Interpret လုပ္တဲ့ language ေတြ JavaScript, PHP, Python,Ruby
အစရိွတာေတြမွာသံုးပါတယ္။ Object code ကိုမထုတ္ေတာ့ပဲနဲ. source code ကေန
run time မွာ ၾကားခံ ပံုစံ
တစ္ခု တည္ေဆာက္ၿပီး run ပါတယ္ ဒါေၾကာင့္ interpreted language ေတြဟာ
compiled language ေတြထက္စာရင္ေႏွးၾကပါတယ္။ ဘာေကာင္းလဲဆုိေတာ့ flexible
ၿဖစ္တာေတြရိွပါတယ္
ဥပမာ running time မွာ dynamic code ကို execute လုပ္လုိ.ရတာမ်ိဳး variable
ေတြကို run time မွာ type ေၿပာင္းသံုးတာမ်ိဳး အစရိွတာေတြၿဖစပါတယ္။
Tuesday, December 25, 2012
Programming Environment ( MHU မွ ေဖာ္ၿပပါသည္)
Posted by ဘၾကီးမႈန္
at
8:12 PM
| 0
comments
Subscribe to:
Post Comments (Atom)




0 comments:
Post a Comment