Labels

Sunday, July 11, 2010

Program ဆုိတာ ? Compilation ဆုိတာ ?Interpretation ဆုိတာ? ေလ့လာသင့္ပါတယ္


Program ဆုိတာ ?


Program ဆုိသည္မွာ လုပ္ေဆာင္ခ်က္တစ္ခုကုိ ကြန္ပ်ဴတာအား မည္သုိ႔မည္ပုံ လုပ္ရမည္ကုိ

ညႊန္ၾကားမႈေပးေသာ လမ္းညႊန္ခ်က္မ်ားကုိ အစီအစဥ္တက် စုေ၀းထားေသာအရာျဖစ္သည္။ ကြန္ပ်ဴတာ

ေတြက ကြၽန္ေတာ္တုိ႔ လူသားေတြ အခ်င္းခ်င္းအျပန္အလွန္ ေျပာဆုိၾကတဲ့ ဘာသာစကားမ်ဴိးကုိ

နားမလည္ပါဘူး။ တကယ္ေတာ့ ကြန္ပ်ဴတာက နားလည္တဲ့ တစ္ခုတည္းေသာ ဘာသာစကားကေတာ့

machine code (0s,1s) ေတြပဲ ျဖစ္ပါတယ္္။ machine code ေတြဟာ ကြၽန္ေတာ္တုိ႔အတြက္ နားလည္ဖုိ႔

ေရာ ေရးသားဖုိ႔ပါ လြန္စြာခက္ခဲပါတယ္။ ဒါေၾကာင့္ program ေတြကုိ ေရးသားတဲ့အခါ နားလည္ရ

လြယ္ကူတဲ့ high level programming language ကုိ မ်ားေသာအားျဖင့္ အသုံးျပဳၾကပါတယ္။ ဥပမာ ။

C,C++, Java, VB etc… အ့ဲဒါေတြကုိ source program ေတြလုိ႔ ေခၚပါတယ္။ Program မ်ားကုိ Raw

textual form (အႀကမ္းပုံစံ)အဆင့္တြင္ execute မလုပ္နုိင္ပါ။ ၄င္းတုိ႔ကုိ computer က နားမလည္

ေသာေၾကာင့္ အျခားေသာ program တစ္ခုက processလုပ္ေပးရပါတယ္။ သုိ႔မွသာ အၾကမ္းပုံစံထဲရွိ

Statement မ်ားကုိ နားလည္နုိင္မွာ ျဖစ္ပါတယ္။ Program ေတြကုိ နည္းလမ္းနွစ္မ်ဴိးနဲ႔ execute
(တြက္ခ်က္)
နိုင္ပါတယ္။ အဲ့ဒါေတြကေေတာ့ Compilation နဲ႔ Interpretation
တုိ့ျဖစ္ပါတယ္။


Compilation ဆုိတာ ?


Program တစ္ခုကုိcompile လုပ္တယ္ဆုိတာProgram ကုိcomputer ရဲ႔processorကနားလည္တဲ့

code အျဖစ္ကုိ ေျပာင္းလဲေပးတာ ပဲျဖစ္ပါတယ္။အဲသည္လုိcompile လုပ္နုိင္ရန္အတြက္compiler

ဆုိတဲ့ program တစ္ခုလုိအပ္ပါတယ္။ ၄င္းကဦးစြာprogram ထဲရွိsyntactic errors
(စာလုံးအသုိ

အထားအမွားမ်ား) ကုိစစ္ေဆးေပးပါတယ္။ စစ္ေဆးျပီး အမွားကင္းစင္ေသာ programကုိ object code

အျဖစ္သုိ႔ ေျပာင္းလဲေပးပါတယ္။ တစ္နည္းအားျဖင့္compile လုပ္တယ္ဆုိတာsource program

ေတြကုိ input အျဖစ္ရယူျပီး object code ကုိ output အျဖစ္ထုတ္ေပးတာပါပဲ။ ကြန္ပ်ဴတာရဲ႔ procrssor

က source program ကုိexecute လုပ္နုိင္ျခင္းမရွိပါဘူး။object code ကုိသာexecute

လုပ္နုိင္ပါတယ္။ C & C++ language ေတြက ဒီ compilation process ကုိသုံးပါတယ္။


Interpretation ဆုိတာ?


Interpreter ကcompiler ကဲ့သုိ႔ပင္processor ကexecute လုပ္နုိင္ဖုိ့အတြက္source program

