History and Type of Programming Introduction

History and Type of Programming Introduction Part 1

Author: Thet Oo Zin

Email: thetoozin@gmail.com

Screenshot from 2016-03-29 11-53-49

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

  1. Operating Software

  2. 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 တြင္

  1. First Generation

  2. Second Generation

  3. Third Generation

  4. 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

  1. Operating Software

  2. Application Software

  1. Operating Software

  • Windows

  • Apple

  • Linux

  • Chrome

  • Android

  1. Application Software

  • Desktop or Laptop

  • Web

  • Phone

  • Tablet

 

About

his is Chit Ko Ko Win from Myanmar (Burma) . I start learning redhat Linux in 2010 because of lazy in MS but can't used as well as Ubuntu . After meet with Ubuntu Myanmar LoCo Team , I migrated to Ubuntu Operating system and I joined with LoCo Team . Reading , Learning and Helping to Team when we go all around the country . Most of the time I spend in community .Later ,I try to help people in facebook group after that I know that they just need localization . That'why I start wrote some articles for our people our language and training Ubuntu at Info Myanmar Computer Services .

Tagged with: ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*