1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Nhập môn Tin học: Chương 3 - Từ Thị Xuân Hiền

50 22 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 3: Ngôn Ngữ Máy
Trường học Trường Đại Học
Chuyên ngành Tin học
Thể loại Bài giảng
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 50
Dung lượng 699,72 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Nhập môn Tin học: Chương 3 do Từ Thị Xuân Hiền biên soạn nhằm mục đích phục vụ cho việc giảng dạy. Nội dung bài giảng gồm: Phân loại ngôn ngữ máy, định dạng của lệnh trong ngôn ngữ máy, trình biên dịch – Compiler, ngôn ngữ trung gian của trình biên dịch và thông dịch, các khái niệm trong lập trình hướng đối tượng,...

Trang 1

Chương 3: Ngôn ngữ máy

(Computer languages)

1

Trang 2

Phân loại ngôn ngữ máy

 High-level language

2

Trang 3

Ngôn ngữ máy - Machine language

 Là ngôn ngữ duy nhất mà bộ vi xử lý nhận biết và thực hiện trực tiếp không cần sử dụng chương trình

Trang 4

Định dạng của lệnh trong ngôn ngữ máy

Opcode báo cho máy tính thực hiện lệnh nào trong tập lệnh của máy.

Operand chỉ cho máy tính địa chỉ của dữ liệu mà trên đó lệnh sẽ được thực thi.

4

Trang 5

Định dạng của lệnh trong ngôn ngữ máy

5

Trang 6

Ví dụ

6

Trang 7

Thuận lợi và bất lợi của ngôn ngữ máy

Trang 8

Hợp ngữ -Assembly/Symbolic language

 Là ngôn ngữ lập trình mà giải quyết những hạn chế của ngôn ngữ máy

Sử dụng mã chữ và số thay vì mã số cho các chỉ thị trong tập lệnh

Ví dụ: sử dụng lệnh ADD thay vì sử dụng lệnh 1110 (Binary) hoặc 14 (deciaml) cho lệnh cộng.

Cho phép các vị trí lưu trữ được biểu diễn theo dạng thức địa chỉ chữ và số thay vì địa chỉ số

Ví dụ: biểu diễn vị trí bộ nhớ 1000, 1001, 1002 cho lệnh FIRST, SCND, ANSR

8

Trang 9

9

Trang 11

Hợp ngữ -Assembly/Symbolic language

11

Trang 12

Halt, để 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

12

Trang 13

Hợp ngữ -Assembly/Symbolic language

 Ví dụ: chương trình cộng 2 số và lưu kết quả

13

Trang 14

 Tương đương giữa chương trình sử dụng ngôn máy và chương trình sử dụng ngôn ngữ Assembly 5/11/21

Memory location

Nội dung

Ý nghĩa Opcode Address

0000 10 1000 Xóa và gán số thứ nhất vào FIRST của thanh ghi A

0001 14 1001 Thêm số thứ hai tại SCND của thanh ghi A

0002 30 1002 Lưu nội dung của thanh ghi A vào ANSR

1001 Lưu trữ giá trị trong FIRST

1002 Lưu trữ giá trị trong SCND

1003 Lưu trữ giá trị trong ANSR

14

Trang 15

Thuận lợi và bất lợi của ngôn ngữ Assembly

Trang 16

Thuận lợi và bất lợi của ngôn ngữ Assembly

 Phụ thuộc vào máy

 Người lập trình phải có kiến thức 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ó

16

Trang 17

Ngôn ngữ cấp cao – High-level language

 Người lập trình không cần biết nhiều về cấu trúc bên trong của máy tính, nơi mà chương trình viết

bằng ngôn ngữ cấp cao sẽ thực thi.

 Ngôn ngữ cấp cao cho phép người lập trình sử dụng các lệnh gần với ngôn ngữ tự nhiên, các biểu

thức và các ký hiệu toán học.

17

Trang 18

Ngôn ngữ cấp cao – High-level language

 Các loại 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,

18

Trang 19

Ngôn ngữ cấp cao – High-level language

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

19

Trang 20

Trình biên dịch - Compiler

 Là chương trình dịch dùng để chuyển một chương trình được viết bằng ngôn ngữ cấp cao thành

một chương trình bằng ngôn ngữ máy.

 Biên dịch thành một tập các chỉ thị của ngôn ngữ máy cho các chỉ thị trong chương trình của ngôn

