CHƯƠNG 5: CÁC NGÔN NGỮLẬP TRÌNH... Chương 5: Các ngôn ngữ lập trìnhzKhái niệm ngôn ngữ lập trìnhzSự tiến hóa của ngôn ngữ lập trìnhzCác ngôn ngữ lập trình tiêu biểuzBiên dịch và thông dị
Trang 1CHƯƠNG 5:
CÁC NGÔN NGỮLẬP TRÌNH
Trang 2Chương 5: Các ngôn ngữ lập trình
zKhái niệm ngôn ngữ lập trình
zSự tiến hóa của ngôn ngữ lập trình
zCác ngôn ngữ lập trình tiêu biểu
zBiên dịch và thông dịch
zCác phương pháp lập trình
Trang 3Khái niệm ngôn ngữ lập trình (1)
zCon người “nói chuyện” với nhau:
•Ngôn ngữ tự nhiên
zCon người “nói chuyện” với máy tính:
•Ngôn ngữ lập trình
Trang 4Khái niệm ngôn ngữ lập trình (2)
z Ngôn ngữ lập trình(Programming language) là một
hệ thống dùng để viết các chương trình cho máy tính bao gồm:
•Cú pháp(Syntax): một chuỗi các kí hiệu hợp lệ
•Ngữ nghĩa(Semantic): ý nghĩa của các kí hiệu
z Chương trình (Program) là một tập lệnh (instruction)
điều khiển việc xử lý dữ liệu (data) của máy tínhProgram= Data Structures + Algorithms
Trang 5Sự tiến hóa của ngôn ngữ lập trình
Machine LanguageAssembly languageHigh Level Language
Được dịch bởi Compiler hoặc Interpreter
Được dịch bởi Assembler
(Pascal, C, C++, Java, C#, Prolog, Lisp, )
(Assembly language)
Trang 6Machine Language (1)
zLà ngôn ngữ duy nhất được máy tính hiểu trực tiếp
zSử dụng hệ thống số nhị phân để biểu diễn lệnh (Instruction)
zInstruction = mẫu bit (bit pattern) được hiểu bởi phần cứng
Trang 9Assembly Language (2)
Trang 10Assembly Language (3)
zChương trình được viết bằng ngôn ngữ Assembly trước khi đượcthực thi bởi CPU nó phải được dịch sang mã máy (machine code).
Trang 11Ngôn ngữ lập trình cấp cao
z Thân thiện với người sử dụng, bởi vì nó dùng các khái niệm, thuật ngữ gần với ngôn ngữ tự nhiên.
•Ví dụ 1:
if A > B then print “A larger than B”else print “A less than B”
z Chương trình dễ đọc, dễ hiểu, dễ bảo trì z Khả chuyển trên nhiều hệ máy khác nhau
z Chương trình phải được dịch sang mã máy trước khi được thực thi
n*(n-1)! n>0
Trang 12Một số ngôn ngữ lập trình cấp cao
zBASIC, Beginner's All-Purpose Symbolic Instruction Code
•John Kermeny và Thomas Kurtz (1964) tại trường đại học Dartmouth
zCOBOL, COmmon Business Oriented Language,
•Bộ quốc phòng Hoa Kỳ (1960) hình thức tựa tiếng Anh
•Dennis Ritchie, phòng thí nghiệm Bell vào năm 1972
zFORTRAN, FORmula TRANslator
•IBM, John Backus (1957) dành cho khoa học, kỹ sư & toán học
•Niklaus Wirth, Zurich, Thụy Sĩ,1968, giảng dạy lập trình •Blaise Pascal (1623 - 1662) người đầu tiên tạo ra máy tính
Trang 13Lịch sử phát triển các NNLT
Trang 14Quá Trình Dịch Một Chương Trình
Trang 15Thông dịch & Biên dịch (1)
Source programCompilerTarget program
Trang 16Thông dịch & Biên dịch (2)
Hiển thị lỗi từng dòng lệnh của chương trình nguồn
Trong quá trình dịch, nếu phát hiện lỗi, compiler sẽ hiển thị lỗi của toàn bộ chương trình nguồn.
Mỗi lần thực thi chương trình đều phải dịch lại mã nguồn Ælàm cho chương trình chạy chậm.
Mã đối tượng được lưu lại thành các tập tin Obj để sử dụng cho các lần thực thi chương trình sau đó, mà không cần phải dịch lại chương trình Ælàm cho chương trình chạy nhanh hơn
Dịch và thực thi từng dòng lệnh một của chương trình nguồn Dịch toàn bộ chương trình nguồn
thành mã đối tượng.
InterpreterCompiler
Trang 17•Dễ: viết, đọc, hiểu, kiểm lỗi và hiệu chỉnh
zLập trình hướng đối tượng (Object Oriented