Basic programming concept(компилятор,интерпретатор)

Basic programming concept

Programming တစ္ခုကိုေလ့လာေတာ့္မယ္ဆိုရင္ basic programming concepts အေနၿဖင့္သိသင့္စရာေတြ အလြန္မ်ားၿပားပါတယ္။ သို႕ေသာ္ အနိမ့္ဆံုးအေနၿဖင့္ မိမိေလ့လာမည့္  programming language သည္မည္ကဲ့သို႕ operate ၿပဳလုပ္သည္အား အေၿခခံအက်ဆံုးအေနၿဖင့္သိသင့္ ပါတယ္။ကြန္ပ်ဴတာ တစ္ခုကို အၾကမ္းအားၿဖင့္ ခ်ံဳၿငံဳၾကည့္လွ်င္ hardware နွင့္ software ေပါင္းစပ္ထားတယ္လို႕ ေၿပာဆိုနိဳင္ပါတယ္။ ကြန္ပ်ဴတာတစ္ခုကို set of instruction(ညႊန္ၾကားခ်က္) ေတြေၿပာဆိုတဲ့အရာကို software လို႕ေၿပာဆိုနိဳင္ၿပီး ထိုညႊန္ၾကားခ်က္ instruction ေတြကို ကြန္ပ်ဴတာမွာ စက္ပိုင္းဆိုင္ရာ execute လုပ္တဲ့အရာကို hardware လို႕ေခၚဆိုနိဳင္ပါတယ္။

Computer programming ဆိုတာ ကြန္ပ်ဴတာကို ေစခိုင္းခ်က္ေတြခိုင္းၿပီးေတာ့္ ရလဒ္ေတြၿပသခိုင္းတဲ့ ညႊန္ၾကားခ်က္ေတြကိုေရးသားတဲ့ ( instructions ) ပညာရပ္တစ္ခုၿဖစ္ပါတယ္။ကြန္ပ်ဴတာတစ္ခုရဲ႕ အဓိက အလုပ္လုပ္တဲ့အရာဟာ CPU(Central Processing Unit) ၿဖစ္တာတဲ့အညီ instructions ေတြဟာ ေနာက္ဆံုး CPU ကိုေရာက္ရွိမွာၿဖစ္ပါတယ္။
CPU ဟာ C++ အပါအ၀င္ မည္သည့္ programming language ကိုမွ တိုက္ရိုက္နားလည္မွာမဟုတ္ပါဘူး။CPU တိုက္ရိုက္နားလည္နိဳင္တဲ့ Language ကေတာ့္ instruction set လို႕ေခၚတဲ့ machine code (သို႕) machine language ကိုပဲနားလည္မွာၿဖစ္ပါတယ္။manchine code(instructions set) ေတြဟာ 0 နဲ႕ 1 နွစ္ခုတည္းပါတဲ့ binary digit ေတြနဲ႕သာ ဖြဲ႕စည္းထားတာ ၿဖစ္ပါတယ္။CPU ဟာ set of binary digits ေတြကို တိက်တဲ့ instruction အၿဖစ္သို႕ ေၿပာင္းလဲၿပီး တိက်တဲ့ အလုပ္ေတြကိုလုပ္ေစပါတယ္။ကြဲၿပားၿခားနားတဲ့ CPU ေတြမွာ ပံုမွန္အားၿဖင့္ကြဲၿပားၿခားနားတဲ့ instruction set ေတြရွိတက္ပါတယ္(ဆိုလိုတာက Pentium4 ေပၚမွာ run တဲ့ instruction ေတြဟာ Macintosh PowerPC base computer ေတြေပၚမွာ run မွာမဟုတ္ပါဘူး)။

