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,...
8/9/18 Chương 3: Ngôn ngữ máy (Computer languages) 8/9/18 Phân loại ngơn ngữ máy • Machine language • Assembly language • High-level language 8/9/18 Ngơn ngữ máy - Machine language • Là ngơn ngữ mà vi xử lý nhận biết thực trực tiếp khơng cần sử dụng chương trình dịch • Thường viết dạng chuỗi bit nhị phân • Thường khó đọc • Lệnh thực thi nhanh lệnh đọc thực thi trực tiếp 8/9/18 Định dạng lệnh ngôn ngữ máy • Opcode- Operation code • Opcode báo cho máy tính thực lệnh tập lệnh máy • Operand (Address/Location) • Operand cho máy tính thực thi địa liệu mà lệnh 8/9/18 Định dạng lệnh ngôn ngữ máy 8/9/18 Ví dụ 8/9/18 Thuận lợi bất lợi ngơn ngữ máy • Thuận lợi: • Lệnh thực nhanh • Bất lợi: • Phụ thuộc vào máy • Khó viết chương trình • Dễ bị lỗi • Khó hiệu chỉnh 8/9/18 Hợp ngữ -Assembly/Symbolic language • Là ngơn ngữ lập trình mà giải hạn chế ngơn ngữ máy • Sử dụng mã chữ số thay mã số cho thị tập lệnh Ví dụ: sử dụng lệnh ADD thay sử dụng lệnh 1110 (Binary) 14 (deciaml) cho lệnh cộng • Cho phép vị trí lưu trữ biểu diễn theo dạng thức địa chữ số thay địa số Ví dụ: biểu diễn vị trí nhớ 1000, 1001, 1002 cho lệnh FIRST, SCND, ANSR 8/9/18 Hợp ngữ -Assembly/Symbolic language • Cung cấp lệnh giả sử dụng để hướng dẫn hệ thống gắn kết lệnh chương trình vào nhớ máy tính Ví dụ: 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 8/9/18 10 Hợp ngữ -Assembly/Symbolic language Ví dụ: Ngơn ngữ máy dạng nhị phân NNM dạng Hex 10111000 00000101 00000000 b8 05 00 mov ax, 10100011 00000000 00000002 a3 00 02 mov [200], ax 10100001 00000000 00000002 a1 00 02 mov ax, [200] 00000101 00001010 00000000 05 0a 00 add ax, 10 10100011 00000010 00000010 a3 02 02 mov [202],ax NN Assembly 8/9/18 36 Các khái niệm lập trình hướng đối tượng • Phương thức: • Các thao tác mà đối tượng thực • Thuộc tính: • Danh sách tính chất mơ tả đối tượng Ví dụ: Đối tượng: Sinh viên Thuộc tính: Họ SV, Tên SV, Ngày Sinh Phương thức: xuất thông tin sinh viên 8/9/18 37 Các khái niệm lập trình hướng đối tượng • Thơng báo (Messages): • Là chế để hỗ trợ giao tiếp đối tượng • Tất máy tính chương trình viết ngôn ngữ OOP thực cách gửi thông báo cho đối tượng để gọi phương thức thực thi 8/9/18 38 Các khái niệm lập trình hướng đối tượng • Thừa kế (Inheritance) • Là chế để chia sẻ mã lệnh hành vi (phương thức) • Cho phép lập trình viên tái sử dụng hành vi lớp định nghĩa lớp • Lớp kế thừa từ nhiều lớp cha Đây gọi đa thừa kế 8/9/18 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 dãy lệnh vào thủ tục • Vai trò thủ tục chuyển liệu đầu vào xác định tham số thành giá trị • Mơ hình ngơn ngữ lập trình hướng thủ tục: • Mạnh mặt tổ chức quản lý hành động thuật tốn • Yếu cách tổ chức quản lý liệu dùng chung 8/9/18 40 Một số ngơn ngữ lập trình cấp cao 1)FORTRAN 2)COBOL 3)BASIC 4)PASCAL 5)PL/1 6)C/C++ 7)C# 8/9/18 41 Một số ngôn ngữ lập trình cấp cao • Pascal: • Được tạo năm 1971 giáo sư Nicklaus Wirth Viện Công nghệ liên bang Zurich, Thụy Sĩ • Pascal phát triển dựa 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 cấu trúc lặp • Để tạo chương trình có cấu trúc, chương trình Pascal gồm nhiều khối Mỗi khối bắt đầu BEGIN kết thúc END 8/9/18 42 Một số ngơn ngữ lập trình cấp cao • Ví dụ chương trình viết ngơn ngữ Pascal PROGRAM SUMNUMS (INPUT, OUTPUT); (* PROGRAM TO COMPUTE THE SUM OF 10 NUMBERS *) (* DECLARATION OF VARIABLES *) VAR SUM, N : REAL; VAR I: INTEGER; (*MAIN PROGRAM LOGIC STARTS HERE *) BEGIN SUM:= 0; FOR I:= TO 10 DO BE GIN READ (N); SUM:= SUM + N; END; WRITELN (“THE SUM OF GIVEN NUMBERS =”, SUM); END 8/9/18 43 Một số ngơn ngữ lập trình cấp cao • Ngơn ngữ C • Ngơn ngữ C phát triển năm 1972 phòng thí nghiệm Bell AT & T, Mỹ Dennis Ritchie Brian Kemiglian • Mục tiêu họ phát triển ngôn ngữ có ưu điểm ngơn ngữ lập trình cấp cao với hiệu ngôn ngữ máy 8/9/18 44 Một số ngơn ngữ lập trình cấp cao • Ví dụ chương trình viết ngơn ngữ C 8/9/18 45 Một số ngơn ngữ lập trình cấp cao • Ngôn ngữ C++ • C+ + phát triển Bjarne Stroustrup phòng thí nghiệm Bell vào đầu năm 1980 • C++ chứa tất yếu tố ngôn ngữ C, mở rộng thêm tính lập trình hướng đối tượng • C+ + khó học so với C • C+ + hồn tồn tương thích với C • Chương trình C biên dịch chương trình C++ 8/9/18 46 Một số ngơn ngữ lập trình cấp cao • Ví dụ chương trình viết ngơn ngữ C++ #include #include int main() { int tong, i, n; tong =0; for(i=0; i