VIETBOOK
Trang 1
Tổng quanvềcácngônngữlậptrình
Công việc nào công cụ đó
Trong lập trình, có một câu đơn giản nhng bao giờ cũng có giá trị là: nên chọn công cụ cho phù hợp với
công việc cần làm. Ví dụ nh khi viết các chơng trình truy cập đến các cấp thấp của máy tính, bạn nên
dùng ASSEMBLER. ở các chơng trình đơn giản, nếu lậptrình cấu trúc hay hớng đối tợng thì chỉ thêm
mất thời gian. Tuy vậy cũng có những chơng trình yêu cầu bạn phải lậptrình hớng đối tợng ví dụ nh
tạo hệ cửa sổ giao tiếp đồ hoạ.
Bài viết này sẽ trình bày tổngquanvề một số ngônngữlậptrình đang phổ biến hiện nay, đó là cácngôn
ngữ: PASCAL, C, C++, JAVA, VISUAL BASIC.
I. Ngônngữlậptrình PASCAL
Đây là ngônngữ do giáo s Niklaus Wirth thiết kế vào năm 1970 với mục đích giảng dạy ý niệm lập
trình có cấu trúc. Nhng sau một thời gian do tính u việt của nó nên PASCAL đã đợc sử dụng rộng dãi.
PASCAL là ngônngữlậptrình bậc cao. Trớc khi PASCAL đợc phát triển thì việc lậptrình đợc thực
hiện trên cácngônngữ cấp thấp, cáclậptrình viên rất khó khăn trong việc xây dựng các chơng trình lớn.
PASCAL dùng ngônngữ sát với ngônngữ tự nhiên hơn do đó nó thân thiện với ngời lậptrình hơn. Do vậy
nó giảm bớt các công việc nặng nhọc cho ngời lập trình.
PASCAL kết hợp giữa đặc tính gọn, dễ nhớ, khả năng truy cập cấp thấp, và các cấu trúc giữ liệu đa dạng.
PASCAL còn hỗ trợ khả năng đa các chơng trình viết bằng ASSEMBLER vào chơng trình của bạn, khả
năng đồ hoạ và hớng đối tợng.
PASCAL là ngônngữlậptrình có cấu trúc. Tính cấu trúc của PASCAL đợc thể hiện qua 3 yếu tố: cấu
trúc trong dữ liệu, cấu trúc trong các toán tử và cấu trúc trong công cụ thủ tục.
Tính cấu trúc của dữ liệu đợc thể hiện qua phần mô tả. Cũng nh các ngônngữlậptrình khác, PASCAL
có một số kiểu dữ liệu đợc định nghĩa sẵn và các phép toán trên các kiểu dữ liệu này. Từ các kiểu dữ liệu
đó, ngời lậptrình có thể xây dựng các kiểu dữ liệu phức tạp hơn. Sau đó để khai báo đối tợng thuộc kiểu
dữ liệu phức tạp đó ta không cần trình bày lại cấu trúc thiết lập, mà chỉ cần tham chiếu đến kiểu đó.
Tính cấu trúc của các toán tử đợc thể hiện ở chỗ bên trong các toán tử thực hiện một động tác, còn có
VIETBOOK
Trang 2
các toán tử thực hiện nhiều động tác, song sự quan trọng nhất của PASCAL là toán tử hợp thành. Toán tử
hợp thành đợc xây dựng bắt đầu bằng từ khoá BEGIN, sau đó đến dãy các toán tử thành phần và kết thúc
bằng từ khoá END.
Tính cấu trúc trong công cụ thủ tục thể hiện thông qua khả năng phân tích chơng trình thành các modul
độc lập và lời gọi đệ quy thủ tục.
PASCAL không phải là ngônngữ khó học hơn ngônngữ dành cho những ngời mới bắt đầu làm quen với
lập trình (BASIC) nhng nó lại tỏ ra có những đặc tính cấu trúc hoá tốt hơn và không có những cú pháp
mang lỗi.
PASCAL không phân biệt chữ hoa và chữ thờng, do vậy ngời lậptrình có thể thoải mái hơn trong việc
viết các câu lệnh và đặt tên cho các đối tợng của mình.
Việc dịch một chơng trình viết bằng PASCAL đợc thực hiện bằng một trình biên dịch. Khi chơng
trình chứa một lỗi cú pháp nào đó thì mã máy sẽ không đợc sinh ra. Còn nếu không có lỗi thì sau khi dịch
xong sẽ nhận đợc một bản mã đối tợng.
Với những chơng trình lớn thì dùng ngônngữlậptrình có cấu trúc để quản lý sẽ là rất khó khăn, vì vậy
để đáp ứng nhu cầu của ngời lậptrình những phiên bản của PASCAL về sau này đã có hỗ trợ lậptrình
hớng đối tợng.
Do mục đích ban đầu của PASCAL và các đặc điểm của nó, PASCAL rất thích hợp dùng để giảng dạy
trong các nhà trờng và cho những ngời mới bắt đầu học lập trình. Còn đối với những bài toán ứng dụng
trong thực tế thì PASCAL ít đợc sử dụng.
I. Ngônngữlậptrình C
1. Ngônngữ C đợc phát triển từ ngônngữ B trên máy UNIX. Đến nay ANSI ban hành chuẩn về C.
2.
3. Cũng giống nh PASCAL, C là ngônngữlậptrình có cấu trúc. Nhng nói chặt chẽ về mặt kỹ thuật
thì C không phải là ngônngữlậptrình có câud trúc chính cống vì trong C không cho phép các khối lồng
nhau (chẳng hạn bạn không thể khai báo hàm này trong hàm khác).
4.
5. C là ngônngữ cấp trung vì nó cho phép thao tác trên các bit, byte, và địa chỉ. C kết hợp các yếu tố
mềm dẻo của ngônngữ bậc cao và khả năng điều khiển mạnh của ASSEMBLER. Do vậy, C tỏ ra thích hợp
với lậptrình hệ thống.
6.
VIETBOOK
Trang 3
7. Chơng trình viết bằng C là tập hợp các hàm riêng biệt, giúp cho việc che giấu mã và giữ liệu trở nên
dễ dàng. Hàm đợc viết bởi những ngời lậptrình khác nhau không ảnh hởng đến nhau và có thể đợc
biên dịch riêng biệt trớc khi ráp nối thành chơng trình.
8.
9. So với PASCAL thì C thoáng hơn, chẳng hạn C không kiểm tra kiểu khi chay, điều này do ngời lập
trình đảm nhiệm.
10.
11. C tỏ ra ít gắn bó hơn so với cácngônngữ bậc cao, nhng C lại thực tế hơn so với cácngônngữ khác.
12.
13. Một đặc điểm nổi bật của C là C có tính tơng thích cao. Chơng trình viết bằng C cho một loại máy
hoặc hệ điều hành này có thể chuyển dễ dàng sang loại máy hoặc hệ điều hành khác. Hiện nay hầu hết các
loại máy tính đều có trình biên dịch C.
14.
15. Một chơng trình đợc viết bằng C sẽ có tối u, chạy với tốc độ cao và tiết kiệm bộ nhớ.
16.
17. Tuy vậy, C chỉ thích hợp với những chơng trình hệ thống hoặc những chơng trình đòi hỏi tốc độ.
Còn nếu bài toán lớ và phức tạp thì cũng nh PASCAL, C cũng rất khó kiểm soát chơng trình.
I. Ngônngữ C++
1. Ngônngữ C++ đợc phát triển từ ngônngữ C. Có thể coi C++ là một cải tiến của C. Nó mang đầy đủ
các đặc tính của C. Một chơng trình viết bằng C có thể biên dịch đợc bằng trình biên dịch của C++. ở
những phiên bản đầu tiên, thực chất mã nguồn C++ đầu tiên đợc dịch sang mã nguồn C, rồi từ mã nguồn C
tiếp tục đợc biên dịch tiếp.
2.
3. C++ là ngônngữlậptrình hớng đối tợng, do vậy nó có đầy đủ các tính chất của một ngônngữlập
trình hớng đối tợng: tính kế thừa, tính đóng kín và tính đa dạng.
4.
5. Nhng C++ không phải là ngônngữ hớng đối tợng hoàn toàn mà là ngônngữ đa hớng. Vì C++
hỗ trợ cả lậptrình hớng hành động và lậptrình hớng đối tợng.
6.
7. C++ kết hợp những ý tởng hay nhất của lậptrình có cấu trúc với việc phân chia một bài toán thành
các nhóm nhỏ có quan hệ với nhau, mỗi nhóm con đó là một đối tợng chứa các lệnh và dữ liệu riêng của
nó.
8.
9. C++ đa vào các khái niệm hàm ảo, quá tải hàm, quá tải toán tử cho phép tạo ra các kiểu dữ liệu trừu
tợng, hỗ trợ thừa kế bội.
10.
11. Mục tiêu của C++ là tiếp cận những ý tởng của phơng pháp luận hớng đối tợng và trừu tợng dữ
VIETBOOK
Trang 4
liệu.
12.
13. Các đặc tính của C ++ cho phép ngời lậptrình xây dựng những th viện phần mềm có chất lợng
cao phục vụ những đề án lớn.
14.
15. C++ là ngônngữ thích hợp cho việc xây dựng những chơng trình lớn nh các hệ soạn thảo, chơng
trình dịch, các hệ quản trị cơ sở dữ liệu, các hệ truyền thông,
I. Ngônngữlậptrình JAVA
JAVA đợc tạo ra trớc năm 1990 bởi nhóm các nhà phát triển của Sun Microsystem có nhiệm vụ phải
viết phầm mềm hệ thống để nhúng vào các sản phẩm điện tử của khách hàng. Họ đã khắc phục một số hạn
chế của C++ để tạo ra ngôn ngữlậptrình JAVA.
Do đợc phát triển từ C++ nên JAVA rất giống C++. Nhng JAVA là ngônngữ hớng đối tợng hoàn
toàn, còn C++ là ngônngữ đa hớng.
JAVA là ngôn ngữlậptrình mạnh vì nó hội tụ đợc các yếu tố sau:
1. JAVA là ngônngữ hớng đối tợng (object oriented programming): Các ngônngữlậptrình hớng
đối tợng có các modul có thể thay đổi và đợc xác định trớc mà ngời lậptrình có thể gọi ra để thực hiện
những nhiệm vụ cụ thể. Trong JAVA các modul này gọi là các lớp (class) và chúng đợc lu trữ trong th
viện lớp tạo nên cơ sở của bộ công cụ phát triển JAVA (Java Development Kit). Trong JAVA tất cả các hàm
và biến đều phải là thành phần của một lớp.
2.
3. Đơn giản (simple): Mặc dù dựa trên cơ sở của C++ nhng JAVA đã đợc lợc bỏ các tính năng khó
nhất của C++ làm cho ngônngữ này dễ dùng hơn. Do vậy việc đào tạo một lậptrình viên JAVA ngắn hơn
và JAVA trở nên thân thiện với ngời sử dụng hơn. Trong JAVA không có các con trỏ, không hỗ trợ toán tử
Overloading, không có tiền xử lý. Tất cả mọi đối tợng trong một chơng trình JAVA đều đợc tạo trên
heap bằng toán tử new - chúng không bao giờ đợc tạo trên stack. JAVA cũng là ngônngữ gom rác
(garbage - collected language), vì vậy nó không cần đếm từng new với delete - một nguồn bộ nhớ chung để
thất thoát trong các chơng trình của C++. Trong thực tế không có toán tử delete trong JAVA.
4.
5. Đa luồng (multithread): Có nghĩa là JAVA cho phép xây dựng cáctrình ứng dụng, trong đó, nhiều
quá trình có thể xảy ra đồng thời. Tính đa luồng cho phép các nhà lậptrình có thể biên soạn các phần mềm
đáp ứng tốt hơn, tơng tác hơn và thực hiện theo thời gian thực.
6.
VIETBOOK
Trang 5
7. Có thể nói JAVA là ngônngữlậptrình cho Web:
8.
9. Hiểu mạng: JAVA đợc viết ra để hoạt động trên mạng và có các thủ tục để có thể quản lý các giao
thức TCP/IP, FTP, HTTP. Nói cách khác JAVA đợc xây dựng để hoàn toàn tơng thích trên Internet.
10.
11. JAVA cho phép tạo ra các trang Web động, các ứng dụng nhúng.
12.
13. An toàn: Đặc tính an toàn của ngônngữlậptrình này bắt nguồn từ việc nó có những phần hạn chế
đợc cài đặt sẵn nhằm đề phòng các chơng trình JAVA thực hiện các chức năng nh ghi vào ổ cứng hoặc
cho phép vi rút xâm nhập vào từ mạng.
14.
15. JAVA độc lập với cấu trúc máy: Đây là thuộc tính đặc sắc nhất của JAVA. Có nghĩa là JAVA không
phụ thuộc vào hệ máy, các ứng dụng bằng JAVA có thể dùng đợc trên hầu nh mọi máy tính.
I. VISUAL BASIC
VISUAL BASIC là một môi trờng lậptrình đợc phát triển bởi Microsoft nhằm cung cấp cho những
ngời lậptrình một phơng pháp phát triển các ứng dụng trên Windows nhanh và dễ nhất.
VISUAL BASIC cung cấp cho ngời lậptrình một môi trờng tích hợp, nơi mà ngời lậptrình có thể sử
dụng các công cụ để tạo ra giao diện ngời sử dụng một cách nhanh chóng và dễ dàng tạo ra mã để trả lời
lại các tác động từ phái ngời sử dụng. VISUAL BASIC cung cấp cho ngời lậptrình cả kỹ thuật lậptrình
hớng sự kiện và kỹ thuật lậptrình hớng đối tợng.
Môi trờng phát triển của VISUAL BASIC có những công cụ soạn thảo và gỡ rối tinh vi, nó cho phép
ngời lậptrình gắn mã với giao diện một cách nhanh chóng cho mỗi sự kiện.
VISUAL BASIC cung cấp cho bạn một giao diện nhanh nhất nhng bù lại bạn phải cũng phải trả giá về
tốc độ. Do vậy nếu yêu cầu bài toán cần đến tốc độ thì bạn nên dùng C++.
Tài liệu tham khảo
1. Extending Turbo C Professional (Al Stevens)
2. Programming with class (Samuel N. Kamin/ Edward M.Reingold)
3. The Official Visual Basic Programmer's Journal Guide to Visual Basic 4.0 (QUE)
4. Mcrosoft Visual Basic Programming System for Windows Version 4.0 (Microsoft Corporation)
VIETBOOK
Trang 6
5. Turbo Pascal 6.0 (CMT)
6. Kỹ thuật lậptrình Pascal nâng cao (Phạm văn ất)
7. Kỹ thuật lậptrình C cơ sở và nâng cao (Phạm văn ất)
8. C++ kỹ thuật và ứng dụng (Scott Robert Land - bản dịch)
9. Lậptrình bằng C++ (Dơng Tử Cờng)
10. Lập trìng C++ nh thế nào ? (Hoàng Ngọc Giao)
11. Lậptrình hớng đối tợng C++ (Trần Văn Lăng)
12. Tạp chí Điện Tử & Tin Học số 12/1996 (The VietNam Journal Of Electronics An Informatics)
13. Trên Web site của CSE
. việc lập trình đợc thực
hiện trên các ngôn ngữ cấp thấp, các lập trình viên rất khó khăn trong việc xây dựng các chơng trình lớn.
PASCAL dùng ngôn ngữ. chơng trình yêu cầu bạn phải lập trình hớng đối tợng ví dụ nh
tạo hệ cửa sổ giao tiếp đồ hoạ.
Bài viết này sẽ trình bày tổng quan về một số ngôn ngữ lập