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 đủ
ppt 79 trang yennguyen 12020 Free
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:

  • pptbai_giang_nhap_mon_tin_hoc_chuong_12_ngon_ngu_may_tinh.ppt