Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Nhp môn đin toán
Slide 143
Kiến trúc client-server
Chương 3 : H điu hành
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Nhp môn đin toán
Slide 144
MÔN NHP MÔN ĐIN TOÁN
Chương 4
LP TRÌNH
Chương 4 : Lp trình
4.1 Lp trình vi ngôn ngcp cao
4.2 Xlý ngôn ng
4.3 Phát trin phn mm
4.4 Tài liu hoá chương trình
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Nhp môn đin toán
Slide 145
4.1 Lp trình vi ngôn ngcp cao
Ngôn nglp trình:
Trong chương 3, ta đã thy máy tính s máy nhiu cp, mi
cp là 1 máy tính (vt lý hay lun lý) thc hin được tp lnh máy
ca cp mình.
Vnguyên lý, bt kbài toán (vn đề) cn gii quyết ngoài đời
nào cũng có th được miêu tchính xác thành 1 chui các lnh
máy (thuc 1 máy lun lý xác định). Chui các lnh máy này
được gi là chương trình (program) gii quyết bài toán tương ng.
Lp trình (programming) hay tng quát hơn là phát trin phn
mm(software developping) là qui trình thc hin các công vic
để to được chương trình ctht1 bài toán cn gii quyết.
Chương trình được miêu tbng 1 ngôn ngcth. Ta gi ngôn
ng được dùng để miêu t chương trình là ngôn nglp trình,
đây là ngôn ng y tính (cp tương ng) hiu và thc thi
được.
Chương 4 : Lp trình
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Nhp môn đin toán
Slide 146
Ngôn ngmáy
Ngôn ngmáy :
Ta thường dùng thut ng"ngôn ngmáy" để nói vngôn ng
ca máy tính vt lý mà người dùng có thlp trình được (còn có
ngôn ngmáy thp hơn na như vi lnh)
Lnh máy :
Mi lnh máy chthc hin mt tác vrt đơn gin như 1 phép
tính shc hay 1 hot động đọc/ghi vùng nh/thanh ghi CPU.
Mt lnh máy bao gm 2 phn : mã lnh và toán hng. Mã lnh
(opcode) là mt chui các bit 0 và 1. Mi chui bit miêu t1 s,
mi smiêu t1 lnh máy cth. Thí dmáy có n lnh (n
<256), ta có thmiêu tmi lnh máy bng 1 byte (8bit), byte
này được gi là mã lnh. Toán hng xác định dliu nào sb
xlý bi lnh máy tương ng. Toán hng cũng là chui bit nh
phân, nhưng định dng và ngnghĩa ca nó phthuc vào tng
lnh máy cth.
Chương 4 : Lp trình
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Nhp môn đin toán
Slide 147
dvngôn ngmáy
Gista có 2 biến nguyên 16 bit, biến nguyên thnht (i) nm
vtrí nh200h, biến nguyên th2 (j) nm vtrí nh 202h.
Đon lnh máy (Intel 80x86) sau đây sthiết lp ni dung cho
biến i = 5 ri thiết lp ni dung ca biến j theo công thc i+10 :
10111000 00000101 00000000 b8 05 00
10100011 00000000 00000002 a3 00 02
10100001 00000000 00000002 a1 00 02
00000101 00001010 00000000 05 0a 00
10100011 00000010 00000010 a3 02 02
Con người rt khó lp trình (rt khó viết và đọc) gii quyết
bài toán ngoài đời (thường khá phc tp) trc tiếp bng ngôn
ngmáy vì quá xa lvi ngôn ngtnhiên mà con người đã
tng dùng.
Chương 4 : Lp trình
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Nhp môn đin toán
Slide 148
Ngôn nglp trình cp thp
Cu trúc điu khin: Mt cu trúc ngôn ng quy định tht
thc hin các lnh trong chương trình.
Ngôn ngmáy ch hai cu trúc điu khin cơ bn để thc
hin các lnh : tun t nhy. Cu trúc tun t mc định
: sau khi thc hin xong lnh máy hin hành sthi hành tiếp
lnh đi ngay sau lnh hin hành trong chương trình. Lnh
nhy cho phép người lp trình xác định lnh kếtiếp được thi
hành đâu trong chương trình. Đa scác lnh nhy đều có
kèm theo điu kin (kết quva tính là âm/bng 0/dương...
Ta dùng thut ng"ngôn nglp trình cp thp" để miêu t
các ngôn ngca các máy nm thp dưới đáy chng các
máy nhiu cp. Thí dngôn ngmáy là ngôn nglp trình
cp thp.
Chương 4 : Lp trình
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Nhp môn đin toán
Slide 149
Tương t, ta dùng thut ng"ngôn nglp trình cp cao" để miêu
tcác ngôn ngca các máy nm cao trên chng các máy nhiu
cp. Thí dngôn ngC# là ngôn nglp trình cp cao.
Ngôn nglp trình cp cao cho phép dùng nhiu kiu diu dliu
nhiu cu trúc điu khin hơnso vi nhng gì được cung cp
bi ngôn ngcp thp, đồng thi cách biu din các lnh (phát
biu) cũng gn vi ngôn ngt nhiên hơn.
Phân loi các ngôn nglp trình cp cao :
Ngôn ng đa mc đích: Basic, C, C++, Fortran, Pascal
Ngôn nglp trình stack : TrueType, Postscript,...
Lp trình khai báo : C, Pascal,...
Ngôn nglp trình logic, lp trình thtc & lp trình hàm :
Prolog, Lisp,..
Ngôn nglp trình hướng đối tượng : C++, C#, Java,..
Chương 4 : Lp trình
Ngôn nglp trình cp cao
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Nhp môn đin toán
Slide 150
dvngôn nglp trình cp cao : C
Ngôn ngmáy dng nhphân NNM dng Hex NN Assembly
10111000 00000101 00000000 b8 05 00 mov ax, 5
10100011 00000000 00000002 a3 00 02 mov [200], ax
10100001 00000000 00000002 a1 00 02 mov ax, [200]
00000101 00001010 00000000 05 0a 00 add ax, 10
10100011 00000010 00000010 a3 02 02 mov [202],ax
Ngôn ngcp cao C :
short i, j; // khai báo 2 biến i, j thuc kiu nguyên 16 bit
i = 5; // cha 5 vào biến i
j = i +10; // cha kết qutính công thc i + 10 vào biến j
Chương 4 : Lp trình
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Nhp môn đin toán
Slide 151
Cu trúc điu khin
Đánh giá :
Con người rt khó viết và đọc chương trình viết bng ngôn ng
máy (dù dng nhphân hay dng hexadecimal).
Nhưng nếu dng assembly, con người ddàng viết và đọc
hơn.
nếu dng ngôn ngcp cao, con người srt ddàng viết
đọc.
Con người cgng định nghĩa nhiu ngôn ngcp cao và dùng
ngôn ngcp cao để viết chương trình.
Cu trúc điu khin : Mt cu trúc ngôn ng quy định thtthc
hincác lnh
Ngôn ngmáy : Tun t nhy
Ngôn ngcp cao cung cp thêm :
Rnhánh
Lp
Chương 4 : Lp trình
Khoa Công ngh Thông tin
Trường ĐH Bách Khoa Tp.HCM
Môn : Nhp môn đin toán
Slide 152
Cu trúc tun t nhy
A = 1; // tun t
Goto Lable1; //nhy
A = A*2; // tun t
Label1:
A = 3 // tun t
A=?
Chương 4 : Lp trình