Thông tin 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" cung cấp cho người học các kiến thức: Tương tự với ngôn ngữ tự nhiên, ngôn ngữ máy tính, hợp ngữ, ngôn ngữ cấp cao, ngôn ngữ lập trình hướng đối tượng, một số ngôn ngữ lập trình cấp cao,... Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Nhập môn tin học: Chương 12 - Trần Thị Kim Chi
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 ASIDE AN ADDRESS FOR FRST
SET ASIDE 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 language program Assembler 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 00 Halt, sử dụng để kết thúc chương
CLA 10 trình
ADD 14 Xóa và thêm vào thanh ghi A
SUB 15 Thêm nội dung vào thanh ghi A
STA 30 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, Fortra ...