ကုိobject code အျဖစ္ ေျပာင္းေပးပါတယ္။ Interpreter ကsource program ေတြကုိ စစ္ေဆးျခင္း ၊

machine နားလည္ေသာoperation အျဖစ္သုိ႔ ေျပာင္းေပးျခင္း ၊error ကင္းစင္တဲ့အခါexecute

လုပ္ေပးျခင္းတုိ႔ကုိ ေဆာင္ရြက္ပါတယ္။ Interpreter program ကုိသုံးတဲ့programming language

ေတြမွာ PERL လုိ႔ေခၚတဲ့ PatternExetraction and Reporting Language နွင့္ Basic တုိ့ပါ၀င္ပါတယ္။

PERLတစ္ခုကုိinterpret လုပ္တဲ့အခါinterpreterကsyntactic errors ေတြကုိဦးစြာ စစ္ေပးပါတယ္။

error တစ္ခုမွမရွိေတာ့မွ object code ကုိမထုတ္ဘဲprogram ကုိ တုိက္ရုိက္္execute လုပ္ေပးပါတယ္။

Compiler နဲ႔ မတူတဲ့အခ်က္ကေတာ့interpreter ကၾကားခံobject code ကုိ မထုတ္ဘဲ တုိက္ရုိက္

executeလုပ္ေပးျခင္းပဲျဖစ္ပါတယ္။Execution process ကprogram ထဲမွာရွိတဲ့statement ေတြ

အားလုံးကုိ မျပီးမခ်င္း လုပ္ေဆာင္ပါတယ္။statement အားလုံးျပီးသြား ျပီဆုိရင္ေတာ့ program ကုိ

terminate အဆုံးသတ္ တယ္ လုိ႔ေခၚပါတယ္။ program မွာ input & output ဆုိျပီးနွစ္မ်ဴိး ရွိပါတယ္။

input ဆုိတာ အသုံးျပဳသူuser ထံက ရရွိတဲ့အခ်က္ အလက္ျဖစ္ပါတယ္။ ရရွိတဲ့ အခ်က္အလက္ေတြကုိ

computer ကexecuteလုပ္ျပီးထုတ္ေပးတဲ့အရာကုိoutput လုိ႔ ေခၚပါတယ္။ Statement တစ္ခုရဲ႔

outputဟာ တစ္ျခားstatementတစ္ခုရဲ႔ input လဲ ျဖစ္နိုင္ပါတယ္။


Introduction to Java ( ဂ်ာဗားနွင့္ေတြ႔ဆုံျခင္း)

Java programming language ကSun Microsystems က၁၉၉၀ ျပည့္နွစ္ေလာက္က မိတ္ဆက္

ေပးျပီး ၊ ယခုအခ်ိန္မွာေတာ့အလြန္ကုိအသုံးမ်ားတဲ့ language တစ္ခုျဖစ္ေနပါျပီ။Java ရဲ႔

သမုိင္းေၾကာင္းကုိ ျပည့္စုံစြာေလ့လာလုိ သည္ဆုိပါက ဤေနရာ တြင္္ၾကြက္ကုိနွိပ္ပါ။ Java program ၏

တည္ေဆာက္ပုံဟာ object နွင့္ class အေပၚတြင္ မူတည္ေနေသာေၾကာင့္Java သည္ object oriented

programming language တစ္ခုျဖစ္ပါတယ္။ တစ္ျခား language ေတြထက္java ရဲ႔Aားသာခ်က္

ကေတာ့မည္သည့္ OS မွာ မဆုိ execute လုပ္နုိင္ျခင္း ပင္ျဖစ္ပါတယ္။


Compiling Java program

Java ကုိcompile လုပ္ရာတြင္အျခားေသာlanguage မ်ားနွင့္ ကြဲျပားျခားနားပါတယ္။objectcode

ထုတ္မည့္အစား java သည္ byte code ဟုေခၚေသာ ၾကားခံ code တစ္ခုကုိ ထုတ္ေပး ပါတယ္။ ၄င္း

byte code ကုိprocessor က နားလည္မည္ မဟုတ္ပါ။Bytecode မ်ားကုိmachine က

နားလည္ေစနုိင္ရန္အတြက္JVM (java virtual machine) ေခၚေသာ softwareတစ္ခုလုိအပ္ပါသည္။

Java byte code မ်ားကJVM software ကexecute လုပ္ျပီးoutput
အျဖစ္machinecode

