Em hiểu thế nào là ngôn ngữ máy?-Là ngôn ngữ duy nhất để viết chương trình mà máy tính có thể trực tiếp hiểu và thực hiện được.?. NGÔN NGỮ LẬP TRÌNH- Các lệnh viết bằng ngôn ngữ máy ở d
Trang 1Kiểm tra bài cũ
* Câu hỏi: Xác định input, output và viết thuật toán của bài toán tính tổng hai số nguyên A, B?
* Trả lời:
Input: A, B là các số nguyên
Output: Đưa ra Tổng hai số A, B
Trang 2Theo cách liệt kê:
B1: Nhập A, B;
B2: Tính Tổng A+B;
B3: Đưa ra Tổng rồi kết thúc;
Theo sơ đồ khối:
Nhập A, B;
Tong A+ B;
Đưa ra Tong
và kết thúc
Trang 3Tiết 17- Bài 5
NGÔN NGỮ LẬP TRÌNH
Trang 4? Ngôn ngữ lập trình là gì?
Tiết 17 – Bài 5 NGÔN NGỮ LẬP TRÌNH
- Ngôn ngữ để viết chương trình được gọi là ngôn ngữ lập
trình.
- Ngôn ngữ lập trình được chia làm 3 loại: (ứng với 3 thế hệ ngôn ngữ)
- Thế hệ 1: Ngôn ngữ máy
- Thế hệ 2: Hợp ngữ
- Thế hệ 3: Ngôn ngữ bậc cao (Ngôn ngữ lập trình bậc cao)
Trang 51 Ngôn ngữ máy
- Mỗi loại máy tính đều có 1 ngôn ngữ máy riêng.
Ví dụ:
- BXL 32 BIT, VI KIẾN TRÚC NetBurst
+ BXL Pentium 4
+ BXL Celeron
+Pentium 4 Extreme Edition (P4EE)
- BXL 64 BIT, VI KIẾN TRÚC NETBURST
+ P4 Prescott (năm 2004 )
+ Pentium D (năm 2005)
- BXL 64BIT, KiẾN TRÚC CORE
+Intel Core 2 Duo
+ Core 2 Extreme
Tiết 17 – Bài 5 NGÔN NGỮ LẬP TRÌNH
Trang 6? Em hiểu thế nào là ngôn ngữ máy?
-Là ngôn ngữ duy nhất để viết chương trình mà máy tính có thể
trực tiếp hiểu và thực hiện được.
Tiết 17 – Bài 5 NGÔN NGỮ LẬP TRÌNH
1001 0001 0110 0100 0001 0000
0000 0011 0110 0110 0001 0000
1010 0011 0000 0000 0010 1011
Ví dụ: Đoạn chương trình sau mô tả việc thực hiện
cộng hai giá trị trên ngôn ngữ máy
Trang 7Tiết 17 - Bài 5 NGÔN NGỮ LẬP TRÌNH
- Các lệnh viết bằng ngôn ngữ máy ở dạng mã nhị phân hoặc
mã hexa
? Chương trình viết bằng ngôn ngữ khác có thực hiện trực
tiếp trên máy tính luôn được không? Tại sao?
- Mỗi chương trình viết bằng ngôn ngữ khác đều phải dịch ra
ngôn ngữ máy bằng một chương trình dịch.
Trang 8Tiết 17 – Bài 5 NGÔN NGỮ LẬP TRÌNH
? Vậy ngôn ngữ máy những ưu điểm gì ?
- Ưu điểm: Khai thác triệt để và tối ưu khả năng của máy tính.
? Em hãy đưa ra những nhược điểm của ngôn ngữ máy?
- Nhược điểm:
+ Ngôn ngữ máy phức tạp, phụ thuộc nhiều vào phần cứng.
+ Chương trình viết mất nhiều công sức, cồng kềnh, khó hiệu chỉnh, khó cải tiến.
+ Tính phổ dụng không cao.
Ngôn ngữ này không thích hợp với số đông người lập trình.
Trang 9Tiết 17 – Bài 5 NGÔN NGỮ LẬP TRÌNH
2 Hợp ngữ
Ví dụ:
Để cộng hai giá trị có trong hai thanh ghi AX, BX ta thực hiện như sau:
Trong đó:
ADD: là kí hiệu phép cộng (viết tắt từ tiếng Anh);
Kết quả của phép cộng sẽ được ghi trong thanh AX.
? Qua ví dụ trên em có nhận xét gì về hợp ngữ?
Trang 10? Vậy hợp ngữ là gì?
- Là ngôn ngữ kết hợp ngôn ngữ máy với ngôn ngữ tự nhiên của con người Nó cho phép người lập trình sử dụng một số từ (thường là viết tắt các từ tiếng Anh) để thể hiện các lệnh cần thực hiện.
Tiết 17 – Bài 5 NGÔN NGỮ LẬP TRÌNH
Ví dụ: Đoạn chương trình sau mô tả thực hiện cộng hai số nguyên A,B
MOV AX, A ADD AX, B MOV Tong, AX
Trang 11? Em nào có thể chỉ ra nhược điểm của hợp ngữ?
- Ưu điểm:
+ Đơn giản hóa câu lệnh
+ Dễ viết, dễ hiểu hơn ngôn ngữ máy.
Tiết 17 – Bài 5 NGÔN NGỮ LẬP TRÌNH
- Nhược điểm:
+ Câu lệnh vẫn còn phức tạp, khó nhớ, vẫn còn phụ thuộc vào loại máy
+ Tính phổ dụng không cao.
Ngôn ngữ này chỉ thích hợp với các nhà lập trình chuyên
? Hợp ngữ có những ưu điểm gì?
Trang 12Tiết 17 – Bài 5 NGÔN NGỮ LẬP TRÌNH
?Máy tính có thực hiện được ngay các chương trình viết bằng hợp ngữ
không?
Chương trình viết bằng hợp ngữ phải được dịch ra ngôn ngữ máy nhờ chương trình hợp dịch thì máy tính mới có thể thực hiện được.
Ví dụ về hợp dịch: Tasm.exe, Emu8086 …
HỢP
NGỮ
NGÔN NGỮ MÁY CHƯƠNG TRÌNH
HỢP DỊCH
Trang 13Tiết 17 - Bài 5 NGÔN NGỮ LẬP TRÌNH
3 Ngôn ngữ bậc cao.
Ví dụ:
NNLT Fortran
Program VD;
Read (*,*) A,B
Tong= A+B
Write(*,*) Tong
End
? Em có nhận xét gì về các câu lệnh được viết trong đoạn
Đoạn chương bên thực hiện công việc gì?
Trang 14Tiết 17 – Bài 5 NGÔN NGỮ LẬP TRÌNH
? Vậy em hiểu ngôn ngữ bậc cao là gì?
Là ngôn ngữ trong đó các câu lệnh được viết gần với ngôn
ngữ tự nhiên.
Ví dụ dòng lệnh cho biết số nguyên N là số âm hay số dương
của Pascal:
IF (N < 0) THEN Write(‘ N la so am’)
ELSE Write(‘N la so dương’);
“Ngôn ngữ bậc cao thích hợp với số đông người lập trình”
Em có đồng ý với ý kiến trên không? Tại sao?
-Ưu điểm:
+ Ngắn gọn, dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp.
+ Cho phép làm việc với nhiều kiểu dữ liệu và cách tổ chức dữ liệu
đa dạng.
+ Có tính độc lập cao, ít phụ thuộc vào loại máy.
Trang 15? Hãy kể tên một số ngôn ngữ lập trình bậc cao mà em biết?
- Một số ngôn ngữ bậc cao thường dùng hiện nay:
+ Pascal, C…: dễ minh họa, diễn tả các thuật toán + VBA ,V.Studio, VFP…: Viết các phần mềm ứng dụng + Java, Asp, PHP, DotNet : Thiết kế Website, phần mềm ứng dụng …
Tiết 17 – Bài 5 NGÔN NGỮ LẬP TRÌNH
? Ngôn ngữ bậc cao có nhược điểm gì?
- Chương trình viết bằng ngôn ngữ bậc cao phải được chuyển
về chương trình trên ngôn ngữ máy thông qua chương trình dịch.
- Nhược điểm: Mất nhiều thời gian để dịch ra ngôn ngữ
máy.
Một số chương trình dịch: Turbo Pascal, Freepascal, C, turbo
Trang 16Tiết 17 - Bài 5 NGÔN NGỮ LẬP TRÌNH
NNLT Pascal Begin
Readln(A,B);
Tong:=A+B;
Write(Tong); End.
MOV AX, A
ADD AX, B
MOV Tong, AX
Với bài toán tính tổng hai số nguyên A, B ta có thể viết trên 3 thế
hệ ngôn ngữ lập trình qua các đoạn chương trình như sau:
1001 0001 0110 0100 0001 0000
0000 0011 0110 0110 0001 0000
1010 0011 0000 0000 0010 1011
Đoạn CT 3
? Em hãy chỉ ra các loại ngôn ngữ lập trình được sử dụng
Viết bằng hợp ngữ
Viết bằng ngôn ngữ máy
Viết bằng ngôn ngữ bậc cao
Trang 17? Hãy ghép mỗi đặc điểm ở cột bên phải với ngôn ngữ lập trình tương ứng ở cột bên trái
? Hãy ghép mỗi đặc điểm ở cột bên phải với ngôn ngữ lập trình tương ứng ở cột bên trái
A) Ngôn ngữ máy
B) Hợp ngữ
C) Ngôn ngữ bậc cao
1) Máy có thể trực tiếp hiểu được 2) Phải có chương trình hợp dịch để dịch sang
ngôn ngữ máy 3) Gần với ngôn ngữ tự nhiên 4) Có tính độc lập với từng loại máy cụ thể 5) Các lệnh là các dãy bit
6) Các lệnh sử dụng một số từ tiếng anh để
thay nhóm bit làm chương trình dễ đọc,
dễ viết hơn.
Đáp án
Tiết 17 - Bài 5 NGÔN NGỮ LẬP TRÌNH