ngữ cấp cao.

20

Trang 21

Trình biên dịch - Compiler

21

Trang 22

Trình biên dịch - Compiler

 Một máy tính sẽ hỗ trợ các chương trình dịch khác nhau cho những ngôn ngữ cấp cao khách nhau

22

Trang 23

Trình biên dịch - Compiler

 Chương trình viết bằng ngôn ngữ cấp cao độc lập với máy tính

23

Trang 24

Trình biên dịch - Compiler

Trình biên dịch ngoài chức năng biên dịch từ ngôn ngữ cấp cao sang ngôn ngữ máy còn có chức năng kiểm tra lỗi cú pháp

Các loại lỗi cú pháp:

Ký tự và kết hợp các ký tự không hợp lệ

Trình tự của các lệnh trong chương trình không hợp lệ

Sử dụng tên của các biến chưa được định nghĩa

24

Trang 25

Trình biên dịch - Compiler

 Quy trình kiểm lỗi của trình biên dịch

25

Trang 26

Liên kết - Linker

 Đối với một phần mềm lớn, để lưu trữ tất cả các dòng lệnh trong chương trình sẽ gặp các vấn đề:

Khó khăn khi nhiều lập trình viên làm việc đồng thời trong việc xây dựng và phát triển phần mềm

Bất kỳ sự thay đổi nào trong chương trình đều phải biên dịch lại toàn bộ chương trình

Cách tiếp cận Module thường được áp dụng trong việc xây dựng những phần mềm lớn với nhiều tập tin chương trình nguồn

26

Trang 27

Liên kết - Linker

Không cần phải viết lại những chương trình cho những module có sẵn trong thư viện với chức năng tương tự

Mỗi tập tin chương trình nguồn có thể được biên dịch và hiệu chỉnh một các độc lập để tạo ra một đối tượng tập tin chương trình tương ứng

Chương trình liên kết được sử dụng để kết hợp tất cả các đối tượng tập tin chương trình một cách chính xác

Tạo một tập tin thực thi chương trình cuối cùng

27

Trang 28

Liên kết - Linker

28

Trang 29

Trình thông dịch - Interpreter

 Interpreter là một trình thông dịch những chương trình được viết bằng ngôn ngữ cấp cao.

 Lấy một lệnh của ngôn ngữ cấp cao chuyển thành ngôn ngữ máy và thực thi ngay lập tức và đưa

ra kết quả

29

Trang 30

Ngôn ngữ trung gian của trình biên dịch và thông dịch

dễ dàng hơn:

Trước hết, trình biên dịch sẽ biên dịch chương trình nguồn sang chương trình đối tượng trung gian

Trình thông dịch nhận chương trình đối tượng trung gian và dịch sang chương trình ngôn ngữ máy và thực thi

30

Trang 31

Thuận lợi và bất lợi của ngôn ngữ cấp cao

Trang 32

Thuận lợi và bất lợi của ngôn ngữ cấp cao

 Hiệu quả thấp hơn vì thời gian thực thi lâu và tốn bộ nhớ

 Ít linh hoạt hơn vì không có cơ chế kiểm soát CPU và bộ nhớ

32

Trang 33

Ngôn ngữ lập trình hướng đối tượng - OOP

 Là ngôn ngữ lập trình mô phỏng các vấn đề của thế giới thực trên máy tính.

 Bản chất của OOP là giải quyết vấn đề bằng cách:

Xác định các đối tượng thế giới thực

Xử lý yêu cầu của các đối tượng

Mô phỏng các đối tượng, tiến trình và giao tiếp giữa chúng

33

Trang 34

Ngôn ngữ lập trình hướng đối tượng -OOP

 Thuận lợi:

Khả năng mô hình hóa gần với tự nhiên

Thiết kế theo hướng modular

Trừu tượng hóa

Liên kết động

Tái sử dụng mã lệnh

Dễ bảo trì

34

Trang 35

Các khái niệm trong lập trình hướng đối tượng

Đối tượng (Object)

Mỗi đối tượng bao gồm một bộ các phương thức và thuộc tính.

Mỗi đối tượng có một tên riêng biệt và tất cả các tham chiếu đến đối tượng đó được tiến hành qua tên của nó