ကြန္ပ်ဴတာေတြစတင္ထုတ္လုပ္စဥ္ အခါက programmers ေတြဟာ CPU တိုက္ရိုက္နားလည္နိဳင္တဲ့ machine language ကိုေရးသားၾကတဲ့အခါမွာ အလြန္ခက္ခဲစြာနဲ႕ အခ်ိန္ကုန္ခံစြာေရးသားခဲ့ၾကပါတယ္။ ဘာလို႕လဲဆိုေတာ့္ ထို machine language ဟာ တြက္ခ်က္ဖို႕ အလြန္ခက္ခဲပါတယ္ ထိုအခက္အခဲေတြကို အဆင္ေၿပေစရန္အတြက္ assembly language ကို ဦးစြာစတင္ဖန္တီးခဲ့ပါတယ္။ Machine Language ထက္စာရင္ assembly language သည္ လြယ္ကူစြာ ေရးနိဳင္ ဖတ္နိဳင္ ေသာ္လည္း CPU ကတိုက္ရိုက္ နားလည္ေတာ့္မွာ မဟုတ္ပါဘူး။ထို႕သို႕ CPU ကနားလည္ေစရန္ assembler ကိုအသံုးၿပဳၿပီး machine language ကိုေၿပာင္းလဲရပါတယ္။သို႕ေသာ္ assembly language သည္ သာမာန္ user တစ္ေယာက္အေနၿဖင့္ လြယ္ကူစြာ အသံုးၿပဳနိဳင္ရန္ လိုအပ္ခ်က္ မ်ားစြာရွိေနဆဲၿဖစ္သည္။(ထို manchine language နွင့္ assembly language မ်ားအား low-level language မ်ားၿဖစ္ၾကသည္)။

ထိုကဲ့သို႕ေသာ အားနည္းခ်က္မ်ားကို ၿပင္ဆင္ရန္အတြက္ high-level languages ေတြကို ထပ္မံဖန္တီးခဲ့ပါတယ္။ C,C++,Pascal,Java,etc.. တို႕ဟာ high-level languages ေတြၿဖစ္ပါတယ္။ထို high-level language မ်ားၿဖင့္ေရးသားေသာ program မ်ားသည္ execute မလုပ္ခင္ CPU နားလည္ေစရန္ translate ၿပဳလုပ္ရပါတယ္။ထိုသို႕ translate ၿပဳလုပ္ရာတြင္ အဓိကအားၿဖင့္ နည္းလမ္း(၂)ခုမ်ိဳးသာရွိပါတယ္။ Complier ကိုအသံုးၿပဳတဲ့ compiling နည္းနွင့္ Interpreter ကိုအသံုးၿပဳတဲ့ interpreting နည္းတို႕ပင္ ၿဖစ္ပါတယ္။

Compiler(компилятор)
Complier ဆိုတာ High-level language code ေတြကို CPU မွတိုက္ရိုက္နားလည္နိဳင္တဲ့ executable code ေတြရရွိေအာင္  ၿပဳလုပ္တဲ့  program တစ္ခုၿဖစ္ပါတယ္။




Interpreter(интерпретатор)
Interpreter ဆိုတာ code ေတြကို machine language အၿဖစ္သို႕ translate ၿပဳလုပ္ၿပီး ေနာက္ထပ္ instruction ေတြ process မၿပဳလုပ္ခင္ execute ၿပဳလုပ္တဲ့ program တစ္ခုၿဖစ္ပါတယ္။



C++ language ဟာ compile language ၿဖစ္ပါတယ္. ဒါေၾကာင့္ ကၽြန္ေတာ္တို႕ဟာ c++ language ကို အသံုးၿပဳေတာ့္မယ္ဆိုရင္ compiler တစ္ခုခုကို အသံုးၿပဳရဖို႕လိုအပ္မွာၿဖစ္ပါတယ္။
(Top 10 Best C/C++ Compilers And IDEs )
(ယခုဆက္လက္ေဖာ္ျပမည့္ tutorial မ်ားတြင္ vs2008 compiler အားအသံုးျပဳမည္ျဖစ္ပါသည္)

Written by zmk@miet51

1 comment: