Website: Email : Tel : 0918.775.368
TÌM HIỂU VỀ CÁC NGÔN NGỮ LẬP TRÌNH
* *
*
I - TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH
- Với sự phát triển như vũ bão của hardware, software cũng phát triển rất
nhiều...Và các chương trình công cụ phát triển ứng dụng cũng không lằm
ngoài tầm ảnh hưởng đó, đặc biệt là sự phát triển các ngôn ngữ lập trình. Hiện
nay có rất nhiều loại ngôn ngữ lập trình như Pascal, C, C++,Visual C++, Java,
Visual Basic....chúng ta không biết là nên chọn ngôn ngữ nào. Đây là những
tìm hiểu của tôi về các ngôn ngữ , ưu điểm và nhược điểm của một số ngôn
ngữ thông dụng hiên nay .
- Ngôn ngữ lập trình là phương tiện để liên lạc giữa con người và máy tính .
Tiến trình lập trình - sựliên lạc thông qua ngôn ngữ lập trình – la một hoạt
động con người. Hiểu theo cách thông thường các đặc trưng tâm lí của một
ngôn ngữ có một tác động quan trọng lên chất lượng của lien lạc. Khi sử dụng
một ngôn ngữ để lập trình bao giờ cũng cần nghiên cứu và tìm hiểu về một số
đặc diểm của ngôn ngữ đó là :
+ Tính gọn gàng của ngôn ngữ lập trình : Là một chỉ dẫn về
khối lượng thông tin hướng chương trình mà trí nhớ con
người phải ghi nhớ . Trong các thuộc tính đo tính gọn gàng
có :
1. Mức độ ngôn ngữ hỗ trợ cho các kết cáu có cấu trúc và
giải quyết các vấn đề khó khăn theo logic
2. Loại từ khoá và cách viết tăt có thể được dùng
3. Sự phong phú của các kiểu ữ liệu và đặc trưng mặc
định
4. Số các phép toán logic và số học
5. Số các hàm có sẵn
+ Tính cục bộ :Là đặc trưng toàn thái của chương trình
+ Tính tuyến tính : Là nhận thức con người được thuận lợi khi
gặp một dãy tuyến tính các thao tác logic.
- Từ đó người lập trình mới rút ra được nhận xét ngôn ngữ nào :
1. Dễ thiết kế để dịch chương trình
2. Trình dịch nào hiệu quả : Chạy nhanh ,yêu cầu bộ nhớ thấp
3. Khả chuyển chương trình gốc tốt :
+ Chương trình gốc có thể được chuyển từ bộ xủ lí này sang bộ
xử lí khác và từ trình biên dịch nọ sang trình biên dịch kia
với rất ít hoặc không phải sửa đổi gì.
+ Chương trình gốc vẫn không thay đổi ngay cả khi môi trường
của nó thay đổi ( như việc cài đặt bản mới của hệ diều hành)
+ Chương trình gốc có thể tích hợp vào trong các bộ trình phần
mềm khác nhau với ít hay không cần thay đổi gì vì các đặc
trưng của ngôn ngữ lập trình .
- 1 -
Website: Email : Tel : 0918.775.368
4. Tính sẵn có của công cụ phát triển : Điều này có thể làm ngắn bớt
thời gian cần để sinh ra chương trình gốcvà có thể cải thiện chất
lượng của chương trình
5. Tính dễ bảo trì : Điều này có tầm quan trọng chủ chốt cho tất cả các
nỗ lực phát triển phần mềm không tầm thường .
II – CÁC LỚP NGÔN NGỮ VÀ ĐẶC ĐIỂM MỘT SỐ NGÔN NGỮ THÔNG
DỤNG
1. Thế hệ thứ 1 : Ngôn ngữ máy được viết bằng các lệnh mã nhị phân : 110001.
Đăcl điểm của ngôn ngữ máy là rất đơn giản,nên việc sử dụng chúng là khó và
tẻ nhạt. Thế mà một số công việc với ngôn ngữ máy thế hệ thứ nhất vẫn còn
được tiếp tục đến ngày nay.
2. Thế hệ thứ 2 : Hợp ngữ, sự lai tạp, thay thế các lệnh ngôn ngữ máy bàng một
ngôn ngữ gợi tả hơn mà ở đó mỗi lệnh được viết bằng một dòng. Ưu điển của
nó là chương trình sau khi biên dịch rất nhỏ gọn , dễ xâm nhập vào hạ tầng hệ
thống . VD mov AH, 12H
3. Thế hệ thứ 3 : Ngôn ngữ lập trình có cấu trúc ra đời đánh dấu bước phát triển
vượt bậc về mặt lập trình, các lập trình viên không còn phải khó nhọc như khi
lập trình hợp ngữ. Ở đây chương trình được module hoá dưới dạng các hàm,
các thủ tục. Đại diện của thế hệ này là Pascal, Fortran, C....
+ Ngôn ngữ Pascal : Là một ngôn ngữ lập trình có cấu trúc cả về phương
diện chương trình lẫn cấu trúc dữ liệu.
- Ưu điểm :
1.Tạo cho người lập trình thói quen làm việc có phương
pháp, có kế hoạch và có ngăn nắp.Nhờ vậy tránh dược
mọi sự hiểu lầm giữa người và máy.
2. Nhờ có cấu trúc mà chương trình sáng sủa ,dữ liệu rành
mạch, rõ ràng, kết quả tính toán tin cậy.
3.Chương trình dịch Pascal luôn được cải tiên, nâng cấp
cho phù hợp với sự phát triển của phần cứng. Các hàm
của nó không ngừng được bổ sung ngày càng phong phú
và tiện ích
- Nhược điểm :
1.Không có giao thức đồ hoạ mà chỉ là nền DOS
2. Phần hướng đối tượng không đươc mạnh .
+ Trong đó ngôn ngữ C : Là một ngôn ngữ thế hệ 3 rất mạnh, phải nói đúng
hơn là C chưa phải là một ngôn ngữ thế hệ 3 toàn vẹn, nó là ngôn ngữ thế
hệ 2,5 thì đúng hơn. Ngôn ngữ C rất mềm dẻo, và hơn nữa với sự xúc tích
của các câu lệnh đã làm C rất được các nhà lập sử dụng làm ngôn ngữ phát
triển ứng dụng của mình. Nhiều ngôn ngũ lập trình khác được viết bằng C.
Sự ưa thích C đã đưa nó đến những phát triển kế tiếp: Visual C, C
Builder...
- Ưu điểm :
1. Được mọi người sử dụng rất nhiều. Dễ tìm Help, thư viện
2. Lõi ngôn ngữ đơn giản, cùng với sự hỗ trợ chức năng trong
suốt quá trình sử dụng thư viện
3. Là ngôn ngữ rất mạnh , rất mềm dẻo
4. Không hề bị ngăn cản khi truy cập tới bộ nhớ
5. Là một trong những ngôn ngữ chạy nhanh nhất
- 2 -
Website: Email : Tel : 0918.775.368
6 . Chương trình biên dịch có thể đứng độc lập
7. Tương tác tốt vớ hệ thống nên dược sử dụng nhiều trong
việc lập trình tương tac với hệ thống
- Nhược điểm :
1.Khó học đặc biệt là phần về con trỏ.
2. Rất ít lưới bảo vệ .Nếu bạn chọn C để làm chương trình thì
khi truy cập bộ nhớ sai thì sẽ làm hỏng kinh khủng đến hệ
thống của bạn và nó sẽ không ngừng ,nó chỉ lôi kéo bạn làm
cho chương trình biên dịch lỗi
3. Không hoàn toàn hướng đối tượng
4. Giao diện đồ hoạ không tốt vì nó hoạt động trên nền DOS
5. Mã có thể trở nên hỗn độn
+ Ngôn ngữ C++ : Là bước phát triển kế tiếp của ngôn ngữ C, ở đây thên
một công cụ lập trình mới, thêm một phương pháp lập trình mới đó là lập
trình hướng đối tượng OOP (Object Oriented Programming). Lập trình
hướng đối tượng là ở đó chương trình được phân hoạch vào các mođule là
các đối tượng có khả năng tự chứa dữ liệu (thuộc tính - Properties), tự giải
quyết các vấn để liên quan (phương thức - Method). Bạn hiểu nôm na như
sau: Một chiếc xe đạp có các thành phần là có 2 bánh, có bàn đạp, có
xích ...Đây được gọi là các thuộc tính của nó. Xe đạp còn có khả năng đi,
dừng, nổ xăm...Đây được gọi là các phương thức của nó...Hiện nay , trên
các hệ điều hành thông dụng như Windows, Linux/Unix..ngôn ngữ C++
được coi là ngôn ngữ chuẩn cho các nhà phát triển phần mềm.
- Ưu điểm : 1.Sử dụng ở mọi nơi
2. Mang đầy đủ sự mềm dẻo của C
3. Là ngôn ngữ lập trình hướng đối tượng rất mạnh . Kĩ
thuật hướng đối tượng bao gồm: hỗ trợ ở mức cao và làm
cho ta có cảm giác tốt nhưng không có tính ép buộc.
4. Dễ mang chuyển đến nền ,máy khác (nếu các nguyên
tắc của C++ được tôn trọng )
5. C++ là ngôn ngữ có ít từ khoá, tạo thuận lợi cho việc
học và sử dụng
6. C++ là ngôn ngữ có cấu trúc module,nghĩa là cho phép
sử dụng nhiều lần các chương trình con dưới dạng các
hàm
7. Có nhiều thư viện sẵn có cho việc thêm các chức năng.
- Nhược điểm : 1. Khá khó học.Bạn sẽ không bao giờ ngừng học cái
mới về nó (đây cũng là ưu điểm)
2.Chương trình chạy chậm hơn chương trình trong C
3. Tương tác ngược với C nên làm hạn chế khả năng
của nó
4. Thế hệ thứ 4 : Là các ngôn ngữ trực quan Visual Basic, Visual C++, C Builder,
Denphi. Là các ngôn ngữ hướng đối tượng mà ở đó một phần modul chương
trình được hỗ trợ lập trình ở mức trực quan, trực tiếp (Ví dụ như phần giao
diện). Nói đúng hơn đây là các ngôn ngữ hướng sự kiện.
+ Ngôn ngữ Visual Basic : Là ngôn ngữ rất dễ dùng của nó tương tự như
giả mã
- 3 -
Website: Email : Tel : 0918.775.368
- Ưu điểm :
1. Dễ học
2. Giao diện tốt.
3. Nhanh cho việc thực thi ứng dụng và thuật toán
4. Gần đây đã hoàn thành việc thêm phần hỗ trợ về hướng
đối tượng cùng với việc hoàn thiện về .Net
- Nhược điểm :
1. Không mềm dẻo bằng các ngôn ngữ khác.Không có khả
năng làm được nhiều thứ .
2. Chạy chậm hơn C/C++.
3. Yếu về xử lí và bắt lỗi kém
4.Chỉ là một sản phẩm Microsoft và căn bản của
Windowns.
+ Ngôn ngữ Delphi : Bắt nguồn từ Object-Pascal, phiên bản 1.0 ra đời trong
những năm 1991-1992 (còn gọi là Delphi 16) chỉ dùng được cho Win3.X,
nghĩa là 16 bit. Phiên bản 2.0 (Delphi 32) ra đời năm 1994 dùng cho
Win95/NT nghĩa là 32 bit thực sự. Hiện nay có bản Delphi 8.0. Delphi có
thể đwowcj xem là một môi trường phát triển phần mềm dựa kết cấu, hướng
đối tượng và trực quan.
- Ưu điểm :
1. Là ngôn ngữ hướng đối tượng
2. Có thể mở rộng các kết cấu sẵn có nếu cần, có nghĩa là tạo
được kế thừa của các kết cấu, còn Basic thì không làm được.
3. Liên kết dễ dàng với mọi loại cơ sở dữ liệu khác như Dbase,
Orcle…
4. Trực quan, có thư viện liên kết động.
- Nhược điểm
1. VB có thể hiện thị mã trong khi ở trong chế độ Debug còn
Delphi thì không
2. Khi biên dịch thì chậm hơn là trong C và C++.
3. Không có sự chồng toán tử
+ Visual C++ : Là ngôn ngữ lập trình dựa trên nền tảng cơ bản của C++ đó
là lập trình hướng đối tượng
- Ưu điểm : Giao diện đồ hoạ tốt
Là ngôn ngữ lập trình hướng đối tượng
Có thể tác dụng sâu vào hệ thống
- Nhược điểm : Là ngôn ngữ tương đối khó học
Chạy chậm hơn C
5. Java : Đây là ngôn ngữ được phát triển từ C/C++ do James ở công ty Sun
Microsytem xây dựng len vào năm 1990. Lúc đầu lấy tên là Oak, sau này được
ứng dụng vào nhiều lĩnh vực mới đổi tên lag JAVA. Được đánh giá là ngôn
ngữ lập trình mạng rất mạnh. Java được xây dựng chủ yếu trong bộ công cụ
phát triển Java (Java Development Kit – JDK) như là thư viện chuẩn, trong đó
chứa các ttrình biên dịch, thông dịch, giúp đỡ, soạn thảo tài liệu…Đó chính là
cáu nền phát triển Java. Với sự phát triển của Java như ngày nay, các nhà phát
triển phần mềm đã xây dựng Java nhiều nhánh mới như Java – thư tín
(JavaMail), Java - Viễn thông (JavaTAPI), ….JDK của chúng ta lại là môi
- 4 -
Website: Email : Tel : 0918.775.368
trường bao trùm hệ thống Java. Hiện nay bản JDK 1.2.1 đã ra đời và là bản
mới nhất.
- Ưu điểm :
1. Hướng đối tượng triệt để.
2. Là ngôn ngữ độc lập, chạy trên mọi hệ điều hành có cài máy
ảo Java.
3. Nó là Free ,có thể Download chương trình SDK
4. Rất dễ học nếu như bạn đã biết C hoặc C++
5. Có khẳ năng tự động cung cáp bộ nhớ quản lí
6. Có khả năng tuỳ biến giao diện theo sự lựa chọn của người
dùng...
- Nhược điểm :
1. Tốc độ khá chậm bởi vì bản chất biên dịch của nó là trên hệ
thống máy ảo
2. Khó khăn cho biên dịch với ứng dụng độc lập.
3. Bộ nhớ con trỏ không cho phép
4. Nhiều người không thích với sự bắt ép của chương trình
hướng đối tượng
6. So sánh giữa VB, Delphi, C : Điểm cao nhất là 10
Ràng
buộc
trong
PT
Thành
phần
cơ
bản
PT
Thư
viện
sẵn
có
CT
sẵn
có
Sự
thực
thi
Dễ
học
Tính
tương
thích
LT
viên
chuyên
nghiệp
Sự hài
lòng
về
nghề
nghiệp
Sự
thăng
tiến
VB 2 7 2 9 6 9 1 4 2 6
Delphi 8 10 4 3 8 7 3 5 7 4
C++ 9 1 8 6 9 2 8 3 5 6
III – NGÔN NGỮ LẬP TRÌNH C/C++
• C/C++ là ngôn ngữ lập trình rất mạnh .Nó là nền tảng để viết nên nhiều ngôn ngữ
như JAVA (ngôn ngữ lập trình mạng khá là mạnh và phổ biến hiện nay), Visual
C++ (là ngôn ngữ lập trình dựoc sử dụng rất rộng rãi trong quản trị cơ sơ dữ liệu,
điện tử, điều khiển do lường, cơ học và quản lí kinh tế ), ngoài ra có rất nhiều hệ
điều hành đã được viết bằng ngôn ngữ C/C++ như : Unix , Window, sau này là
Linux được phát triển từ Unix.
• Tôi đã chọn ngôn ngữ lập trình C/C++ là ngôn ngữ nền tảng cho việc học lập
trình . Vì :
- Tôi đã được tiếp cận với C/C++ .
- Khi ta nắm chắc được C/C++, sẽ tạo điều kiện thuận lợi cho ta có thể
học được các ngôn ngữ lập trình khác mạnh hơn như JAVA, VC++…
- Có rất nhiều người sẽ thắc mắc là tại sao lại phải chọn cả C/C++ mà
không chỉ chọn một trong 2 ngôn ngữ là C hoặc C++ thôi ? Như
chúng ta đã biêt tuy C là ngôn ngữ mạnh và nó rất mềm dẻo nhưng
nhược diểm lớn nhất của nó là không có hướng đối tượng . Còn ngôn
ngữ C++ có đầy đủ nhung nó là một ngôn ngữ khá là khó học nên
trước khi muốn làm quen với C++ thì ta nên học C trước để có thể học
- 5 -