Mỗi đối tượng có khả năng nhận vào các thông báo, xử lý dữ liệu, và trả kết quả

35

Trang 36

Các khái niệm trong lập trình hướng đối tượng

36

Trang 37

Các khái niệm trong lập trình hướng đối tượng

Thông báo (Messages):

Là cơ chế để hỗ trợ giao tiếp giữa các đối tượng

Tất cả các máy tính trong một chương trình được viết bằng một ngôn ngữ OOP được thực hiện bằng cách gửi thông báo cho một đối tượng để gọi các phương thức thực thi

37

Trang 38

Các khái niệm trong lập trình hướng đối tượng

Thừa kế (Inheritance)

Là một cơ chế để chia sẻ mã lệnh và hành vi (phương thức)

Cho phép một lập trình viên tái sử dụng các hành vi của một lớp khi định nghĩa lớp mới

Lớp con có thể kế thừa từ nhiều lớp cha Đây gọi là đa thừa kế

38

Trang 39

Ngôn ngữ lập trình hướng thủ tục

 Quy ước sử dụng thủ tục trừu tượng, đóng gói một dãy các lệnh vào trong một thủ tục

 Vai trò của các thủ tục là chuyển dữ liệu đầu vào được xác định bởi các tham số thành các giá trị.

 Mô hình của ngôn ngữ lập trình hướng thủ tục:

Mạnh về mặt tổ chức và quản lý các hành động và thuật toán

Yếu về cách tổ chức quản lý dữ liệu dùng chung

39

Trang 41

Một số ngôn ngữ lập trình cấp cao

Pascal:

Được tạo ra năm 1971 bởi giáo sư Nicklaus Wirth của Viện Công nghệ liên bang ở Zurich, Thụy Sĩ

Pascal được phát triển dựa trên các khái niệm liên quan đến cấu trúc chương trình, đặc biệt biểu thức điều khiển và cấu trúc lặp

Để tạo ra chương trình có cấu trúc, các chương trình Pascal gồm nhiều khối Mỗi khối bắt đầu bằng BEGIN và kết thúc bằng END

41

Trang 42

Một số ngôn ngữ lập trình cấp cao

 Ví dụ một chương trình viết bằng ngôn ngữ Pascal

42

PROGRAM SUMNUMS (INPUT, OUTPUT);

(* PROGRAM TO COMPUTE THE SUM OF 10 NUMBERS *) (* DECLARATION OF VARIABLES *)

VAR SUM, N : REAL;

Trang 44

Một số ngôn ngữ lập trình cấp cao

 Ví dụ chương trình viết bằng ngôn ngữ C

44

Trang 45

Một số ngôn ngữ lập trình cấp cao

Ngôn ngữ C++

C+ + được phát triển bởi Bjarne Stroustrup tại phòng thí nghiệm Bell vào đầu những năm 1980

C++ chứa tất cả các yếu tố cơ bản của các ngôn ngữ C, nhưng được mở rộng thêm tính năng lập trình hướng đối tượng

C+ + khó học hơn so với C

C+ + hoàn toàn tương thích với C

Chương trình C có thể được biên dịch như là chương trình C++

45

Trang 46

}

Trang 48

Một số ngôn ngữ lập trình cấp cao

 Tính chất của Java:

Chỉ biên dịch một lần, các chương trình Java được biên dịch độc lập và được thông dịch bởi hệ thống “Java Runtime” tại thời gian thực thi của chương trình

Java đơn giản, dễ cài đặt và dễ sử dụng

Java không hỗ trợ kiểu con trỏ và đa thừa kế Do đó, Java được coi là một ngôn ngữ lập trình hướng đối tượng hoàn toàn

Việc biên dịch được thực hiện bởi máy độc lập

48

Trang 49

Đặc điểm của một ngôn ngữ lập trình tốt

Trang 50

Cách chọn ngôn ngữ cho việc xây dựng ứng dụng

 Tính tự nhiên của ứng dụng

 Thân thiện với ngôn ngữ

 Dễ học, dễ sử dụng.

 Có sẵn các công cụ để phát triển chương trình.

 Thực thi hiệu quả

 Mang tính chất của một ngôn ngữ lập trình tốt.

50

Ngày đăng: 10/05/2021, 13:37

🧩 Sản phẩm bạn có thể quan tâm