Bài giảng Nhập môn tin học - Chương 12: Ngôn ngữ máy tính
Nội Dung
12.1. Tương tự với ngôn ngữ tự nhiên
12.2. Ngôn ngữ máy tính
12.3. Hợp ngữ
12.4. Ngôn ngữ cấp cao
12.5. Ngôn ngữ lập trình hướng đối tượng
12.6. Một số ngôn ngữ lập trình cấp cao
12.7. Các ngôn ngữ lập trình cấp cao khác
12.8. Đặc trưng của một ngôn ngữ lập trình
12.9. Cách lựa chọn một ngôn ngữ lập trình cho một
ứng dụng
12.10.Các khái niệm liện quan khác
Mã máy thông qua ngôn ngữ tự nhiên
• Ngô n ngữ má y tí nh là một biện phá p để giao
tiếp dùng để truyền đạt thô ng tin giữa người
và má y tí nh
• Tất cả ngô n ngữ má y tí nh có từ ngữ riêng của
chúng.
• Khá c biệt chủ yếu giữa ngô n ngữ tự nhiên và
ngô n ngữ má y tí nh là ngô n ngữ tự nhiên có từ
vựng lớn nhưng đa số ngô n ngữ má y tí nh sử
dụng rất hạn chế hoặc hạn chế từ vựng.
• Ngôn ngữ máy tính có thể phân thành các loại
sau :
1. Ngôn ngữ máy tính
2. Hợp ngữ
3. Ngôn ngữ cấp cao
Ngôn ngữ của máy tính
• Là ngô n ngữ của má y tí nh vật lý mà người dùng có
thể lập trì nh được.
• Lệnh má y :
– Mỗi lệnh má y chỉ thực hiện một tá c vụ rất đơn giản
như 1 phé p tí nh số học hay 1 hoạt động đọc/ghi
vùng nhớ/thanh ghi CPU.
– Một lệnh má y bao gô m 2 phần : mã lệnh và toá n
hạng. Mã lệnh (opcode) là một chuỗi cá c bit 0 và 1.
Mỗi chuỗi bit miêu tả 1 số, mỗi số miêu tả 1 lệnh
má y cụ thể.
– Toá n hạng xá c định dữ liệu nào sẽ bị xử lý bởi lệnh
má y tương ứng. Toá n hạng cũng là chuỗi bit nhị
phâ n, nhưng định dạng và ngữ nghĩa của nó phụ
thuộc vào từng lệnh má y cụ thể.
Ngôn ngữ của máy tính
• Các toán hạng điển hình có trong tập lệnh của máy
tí nh:
1. Phép toán số học
2. Phé p toá n logic
3. Các thao tác rẽ nhánh.
4. Thao tác để di chuyển dữ liệu giữa vị trí bộ nhớ và
thanh ghi.
5. Thao tác di chuyển dữ liệu từ các thiết bị nhập/xuất
của máy tính.
Ngôn ngữ của máy tính
Ví dụ: Giả sử ta có 2 biến nguyên 16 bit, biến nguyên thứ
nhâ t (i) nằm ở vị trí nhớ 200h, biến nguyên thứ 2 (j) nằm
ở vị trí nhớ 202h.Đọan lệnh má y (Intel 80x86) sau đây sẽ
thiết lập nội dung cho biến i = 5 rồi thiết lập nội dung của
biến j theo cô ng thức 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 rất khó lập trì nh (rất khó viết và đọc) giải quyết
bài toá n ngoài đời trực tiếp bằng ngô n ngữ má y vì quá xa
lạ với ngô n ngữ tự nhiên mà con người đã từng dùng.
Ngôn ngữ của máy tính
Ưu điểm và hạn chế của ngô n ngữ má y tí nh
• Ưu: Chương trì nh viết ngô n ngữ má y tí nh có thể được
thi hành rất nhanh bằng má y tí nh
• Khuyết:
– Phụ thuộc vào má y
– Khó viết chương trì nh
– Lỗi prone
– Khó sửa đổi
– Lập trình viên cần ghi mã số cho từng lệnh.
– Lập trình viên cần ghi vị trí lưu trữ của lệnh và dữ liệu ở
dạng số.
– Lập trình viên cần theo dõi vị trí lưu trữ của lệnh và dữ
liệu trong khi ghi chương trình.
Hợp ngữ
• Hợp ngữ được sử dụng vào năm 1952. Lập trì nh bằng
hợp ngữ có những đặc điểm sau :
1. Sử dụng mã dễ nhớ theo ký tự và số thay vì mã số cho
lệnh trong tập lệnh.
2. Lưu trữ vị trí được biểu diễn dưới dạng địa chỉ theo ký
tự và số thay vì địa chỉ số.
3. Cung cấp lệnh bổ sung gọi là lệnh giả trong tập lệnh
dùng để hướng dẫn hệ thống cá ch chúng ta muốn
chương trì nh sẽ được dịch bằng hợp ngữ bên trong bộ
nhớ của má y tí nh.
START PROGRAM AT 0000
START DATA
AT 1000
SET
SET
ASIDE
ASIDE
AN ADDRESS FOR FRST
AN ADDRESS FOR SCND
ASIDE AN ADDRESS FOR ANSR
Hợp ngữ
• Trì nh dịch hợp ngữ của hệ thống má y tí nh là hệ thống
phần mềm, cung cấp bởi nhà sản xuất má y tí nh dịch
chương trì nh hợp ngữ thành chương trì nh ngô n ngữ
má y tí nh
Input
Output
Assembler
Assembler language program
Machine language program
One-to-once correspondence
(Source Program)
(Object Program)
Figure 12.2. Illustrating the translation process of an assembler.
Hợp ngữ
• Ví dụ: Chương trình hợp ngữ mẫu cộng hai số và
lưu trữ kết quả
Mnemonic Opcode Meaning
HLT
CLA
ADD
SUB
STA
00
10
14
15
30
Halt, sử dụng để kết thúc chương
trình
Xóa và thêm vào thanh ghi A
Thêm nội dung vào thanh ghi A
Trừ nội dung của thanh ghi A
Lưu trữ thanh ghi A
Hợp ngữ
Thuận lợi
• Dễ hiểu và dễ sử dụng
• Dễ định vị hơn và sửa lỗi chính xác
• Dễ để sửa
• Không quan tâm đến địa chỉ
• Dễ dàng xác định đúng vị trí
• Hiệu xuất cao hơn ngôn ngữ máy tính
Hợp ngữ
Hạn chế:
• Phụ thuộc vào
• Người lập trì nh phải có kiến thức cần thiết về phần
cứng
• Cá c lệnh chỉ được viết ở mức mã má y nên viết
chương trì nh bằng hợp ngữ vẫn cò n mất thời gian và
khô ng dễ dàng lắm.
Ngôn ngữ lập trình cấp thấp
• Là ngô n ngữ má y chỉ có hai cấu trúc điều khiển cơ
bản để thực hiện cá c lệnh : tuần tự và nhảy. Cấu trúc
tuần tự là mặc định: sau khi thực hiện xong lệnh má y
hiện hành sẽ thi hành tiếp lệnh đi ngay sau lệnh hiện
hành trong chương trì nh. Lệnh nhảy cho phé p người
lập trì nh xá c định lệnh kế tiếp được thi hành ở đâu
trong chương trì nh.
• “Ngôn ngữ lập trì nh cấp thấp" để miêu tả cá c ngô n
ngữ của cá c má y nằm thấp dưới đáy chồng cá c má y
nhiều cấp. Thí dụ ngô n ngữ má y là ngô n ngữ lập trì nh
cấp thấp.
Ngôn ngữ cấp cao
• Là cá c ngô n ngữ của cá c má y nằm cao trên chồng
cá c má y nhiều cấp.
• Cho phé p dùng nhiều kiểu dữ liệu và nhiều cấu trúc
điều khiển hơn so với những gì được cung cấp bởi
ngô n ngữ cấp thấp, đồng thời cá ch biểu diễn cá c lệnh
cũng gần với ngô n ngữ tự nhiên.
• Phân loại các ngôn ngữ lập trình cấp cao :
– Ngôn ngữ đa mục đích: Basic, C, C++, C#, Java, Fortran,
Pascal
– Ngôn ngữ lập trình stack : TrueType, Postscript,...
– Lập trình khai báo : C, Pascal,...
– Ngôn ngữ lập trình logic, lập trình thủ tục & lập trình hàm :
Prolog, Lisp,..
– Ngôn ngữ lập trình hướng đối tượng : C++, C#, Java,..
Ngôn ngữ cấp cao
Đặc điểm của ngô n ngữ cấp cao:
• Độc lập với má y
• Khô ng đòi hỏi lập trì nh viên biết bất cứ thứ gì về cấu
trúc bên trong của má y tí nh.
• Khô ng xử lý mã má y.
• Cho phé p sử dụng má y tí nh giải quyết vấn đề ngay cả
khi người dùng khô ng phải là chuyên gia lập trì nh.
Ngôn ngữ cấp cao
Ví dụ:
• Ngôn ngữ máy dạng nhị phân NNM dạng Hex NN Assembly
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
mov ax, 5
mov [200], ax
mov ax, [200]
add ax, 10
mov [202],ax
• Ngôn ngữ cấp cao C :
short i, j; // khai báo 2 biên i, j thuộc kiểu số nguyên 16 bit
i = 5; // chứa 5 vào biến i
j = i +10; // chứa kết quả tính công thức i + 10 vào biến j
Ngôn ngữ cấp cao
• Chương trì nh dịch để dịch chương trì nh bằng ngô n
ngữ cấp cao phải chuyển đổi thành chương trì nh ngô n
ngữ má y tí nh tương đương với nó trước khi nó có thể
được thi hành trên má y tí nh.
Quá trình dịch của một trình biên dịch
Ngôn ngữ cấp cao
Minh họa quá trình biên dịch lại mã nguồn của chương trình
Ngôn ngữ cấp cao
• Linker (Liên kết, kết nối): được sử dụng để kết hợp
chí nh xá c tất cả cá c tập tin đối tượng chương trì nh
(module) của phần mềm, và chuyển đổi chúng vào
chương trì nh thực thi cuối cùng.
Ngôn ngữ cấp cao
Quá trình biên dịch nhiều chương trình nguồn
và kết nối chúng với nhau để thực thi chương trình (nạp module)
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn tin học - Chương 12: Ngôn ngữ máy tính", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_nhap_mon_tin_hoc_chuong_12_ngon_ngu_may_tinh.ppt

