Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã ng[r]
(1)Trường THPT Gia Định Họ tên học sinh: Trương Minh Tri
Môn: Tin học 10 Học sinh lớp : 10CH
BÀI 5: Ngôn ngữ lập trình
I) Ngôn ngữ máy:
_ Mỗi loại máy tính đều có ngôn ngữ máy của nó Viết các chương trình bằng ngôn ngữ máy, người khai thác triệt để được đặc điểm phần cứng của máy Từ một chương trình khác, muốn thực hiện máy tính thì ta phải dùng chương trình dịch để dịch
Mô phỏng cách dịch từ ngôn ngữ cấp cao sang ngôn ngữ máy _ Các lệnh viết bằng ngôn ngữ máy thường ở dạng hệ nhị phân hoặc hệ hexa
_ Nhược điểm:
+ Không thuận lợi cho người việc viết hoặc hiểu chương trình + Nhớ một cách máy móc các dòng số không gợi ý nghĩa
+Dùng nhiều câu lệnh để diễn tả chi tiết thao tác của thuật toán Một số ngôn ngữ lập trình khác đã được phát triển
II) Hợp ngữ: (assembly language)
_ Hợp ngữ một ngôn ngữ cấp thấp dùng để viết các chương trình máy tính.
Qua 4, ta thấy rằng: Việc diễn tả thuật toán bằng cách liệt kê hoặc sơ đồ khối chưa cho máy khả tự thực hiện thuật toán
Ta cần diễn tả thuật toán bằng ngôn ngữ mà máy tính hiểu được:
Kết quả diễn tả thuật toán vậy cho ta một chương trình , còn ngôn ngữ để viết chương trình ngôn ngữ lập trình.
(2)Hình ảnh ví dụ về hợp ngữ
_So với ngôn ngữ máy, hợp ngữ cho phép người lập trình sử dụng một số thuật ngữ tiếng Anh để thể hiện các lệnh cần thực hiện
_ Một chương trình được viết bằng hợp ngữ phải được dịch ngôn ngữ máy tính thông qua một chương trình gọi chương trình hợp dịch (Assembler).
“Thông thường, một trình hợp dịch hiện đại tạo mã nhị phân (object code) bằng cách phiên dịch các lệnh hợp ngữ thành mã thực thi (opcodes) phân tích các biểu danh (symbolic names) ứng với các vùng nhớ cùng các thực thể khác Việc dùng các biểu danh để tham chiếu một tính then chốt của các trình hợp dịch, nó tiết kiệm một khối lượng lớn công việc tính toán sửa đổi thủ công sau mỗi lần cải tiến ứng dụng Hầu hết các trình hợp dịch đều hỗ trợ macro nhằm giúp cho việc thay thế một nhóm lệnh bằng một định danh ngắn gọn Trong quá trình dịch, nhóm lệnh tương ứng sẽ được chèn trực tiếp vào vị trí macro thay vì một lời gọi hàm (subroutine) Các trình hợp dịch nói chung dễ tạo so với các chương trình dịch cho ngôn ngữ cấp cao”
Ví dụ: * Ta cộng giá trị hai AX BX bằng một lệnh của hợp ngữ sau: ADD AX, BX
* Bộ vi xử lý x86/IA-32 có thể thực hiện được chỉ thị nhị phân sau: 10110000 01100001 (thập lục phân: 0xb061) bằng một hợp ngữ dễ nhớ hơn: mov al, 061h
_Nhược điểm: thuận lợi cho các nhà lập trình chuyên nghiệp chưa thật sự thích hợp với đông đảo người lập trình
III)Ngôn ngữ bậc cao:
_Từ đầu những thập kỷ năm mươi của thế kỷ XX, người ta xây dựng những ngôn ngữ lập trình bậc cao _Đặc điểm: câu lệnh được viết với ngôn ngữ tự nhiên hơn, có tính độc lập cao, ít phụ thuộc vào các loại máy cụ thể
_Giống hợp ngữ, mỗi ngôn ngữ lập trình bậc cao đều cần một chương trình dịch để dịch những chương trình viết bằng ngôn ngữ sang ngôn ngữ sang ngôn ngữ máy
(3)“Fortran (hay FORTRAN) một ngôn ngữ lập trình biên dịch, tĩnh, kiểu mệnh lệnh được phát triển từ thập niên 1950 được dùng nhiều tính toán khoa học hay phương pháp số cho đến nửa thế kỷ sau đó Tên gọi ghép lại từ tiếng Anh Formula
Translator/Translation nghĩa dịch công thức Các phiên bản đầu có tên chính thức
FORTRAN, chữ hoa được chuyển sang chữ thường từ phiên bản Fortran 90 Tiêu chuẩn quốc tế cho tên gọi ngày "Fortran” _ Một số phiên bản tiêu biểu: Fortran IV, Fortran 77, Fortran 90, Fortran 95, Fortran 2003.
_ Một số lệnh FORTRAN: lệnh gán, lệnh gọi chương trình (có các cấu trúc rẽ nhánh hoặc lặp)
Ví dụ: Chương trình “Chào thế giới”
COBOL (Common Business-Oriented Language) (1959)
_COBOL một ngôn ngữ lập trình thế hệ thứ ba một những ngôn ngữ lập trình lâu còn được sử dụng (từ thập niên 1960)
_Ưu điểm của ngôn ngữ lập trình COBOL:
COBOL có nhiều chức để xử lý tập tin, theo cách xử lý hàng loạt (batch processing) Không có ngơn ngữ có chức ngồi COBOL
COBOL dễ viết, dễ đọc lại để sửa hoặc viết thêm vào (rất quan trọng đối với thế giới chuyên nghiệp vì người viết chương trình có thể rời công ty 20, 30 năm sau, mà chương trình tiếp tục chạy)
_ Hiện tại Cobol ngôn ngữ chạy nhiều các máy vi tính Mainframe, hằng ngày, hàng triệu dòng Cobol được viết những chương trình "Business"
_ Năm 2006, công ty nghiên cứu thị trường công nghệ thông tin, Gartner, thông báo rằng hiện tại 60% các chương trình chuyên nghiệp được viết hằng ngày được viết bởi ngôn ngữ COBOL
Ngôn ngữ lập trình FORTRAN (FORmula TRANslator) của hãng IBM vào năm 1954 với cha đẻ của nó: Mr John Backus
1 program chaothegioi
2
3 print*,"Chao The Gioi!"
4
5 end program chaothegioi
6
(4) Algol 60 (ALGOrithmic Language 1960) và BASIC ( Beginner’s All-purpose Symbolic Instruction Code) (1965)
Các câu lệnh được viết bằng chương trình Algol 60 Ngôn ngữ lập trình của chương trình BASIC _ Đặc biệt, phần mềm OpenOffice , một bộ ứng dụng văn phòng cạnh tranh với MS Office cũng được viết trên nền BASIC Chúng ta biết ngôn ngữ BASIC qua những cái tên quen thuộc VisualBasic, MSX Basic ngôn ngữ BASIC được viết chủ yếu dựa nền FORTRAN II một phần của Algol 60
PASCAL (9/1968)
_ Pascal một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh, được Niklaus Wirth phát triển vào năm 1970 ngôn ngữ đặc biệt thích hợp cho kiểu lập trình có cấu trúc
procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k);
value n, m; array a; integer n, m, i, k; real y;
comment The absolute greatest element of the matrix a, of size n by m
is transferred to y, and the subscripts of this element to i and k;
begin integer p, q; y := 0; i := k := 1;
for p:=1 step until n do for q:=1 step until m do if abs(a[p, q]) > y then begin y := abs(a[p, q]); i := p; k := q
end end Absmax
10 INPUT "What is your name: ", U$ 20 PRINT "Hello "; U$
30 INPUT "How many stars you want: ", N
40 S$ = ""
50 FOR I = TO N 60 S$ = S$ + "*" 70 NEXT I
80 PRINT S$
90 INPUT "Do you want more stars? ", A$
100 IF LEN(A$) = THEN GOTO 90 110 A$ = LEFT$(A$, 1)
120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30
130 PRINT "Goodbye "; U$ 140 END
Hai cha đẻ của ngôn ngữ lập trình BASIC:
(5)_Mọi chương trình Pascal bắt đầu bằng từ khóa Program, cùng với một danh sách tùy chọn các phần mơ tả các tập tin ngồi sau đó một khối các dòng lệnh nằm giữa các từ khóa Begin End
_Pascal, nguyên thể đơn thuần ngôn ngữ lập trình thủ tục với một loạt các từ khóa chuẩn if, while, for, các thành phần khác
_Pascal có các kiểu đơn integer (số nguyên), character (ký tự), boolean (logic), v.v enumerations (liệt kê), kiểu mới được đưa vào Pascal sau
C++ và Java
_C++ một loại ngôn ngữ lập trình Đây một dạng ngôn ngữ đa mẫu hình tự có kiểu tĩnh hỗ trợ lập trình thủ tục, dữ liệu trừu trượng, lập trình hướng đối tượng, lập trình đa hình Từ thập niên 1990, C+ + trở thành một những ngôn ngữ thương mại phổ biến nhất.
_Java một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP) Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy Bằng cách này, Java thường chạy nhanh những ngôn ngữ lập trình thông dịch khác Python, Perl, PHP,
Nikalus Wirth – cha đẻ của ngôn ngữ lập trình Pascal
1 program
ChaoThegioi(output);
2
3
4
5 begin
6
7 writeln('Chao The gioi!');
8
9 end
10
Một đoạn mã viết bằng ngôn ngữ PASCAL
Hai nhà sáng lập C++ Java , hai loại ngôn ngữ lập trình thông dụng hiện nay:
(6)Một đoạn mã viết bằng ngôn ngữ lập trình C++ Một đoạn mã viết bằng ngôn ngữ lập trình Java
oOo class Nguoi
2
3 {
4
5 public:
6
7 virtual void Chao() // Hàm ảo
8
9 {
10
11 cout << "Toi chua biet chao";
12
13 };
14
15 };
16
17
// -18
19 class NguoiViet : public Nguoi
20
21 {
22
23 public:
1 /* Example.java */
2
3
4
5 public class Example
6
7 {
8
9 public static void main(String args[])
10
11 {
12
13 System.out.println("Hello World");
14
15 }
16
17 }
(batch Mainframe