နားလည္ေသာ code အျဖစ္ေျပာင္းေပးပါတယ္။JVM ရွိမည္ဆုိပါက မည္သည့္OS တြင္ မဆုိjavaကုိ

execute လုပ္နုိင္ပါသည္။ ထုိ႔ေၾကာင့္ java သည္ (Write once,run any where) တစ္ၾကိမ္သာေရးပါ။

ၾကဳိက္သည့္ OS ေပၚတြင္ run နုိင္သည္ဟူေသာ ဂုဏ္ပုဒ္ကုိရရွိခဲ့ပါသည္။ နည္းပညာအားျဖင့္ ေျပာရမည္

ဆုိလွ်င္ byte code ထက္ object code က ပုိ ၍လွ်င္ျမန္စြာexecuteလုပ္နုိင္ပါသည္ ။ ထုိ႔ေၾကာင့္ byte

code သုံးျခင္းသည္translation layer မ်ားကုိ လုိအပ္ေစပါသည္။ ဒါေပမယ့္ ယခုေခတ္မွာေတာ့

hardware မ်ား၏ လုပ္ေဆာင္မႈမ်ားက အျမန္နႈန္း ကြာျခားခ်က္မ်ားကုိမမႈေတာ့ပါဘူး။


Java program တစ္ခုကုိစတင္ျခင္း

ပထမဦးဆုံးအေနနဲ႔ကၽြန္ေတာ္တုိ့ simple progarm တစ္ခု ေလာက္နဲ႔ စတင္ေရးၾကည့္ရေအာင္။

ဒီ code line ေေတြကုိ notepad မွာရုိက္သြင္းရမွာေနာ္ ။note pad မွမဟုတ္ပါဘူး windows

နဲ႔အတူပါလာတဲ့ wordpad မွာလည္းေရးလုိ႔ရပါတယ္။ Microsoft office မွာပါတဲ့ Microsoft word

ဒါမွမဟုတ္ word perfect စတဲ့ word processing software ေတြမွာ လည္းေရးသားလုိ႔ ရပါတယ္။

1. class Firststep

2. {

3. public static void main (String args[])

4. {

5. System.out.println("Hello");

6. System.out.print("Programmer");

7. }

8. }

ကဲ program ကေတာ့ေရးျပီးသြားျပီ။save လုပ္ၾကရေအာင္။ဒီလုိ save လုပ္တဲ့အခါ သာမန္

program application ေတြကုိ save လုပ္သလုိမ်ဴိး မိမိနွစ္သက္ရာေနရာမွာ save လုပ္လုိ႔မရပါဘူး။

ကုိယ္ JDK ကုိ install လုပ္ထားတဲ့
path လမ္းေၾကာင္းအတုိင္းသြားျပီး ၄င္း JDK
folder ထဲမွ bin

ဆုိေသာ folder ထဲမွာ .javaဆုိေသာ extension နဲ႔ save လုပ္ရမွာ ျဖစ္ပါတယ္။program ကုိ ဘယ္လုိ

runလုပ္ရမယ္ဆုိတာ မေျပာခင္ အဲဒီ program က ဘယ္လုိအလုပ္လုပ္ေပးမွာလဲ? ဆုိတာကုိ

အရင္ရွင္းျပပါ့မယ္။ အလုပ္လုပ္ပုံကုိ line number ေတြနဲ႔ တစ္ဆင့္ခ်င္း ရွင္းျပထားေပးတယ္။

ဆက္ေလ့လာၾကည့္ပါ။ line number 1 က class တစ္ခုကုိတည္ေဆာက္တဲ့အဆင့္ပဲျဖစ္ပါတယ္။ class

name ကေတာ့ Firststep ပဲ ျဖစ္ပါတယ္။ Line no 1 ကေတာ့class တစ္ခုတည္ေဆာက္တဲ့

အဆင့္ပဲျဖစ္ပါတယ္။ class ရဲ့name ကေတာ့
Firststep ပဲ ျဖစ္ပါတယ္။
Line no 2 ကေတာ့ class

ရဲ့အဖြင့္ပဲ ျဖစ္ပါတယ္။ Line no 3 ကေတာ့ main method ကုိေၾကညာတဲ့အပုိင္းပဲ
ျဖစ္ပါတယ္။

ဒီအပုိင္းကေတာ့ java program မ်ားအတြက္ မပါမျဖစ္တဲ့အပုိင္းပဲ ျဖစ္ပါတယ္။ Line no 4 ကေတာ့

