<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>CHƯƠNG 5: </b>
<b>CÁC NGƠN NGỮLẬP TRÌNH</b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">
<b>Chương 5: Các ngơn ngữ lập trình</b>
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
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">
<b>Khái niệm ngơn ngữ lập trình (1)</b>
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
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">
<b>Khái niệm ngơn ngữ lập trình (2)</b>
<b>z Ngơn ngữ lập trình(Programming language) là một</b>
hệ thống dùng để viết các chương trình cho máy tính bao gồm:
•<b>Cú pháp(Syntax): một chuỗi các kí hiệu hợp lệ</b>
•<b>Ngữ nghĩa(Semantic): ý nghĩa của các kí hiệu</b>
<b>z Chương trình (Program) là một tập lệnh (instruction</b>)
<b>điều khiển việc xử lý dữ liệu (data) của máy tínhProgram= Data Structures + Algorithms</b>
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">
<b>Sự tiến hóa của ngơn ngữ lập trình</b>
<b>Machine LanguageAssembly languageHigh Level Language</b>
Được dịch bởi Compiler hoặc Interpreter
Được dịch bởi Assembler
(Pascal, C, C++, Java, C#, Prolog, Lisp, . . .)
(Assembly language)
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">
<b>Machine Language (1)</b>
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
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">
<b>Assembly Language (2)</b>
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">
<b>Assembly Language (3)</b>
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).
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">
<b>Ngôn ngữ lập trình cấp cao</b>
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:
<i>if A > B then print “A larger than B”else print “A less than B”</i>
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
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">
<b>Một số ngôn ngữ lập trình cấp cao</b>
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ư & tố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
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">
<b>Lịch sử phát triển các NNLT</b>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">
<b>Quá Trình Dịch Một Chương Trình</b>
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">
<b>Thông dịch & Biên dịch (1)</b>
Source program<sub>Compiler</sub><sub>Target program</sub>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">
<b>Thông dịch & Biên dịch (2)</b>
Hiển thị lỗi từng dịng lệnh của chương trình nguồn
Trong q 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 tồn bộ chương trình nguồn
thành mã đối tượng.
<b>InterpreterCompiler</b>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="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
</div>