History and Type of Programming Introduction Part 1
Author: Thet Oo Zin
Email: thetoozin@gmail.com
History and Type of Programming
This guild is only for Introduction.
1970 မတိုင်ခင်က PC (Perseonal Computer) မပေါ်သေးပါ။ Mainframe ခေါ် Computer အကြီးများသာရှိပြီး size မှာ အိမ်တစ်အိမ်၊ အိမ်ခန်းတစ်ခန်းစာမျှ ကြီး မားပါသည်။ Computer တွင် Hardware and Software ဟု နှစ်မျိုးရှိပါသည်။ Hardware သည် လူ၏ကိုယ်နှင့်တူပြီး လှုပ်ရှားမှုမှန်သမျှကို ပြုလုပ်ပါသည်။ Software သည် လူ၏ဦးနှောက်နှင့်တူပြီး Hardware(ကိုယ်)ကို လှုပ်ရှားရန် ခိုင်းစေပါ သည်။ Hardware သာရှိပြီး Software မရှိပါက သတိမေ့နေသူကဲ့သို့ဖြစ်နေပါမည်။ Software သာရှိပြီး Hardware မရှိပါက လေဖြတ်သူကဲ့သို့ဖြစ်နေပါမည်။ နှစ်မျိူးစလုံး ရှိမှသာ အလုပ်လုပ်နိုင်ပါမည်။ အလွယ်အားဖြင့်ဆိုသော် လက်ဖြင့် ကိုင်တွယ်စမ်းသပ် နိုင်သမျှသည် Hardware ဖြစ်ပြီး မကိုင်တွယ်မစမ်းသပ်နိုင် သို့သော် အသုံးပြုနိုင်သမျှ သည် Software ဖြစ်သည်။
Hardware သည်တဖြေးဖြေးတိုးတက်လာပြီး သေးငယ်လာပါသည်။ Mainframe တစ်ခုတွင် Operating Software တစ်ခုရှိပါသည်။ Software ကို နှစ်မျိူးခွဲနိုင်ပါသည်။
Software has
-
Operating Software
-
Application Software
Operating Software သည် လူတစ်ယောက် လှုပ်ရှားသွားလာမှုကို ထိန်းချုပ်သလို အလုပ်လုပ်ပါသည်။ Application Software သည် Burmese, English စကားများကို ပြောနိုင်သလို အလုပ်လုပ်ပါသည်။ Computer တွင် Operating Software သည် မရှိမဖြစ် လိုအပ်ပါသည်။ Application Software သည် မရှိမဖြစ် မဟုတ်ပါ။ မရှိလဲရပါသည်။ ရှိလျှင်ပိုကောင်းပါသည်။
PC(Personal Computer)များ ပေါ်ပေါက်လာသောအခါ computer တစ်ခု တိုင်းတွင် Operating Software တစ်ခု မရှိမဖြစ် လိုအပ်လာပါသည်။ ထိုအချိန်က Hardware ထုတ်လုပ်သူမှာ IBM ဖြစ်ပြီး Microsoft က software ထုတ်လုပ်ပါသည်။ Apple မှ ကိုယ်ပိုင် computer များထုတ်လုပ်ပါသည်။ ထိုအချိန်မှစပြီး Hardwware and Software နှစ်မျိုးကွဲသွားပါသည်။ အခြား company များက IBM ၏ Computer နှင့်တူသော Hardware များထုတ်လုပ်ပါသည်။ ထို Computer များသည် Microsoft ၏ Operating Software ကို အသုံးပြုပါသည်။ Microsoft ၏ Operating Software ကို MS-DOS(MicroSoft-Disk Operating System)ဟု ခေါ်ပါသည်။ ထို့ကြောင့် IBM နှင့်တူသော Computer တိုင်းတွင် Microsoft ၏ Operating Software ကို အသုံးပြုပါသည်။ Apple သည် ကိုယ်ပိုင် Hardware and Software ကို ထုတ်လုပ်ပါသည်။ Apple သုံးပါက Hardware and Software စသည့် အရာအားလုံးကို Apple မှသာ ဝယ်သုံးရပါသည်။ ထိုအချိန်က Microsoft တွင် Apple ၏ မည်သည့်အရာမှ အသုံးမပြုနိုင်သလို Apple တွင် Microsoft ၏ မည်သည့်အရာမှ အသုံးမပြုနိုင်ပါ။ Microsoft တွင် မည်သည့် Hardware ကိုမဆို အသုံးပြုနိုင်သဖြင့် အသုံးပြုသူ အများဆုံးဖြစ်ပါသည်။ ထို့ကြောင့် Software ရေးသားရာတွင် Microsoft အတွက် အများဆုံးရေးသားကြပါသည်။
Computer သည် Electronic Device ဖြစ်သောကြောင့် မည်သည့်အရာကိုမှ မသိပါ။ လျှပ်စစ်မီး ရှိမရှိကိုသာ သိပါသည်။ အစပိုင်း အသုံးပြုသည်မှာ 8 bits ဖြစ်ပါ သည်။ အခန်း(၈)ခန်း နှင့်တူပါသည်။
ဘာမှမရှိလျှင် လူတိုင်းနားလည်ရန် 0(Zero) ဟု သတ်မှတ်ပါသည်။
လျှပ်စစ်ရှိပါက 1(one) ဟု သတ်မှတ်ပါသည်။
0 and 1(0,1) ကိုသာ အသုံးပြုသဖြင့် Binary System(Base 2) ဟုခေါ်ပါ သည်။ ယခု လူတိုင်းအသုံးပြုနေသော Number မှာ 0 to 9 (0,1,2,3,4,5,6,7,8,9) ဖြစ်ပြီး (Base 10) ဟုခေါ်ပါသည်။ Hexa System မှာ (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) ကို အသုံးပြုသဖြင့် (Base 16) ဟု ခေါ်ပါသည်။
8 bits ကို 1 Byte ဟု ခေါ်ပါသည်။ 1 Byte သည် စာလုံးတစ်လုံးကို ကိုယ်စား ပြုပါသည်။
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
|
|
|
|
|
အနီရောင် number မှာ လူသတ်မှတ်ထားသော တန်ဖိုးဖြစ်ပြီး အောက်အကွက်မှာ လျှပ်စစ် ရှိမရှိကို ဖော်ပြပါသည်။
Example (Number 5)
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
|
|
|
|
|
4 and 1 တွင် လျှပ်စစ်ရှိသဖြင့် 4 + 1 = 5 ဖြစ်ပါသည်။
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
လျှပ်စစ်ရှိလျှင် 1, မရှိလျှင် 0 ဟုသတ်မှတ်သဖြင့် 5 ၏ တန်ဖိုးမှာ 00000101 ဖြစ်ပါ သည်။
Programming တွင်
-
First Generation
-
Second Generation
-
Third Generation
-
Fourth Generation
ဟု ခွဲခြားနိုင်ပါသည်။
Programming အစပိုင်းတွင် ကတ်များတွင် အပေါက်ဖေါက်ပြီး အပေါက်သည် 1 အပေါက်မရှိလျှင် 0 ဟု သတ်မှတ်ပါသည်။ တစ်ကတ်ပြီးတစ်ကတ် အစဉ်လိုက် Computer ထဲထည့်ပေးရပါသည်။ First Generation Language ဖြစ်ပါသည်။
Computer ၏အစိတ်အပိုင်းများကို တိုက်ရိုက်ခိုင်းစေနိုင်ပြီး A to F (Base 16) ကိုအသုံးပြုပါက Second Generation Language ဖြစ်ပါသည်။ ကိုယ်ရေးသော အရာ မှားသည် မှန်သည်ကို မစစ်ပေးပါ။ မှားယွင်းပါက လိုချင်သောအဖြေ မရနိုင်ပါ။ Computer ပျက်သည်အထိ ဖြစ်နိုင်ပါသည်။ ရေးသားရခက်ခဲပါသည်။ Computer Major များတွင် သင်ကြားရပါသည်။ Virus များ၊ Hardware ကို တိုက်ရိုက်ထိန်းချုပ် ရန် အဓိက ရေးသားကြပါသည်။
Example – Assemble Language
section .text
global_start
_start:
mov edx,len
mov ecx,msg
mov ebx,1
mov eax,4
int 0x80
mov eax,1
int 0x80
section .data
msg db ‘Hello, world!’, 0xa
len equ $ – msg
ထို Program ကို Run လိုက်ပါက Hello, world! ဟု ပေါ်ပါသည်။
လူများ အလွယ်တစ်ကူ နားလည်ရန်နှင့် လူ၏စကားနှင့်တူသော Language များကို တီထွင်လာကြပါသည်။ Third Generation Language များဖြစ်ပါသည်။
Example – BASIC, C, C++, Java, etc.
BASIC (Beginner’s All-Purpose Symbolic Instruction Code)
10 CLS
20 PRINT “Hello, world!”
30 END
Program ကို Run လိုက်ပါက Hello, world! ဟုပေါ်ပါမည်။ အပေါ်မှ အောက် သို့ အစဉ်လိုက် အလုပ်လုပ်ပါသည်။ Program တစ်ခုလုံးကို အလုပ်မလုပ်ပါ။ တစ် လိုင်းပြီးမှ တစ်လိုင်း အလုပ်လုပ်ပါသည်။ Interpreter (ဘာသာပြန်) ကဲ့သို့ အလုပ် လုပ်ပါသည်။ တစ်လိုင်းချင်း အလုပ်လုပ်သောကြောင့် Memory အနည်းငယ်သာ အသုံးပြုပါသည်။ ထို Program ကို Run မည့်စက်တိုင်းတွင် BASIC Software ရှိရန် လိုပါသည်။ ယခင်က Programming စသင်လျှင် အသုံးပြုပါသည်။
C
#include <stdio.h>
int main() {
printf(“Hello, World! \n”);
return 0;
}
Program ကို Run လိုက်ပါက Hello, world! ဟုပေါ်ပါမည်။ BASIC ထက် အနည်းငယ် ခက်ခဲပါသည်။ Grammar ကဲ့သို့ စာလုံးများ မသုံးမနေရ သုံးရပါမည်။ Engineer field တွင် အသုံးများပါသည်။ ယခုနောက်ပိုင်း Programming စသင်ရာတွင် အသုံးပြုပါသည်။ C သည် Program တစ်ခုလုံးကို တစ်ခါတည်း Run နိုင်ရန် Application အဖြစ်ပြောင်းလဲပေးပါသည်။ Compile လုပ်သည်ဟု ခေါ်ပါ သည်။ Compile လုပ်ပြီးပါက မည်သည့် Computer တွင်မဆို Run နိုင်ပါသည်။ C ရှိ ရန်မလိုပါ။ Program တစ်ခုလုံးကို တစ်ခါတည်း Run သဖြင့် BASIC ထက် Memory ပိုသုံးပါသည်။ ပိုမြန်ပါသည်။ ယခုနောက်ပိုင်း Computer များတွင် Memory များလာသဖြင့် အခက်အခဲမရှိ run နိုင်ပါ။ သို့သော် Model သိပ်မကွာသောစက်များ တွင်သာ အဆင်ပြေပါသည်။ Model အရမ်းကွာသော စက်များတွင် Run ပါက အဖြေ ကွဲပြားမှုများ ရှိနိုင်ပါသည်။
C++
#include <iostream>
using namespace std;
int main()
{
cout << “Hello World”;
return 0;
}
C++ သည် C ထက် ပိုကောင်းအောင် လုပ်ထားပါသည်။ C တွင် Line ပေါင်း 3 သိန်းကျော်လာပါက ထိန်းရ ခက်ခဲလာပါသည်။ C သည်လည်း အပေါ်မှ အောက်သို့ အစဉ်လိုက် Run ပါသည်။ C ကို Structural Language ဟုခေါ်ပါသည်။ BASIC and C တို့သည် Graphic ရေးရန် ခက်ခဲပါသည်။ C++ သည် OOP(Object Oriented Programming) နည်းပညာကို စတင်အသုံးပြုနိုင်ပါသည်။ Graphic ရေးရာတွင် အနည်းငယ် လွယ်ကူလာပါသည်။ OOP ကို အသုံးမပြုပါက C and C++ သည် အတူတူပင်ဖြစ်ပါသည်။ OOP နည်းပညာကြောင့် Graphic Windows Software ပေါ်ပေါက်လာပါသည်။ ယခု Programming စသင်ရာတွင် အသုံးပြုပါသည်။
Java
public class MyFirstJavaProgram {
public static void main(String []args) {
System.out.println(“Hello World”);
}
}
Java တွင် C++ ၏အချို့အချက်များကို ပြုပြင်ပြီး အချို့လုပ်ဆောင်ချက် အသစ်များ ထည့်သွင်းထားပါသည်။ C++ စသည်တို့သည် Computer ပေါ်တွင်သာ အလုပ်လုပ်ပါသည်။ Application ဖြစ်သောကြောင့် Virus ကူးနိုင်ပါသည်။ File Size လည်း ကြီးပါသည်။ Internet စပေါ်လာသောအခါ Speed မှာ အလွန်နှေးပါသည်။ File Size ကြီးပါက ပို့ရန် လက်ခံရန် အခက်အခဲဖြစ်လာပါသည်။ Java သည် Program တစ်ခုလုံးကို လုံး၀ Compile မလုပ်ပါ။ ထို့ကြောင့် Application မထွက်ပါ။ Class Code သာ ထွက်ပါသည်။ Run မည့် Computer တိုင်းတွင် Java Virtual Machine(JVM) ကို သွင်းထားရပါသည်။ JVM က Class Code ကို ဘာသာပြန်ပေးပါ သည်။ Java သည် C မှ Compiler နှင့် BASIC မှ Interpreter နည်းပညာကို ပေါင်း သုံးထားပါသည်။ Application မဟုတ်သဖြင့် Virus မကူးပါ။ စက်ပေါ်တွင် Run ရန် Permission တောင်းပြီး ခွင့်ပေးမှသာ Run နိုင်ပါသည်။ File Size မှာလည်း အလွန် သေးငယ်သဖြင့် Internet ပေါ်တွင် အပို့အယူလုပ်ရာတွင် အလွန်မြန်ပါသည်။ C++, BASIC စသည်တို့သည် Windows ပေါ်တွင်သာ အလုပ်လုပ်သည့်အပြင် စက် ပေါ်တွင်လည်း မှီခိုပါသည်။ Java Virtual Machine(JVM) သည် Windows and Apple စသည့် Operating Software တိုင်းအတွက်ရှိသဖြင့် တစ်ခါရေးထားသော Java Program သည် မည်သည့်စက်တွင်မဆို ဘာမှပြင်ရန်မလိုဘဲ Run နိုင်ပါသည်။ “Write once, run anywhere” ဟု ဆောင်ပုဒ်ရှိပါသည်။ Java တွင် Graphic အတွက် Build-in အစိတ်အပိုင်းများပါသဖြင့် အလွယ်တကူ ယူသုံးနိုင်ပါသည်။ အခြား Program များသည် Computer တစ်ခုတည်းအတွက်သာ ရေးနိုင်ပါသည်။ Java သည် Computer, Website, Phone စသည့်နေရာများအတွက် အသုံးပြုနိုင်ပါ သည်။ ယခု အချို့ University များတွင် Subject တစ်ခုအနေဖြင့် သင်ကြားရပါသည်။
Fourth Generation Language
ထို Language များသည် Graphic များကို ပိုအသုံးပြုရေးသားပါသည်။
Visual Basic, Visual C, Visual Basic.Net, Visual C# စသည်တို့သည် Windows စက်များတွင်ရေးသားနိုင်သော Microsoft မှ ထုတ်ကုန်များဖြစ်ပါသည်။
ASP.Net သည် Internet အတွက် ထုတ်လုပ်ထားသော Microsoft ၏ ထုတ်ကုန်ဖြစ်သည်။
Objective C သည် Apple Application များရေးသားရာတွင် အသုံးပြုသော Apple ၏ထုတ်ကုန်ဖြစ်သည်။ Mac OS, IPhone စသည်တို့အတွက် ရေးသားရာတွင် အသုံးပြုသည်။
Windows သုံးချင်လျှင် Windows Software ကိုသာ ဝယ်သုံးရန်လိုပြီး Hardware မှာ မည်သည့် Company မှမဆို ဝယ်သုံးနိုင်ပါသည်။ Apple သုံးလျှင် အားလုံး Apple မှဝယ်သုံးရပါသည်။ ထို့ကြောင့် အချို့ Programmer များက မကြိုက် ဘဲ Linux ကိုတီထွင်ကြပါသည်။ Linux သည် Open source ဖြစ်ပါသည်။ မည်သူမဆို အခမဲ့ အသုံးပြုနိုင်ပါသည်။ မည်သို့ရေးထားသည်ကိုပါ ပေးထားသဖြင့် ရေးနိုင်သူများ မည်သူမဆို ပြင်ရေးနိုင်ပါသည်။ ပြင်ထားသမျှကို အခြားသူများအား မျှဝေထားပါသည်။ ပြန်လည်ရောင်းချလိုပါက License Fee ပေးရပါသည်။ ငွေကြေးနည်းသော Company, University, School စသည်တို့တွင် အသုံးများကြပါသည်။ အစတွင် သုံးရာတွင် ခက်ခဲသော်လည်း ယခုနောက်ထွက် Version များသည် သုံးရလွယ်ကူလာပါသည်။ Linux သည် ပညာရှင်များ အဓိက အသုံးများပါသည်။ Windows သည် လူသုံး အများဆုံးဖြစ်သဖြင့် Virus အတိုက်ခံရမှု အများဆုံးဖြစ်ပါသည်။ ထို့ကြောင့် Antivirus သုံးရန်လိုပါသည်။ Apple က အရာရာကို ထိန်းချုပ်ထားသဖြင့် Virus တိုက်ခိုက်ခံရရန် ခက်ခဲပါသည်။ Antivirus အသုံးမပြုရသလောက်ဖြစ်ပါသည်။ Linux သည်လည်း File System မတူခြင်း၊ Error ပေါ်တိုင်း ရေးနိုင်သူများက ပြန်ပြင်ရေးသားခြင်းတို့ကြောင့် Antivirus မသုံးရ သလောက်ဖြစ်ပါသည်။ Linux Version များစွာရှိပါသည်။
Android Phone များသည် Android Programming ကို အသုံးပြုပါသည်။ Android သည် Base System မှာ Linux ဖြစ်ပြီး အပေါ်တွင် Java Code ကို Run ထားပါသည်။
Windows Application များအတွက် Visual Basic.Net, Visual C# စသည်တို့မှာ အသုံးများပါသည်။ Windows Website များအတွက် ASP.Net ကို အသုံးပြုပါသည်။
Apple Application and IPhone Application များအတွက် Objective C ကို အသုံးပြုကြပါသည်။
Linux Website များအတွက် PHP ကိုအသုံးပြုပါသည်။
အချို့ Programming များသည် မည်သည့်စက်တွင်မဆို Run နိုင်ရန် ရေးသား ထားကြပါသည်။ ထို Language များကို Multiplatform Language များဟုခေါ် ပါသည်။ Platform Independence ဟုလည်း ခေါ်ပါသည်။
Example – Java, Python, Qt, etc.
မည်သည့် Program မဆို စက်၏ Memory ပေါ်တွင်သာ Run နိုင်ပြီး စက်ပိတ် လိုက်ပါက Data များ ပျောက်သွားပါမည်။ ထို Data များကို သိမ်းရန် မည်သည့် Programming Language နှင့်မဆို ရေးသားနိုင်သော်လည်း ခက်ခဲပါသည်။ Data ကို အဓိက သိမ်းရန် အခြား Database Software များကို အသုံးပြုကြပါသည်။ ထို Program များတွင်လည်း Programming ရေးသားကာ Data ကို ထိန်းနိုင်ပါသည်။
Windows only database များမှာ Access, Microsoft SQL Server စသည်တို့ဖြစ်ပါသည်။ အခြား Multiplatform Database များမှာ MySQL, Oracle, SQLite စသည်တို့ ဖြစ်ပါသည်။
Website ပေါ်တွင် အသုံးပြုသော Language များမှာ HTML, CSS, Javascript စသည်တို့ဖြစ်ပါသည်။ PHP ကိုသုံးကာ Website အလွယ်ရေးနိုင်ရန် တီ ထွင်ထားသော Tool များမှာ Joomla, Drupal, WordPress စသည်တို့ဖြစ်ပါသည်။ အခြား Programming Language များစွာလည်း ရှိပါသည်။ Tool များမှာ သုံးရလွယ် ကူသော်လည်း လိုချင်သလို မပြင်ဆင်နိုင်ဘဲ ကန့်သက်ချက်များရှိပါသည်။ Programming ရေးသားနိုင်သော နေရာပေါ်မူတည်ပြီး အောက်ပါအတိုင်း ခွဲခြားနိုင် ပါသည်။
Programming
-
Operating Software
-
Application Software
-
Operating Software
-
Windows
-
Apple
-
Linux
-
Chrome
-
Android
-
Application Software
-
Desktop or Laptop
-
Web
-
Phone
-
Tablet