main method ရဲ့အဖြင့္ ပဲျဖစ္ပါတယ္။Line no 5 ကေတာ့ monitor မွာ Hello ဆုိတဲ့ စာသားကုိ

ေပၚလာေစရန္ ေရးသားထားတဲ့ statement ပဲျဖစ္ပါတယ္။ Line no 6 ကေတာ့ monitor
မွာ

Programmer ဆုိတဲ့ စာသားကုိေပၚလာေစခ်င္တဲ့အတြက္ ေရးသားထားတဲ့ statement ပဲ

ျဖစ္ပါတယ္။Line no 7 ကေတာ့ main method ရဲ့ အပိတ္ပဲ ျဖစ္ပါတယ္။ Line no 8 ကေတာ့ class ရဲ့

အပိတ္ပဲျဖစ္ပါတယ္။ အဲ့ဒီမွာသတိျပဳမိလားေတာ့မသိဘူး ။ Line no 5 & 6 မွာ အနည္းငယ္ကြဲျပား

ေနတာကုိ ။ System.out.println & System.out.print ဆုိတာေလးပါ။ System.out.print ဆုိရင္ေတာ့

output ကုိဒီအတုိင္းျပေပးမွာပဲျဖစ္ပါတယ္။ System.out.println ဆုိရင္ေတာ့ output ကုိ ျပျပီးတာနဲ႔

အလုိေလ်ာက္ cursor ကုိေနာက္ တစ္လုိင္းသုိ႔ဆင္းေပးမွာျဖစ္ပါတယ္။ အဲ program ကုိေတာ့ရွင္းျပီးသြားျပီ ။အခုဘယ္လုိ run လုပ္ရ
မယ္ဆုိတာကုိေျပာပါမယ္။မိမိရဲ့ စက္မွာ SDK မရွိေသးရင္ J2SESDK(software
development kit)ကို download ယူပါ။ JVM က J2SEdevelopmentkit ရဲ့အစိတ္အပိုင္းအေနနဲ့
ပါျပီးသားပါပဲ။

J2SE package ထဲမွာJVM ကို JRE(Java
Runtime environment) လို့လည္း ေခၚပါတယ္။
download ယူထားတဲ့SDK
ကို သင့္ရဲ့
စက္ထဲမွာinstall လုပ္ပါ။အခုေရးထားတဲ ့program ကိုFirststep.java ဆိုတဲ့name
နဲ ့bin ဆုိတဲ့ folder ေအာက္မွာsave
ပါ။ အ့ဲsave
လုပ္ျပီးျပီဆုိရင္
ကၽြန္ေတာ္တုိ႔ ဒီprogram ေလးကုိrun
ၾကရေအာင္။ ကဲ သင့္ရဲ့ windows start
menu ကေန cmd(command prompt)ကုိ အရင္ဆုံး ဖြင့္လုိက္ပါ။

၄င္းမွတဆင့္ သင္ save လုပ္ထားတဲ့program file ရွိရာpath လမ္းေၾကာင္းအတုိ္င္း ေရာက္ေအာင္

သြားပါ။ ျပီးရင္ေတာ့ သင့္ရဲ့ program ကုိ compile လုပ္ရန္အတြက္ ေအာက္ပါ command မ်ားအတုိင္း

အဆင့္ဆင့္လုပ္ေဆာင္ပါ။ javac Firststep.java ဒါဆုိရင္သင့္ရဲ့ program ကုိ java compiler က compile လုပ္ေပးမွာျဖစ္ပါတယ္။ error တစ္စုံတစ္ခု ရွိခဲ့မယ္ဆုိရင္ေတာ့
သင့္ကုိ ဘယ္ ေနရာမွာမွားယြင္းေနေၾကာင္းကုိ compiler ကေျပာပါလိမ့္မယ္။
error ကင္းစင္ျပီဆုိရင္ေတာ့ ဘာမွေျပာမွာ
မဟုတ္ပါဘူး။ ဒါဆုိရင္ ဒီprogram ကုိrun
ဖုိ႔ရန္အတြက္ ေအာက္ပါ
command ကုိဆက္လက္ ရုိက္သြင္းပါ။ java Firststep ဒါဆုိရင္ေအာက္ပါ စာသားကုိ output အျဖစ္သင့္ျမင္ရမွာျဖစ္ပါတယ္။ (သတိျပဳရန္မွာ)-java compiler
ကုိေခၚယူတဲ့အခ်ိန္မွာပဲ .java
ဆုိတဲ့extension ပါ၀င္ရမွာျဖစ္ပါတယ္။ compile
process မွာ error ကင္းစင္သြား ျပီဆုိတာနဲ႔ compiler
ကသင့္ကုိ .class ဆုိတဲ့ extension နဲ႔ class file တစ္ခုကုိထုတ္ေပးမွာျဖစ္ပါတယ္။၄င္းကုိ byte code or class file လုိ႔ေခၚၾကပါတယ္။ java

program ကုိ run လုပ္တဲ့အခ်ိန္မွာေတာ့JVM က၄င္းbyte code ကုိ object code အျဖစ္ေျပာင္းလဲျပီး

execute လုပ္ေပးမွာျဖစ္ပါတယ္။ဒီလုိ run တဲ့အခ်ိန္မွာေတာ့ "." နဲ႔သူ႔ေနာက္က မည္သည့္ extension

ကုိမွ် ထည့္ေပးဖုိ႔မလုိပါဘူး ။ဒါကုိေတာ့ အထူး
သတိျပဳမွတ္သား ေစခ်င္ပါတယ္။java
programming

language ကcase sensitive ျဖစ္ပါတယ္။ ဒါေၾကာင့္ စာလုံးအၾကီးအေသးကအစမွားယြင္းလုိ႔

မရပါဘူး။ Uပမာ ။System.out.print ဆုိတာကုိsystem.out.print လုိ႔ေရးလုိ႔မရပါဘူး။ ဒါဆုိerror

ျဖစ္ပါလိမ့္မယ္။ ဒါေလးေတြက အမႈမဲ့အမွတ္မဲ့ မွားယြင္းတတ္တာမုိ႔သတိျပဳေစခ်င္ပါတယ္။


ေမာင္ေစတနာ မွ ရွာေဖြကူးယူေဖၚျပပါသည္ ။ www.mgsaytanar.blogspot.com

(ရိုးသားစြာ၀န္ခံခ်က္)
ဒီနည္းပညာစာေတြကို ခ်စ္ကို ေရးသားခ်င္း မဟုတ္ပါ

ခ်စ္ကို၏ အတန္းပညာ (2)တန္းႏွင့္ဤကဲ့သို႔မေရးႏိုင္ပါ ခင္ဗ်ာ

အဂၤလိပ္စာမတတ္တဲ့အတြက္ ကြန္ပ်ဴတာႏွင့္ပက္သက္သည့္

နည္းပညာမ်ားကို ျမန္မာဘာသာျပန္ဆိုထားသည့္ ဆိုက္မ်ားတြင္

၀င္ေရာက္ဖတ္ရႈ့ျပီး ေရးသားထားတဲ့အတိုင္းျပန္လည္စမ္းသပ္

ႀကည့္ပါတယ္ အားလံုးအဆင္ေျပပါတယ္ ခ်စ္ကို အဆင္ေျပသလို

အားလံုးကိုလဲ အဆင္ေျပေစျခင္ပါတယ္ ဆိုင္တြင္ ေခတၱခဏလာျပီး

ေလ့လာတဲ့ သူငယ္ခ်င္းမိတ္ေဆြေတြကို အဆင္သင့္နည္းပညာရေစခ်င္တဲ့

ေစတနာနဲ႔ပါ နည္းပညာေတြတကယ္ေလ့လာျခင္တယ္ဆိုရင္ ေအာက္မွာ

တင္ျပထားတဲ့ လင့္နာမည္ေလးေတြႏွိပ္ျပီး၀င္ေလ့လာလို႔ရပါတယ္

ကြန္ပ်ဴတာ ႏွင့္ ေဆာ့၀ဲလ္ ပညာကၽြမ္းက်င္သည့္ အကို အမ

ညီ..ညီမ..မ်ားမွေရးသားထားသည္ကို ခ်စ္ကိုေလ့လာရင္း copy ကူး၍

ျပန္လည္ေဖၚျပေပးျခင္းျဖစ္ပါသည္


ဒီမွာ၀င္ျပီးေလ့လာႀကပါ ခင္ဗ်ာ

http://www.komyatmm7.co.cc/

http://www.mgkyawswarnyein.net/

www.nyinaymin.com

http://kozaw357.multiply.com/

ထာ၀ရသူငယ္ခ်င္းမ်ားႏွင့္….ထာ၀ရသူငယ္ခ်င္းမွတာ၀န္ရွိသူမ်ားအားလံုးကို

ထာ၀ရေလးစားလွ်က္……..ခ်စ္ကို…

...........................................