Niklaus Wirth (Swiss) - người sáng lập ngôn ngữ Pascal qua đời tháng 1/2024

Liên hệ QC

ongke0711

Thành viên gắn bó
Tham gia
7/9/06
Bài viết
1,965
Được thích
2,554
Giới tính
Nam
Thật nể phục những gì ông đã đóng góp cho thế giới lập trình. Người sáng tạo ra ngôn ngữ lập trình Pascal và cũng đồng tạo ra ngôn ngữ EULER.
Giờ mới biết thêm các ngôn ngữ như EULER, ALGO... :)

Đọc thêm:
https://www.theregister.com/2024/01/04/niklaus_wirth_obituary/

Screen Shot 2024-01-07 at 08.30.26.png


Screen Shot 2024-01-07 at 08.35.22.png

Screen Shot 2024-01-07 at 08.34.41.png
 
Lần chỉnh sửa cuối:

1704594244721.png
 
Pascal là ngôn ngữ lập trình rất gần với ngôn ngữ con người, số lượng từ khóa không nhiều, cứ IF .. THEN, BEGIN .. END, FOR .. DO viết code như viết văn, đọc dễ hiểu, dễ nhớ, không gây trừu tượng. Hậu duệ nổi tiếng sử dụng ngôn ngữ này (cụ thể là Object Pascal) để phát triển phần mềm dễ dàng là Delphi, Free Pascal, Lazarus.
 
Pascal một thời là ngôn ngữ lập trình học chính thức Tin học đại cương ở các trường ĐH Việt Nam.
Tiếc là môn này hơi nặng tính "lý thuyết" nên khó phát triển, và chỉ duy trì ở mức tư duy lập trình.

PS: Mod nên di chuyển tới mục Chia sẻ thì phù hợp hơn.
Bài đã được tự động gộp:

Pascal một thời là ngôn ngữ lập trình học chính thức Tin học đại cương ở các trường ĐH Việt Nam.
Tiếc là môn này hơi nặng tính "lý thuyết" nên khó phát triển, và chỉ duy trì ở mức tư duy lập trình.

PS: Mod nên di chuyển tới mục Chia sẻ thì phù hợp hơn.
Bài đã được tự động gộp:

Pascal một thời là ngôn ngữ lập trình học chính thức Tin học đại cương ở các trường ĐH Việt Nam.
Tiếc là môn này hơi nặng tính "lý thuyết" nên khó phát triển, và chỉ duy trì ở mức tư duy lập trình.

PS: Mod nên di chuyển tới mục Chia sẻ thì phù hợp hơn.
 
Pascal một thời là ngôn ngữ lập trình học chính thức Tin học đại cương ở các trường ĐH Việt Nam.
Tiếc là môn này hơi nặng tính "lý thuyết" nên khó phát triển, và chỉ duy trì ở mức tư duy lập trình.
Không biết vì lý do gì mà các tài liệu học học lập trình Pascal ở Việt Nam chỉ lập trình dạng thủ tục, không thấy nói về lập trình hướng đối tượng (OOP). Chủ yếu dùng ngôn ngữ Pascal để làm toán, giải thuật, không có tài liệu hướng dẫn lập trình ứng dụng (hoặc mình không tìm thấy ? ). Thực tế Pascal thời xưa đã hỗ trợ lập trình OOP, lập trình với giao diện người dùng TUI - Text User Interface rất tốt dựa trên nền tảng Turbo Vision mà thế giới họ đã dùng để làm phần mềm ứng dụng rồi.
Dưới đây là là hai ví dụ em làm demo lập trình Pascal 7.0 với kiểu ứng dụng TUI.
 
Không biết vì lý do gì mà các tài liệu học học lập trình Pascal ở Việt Nam chỉ lập trình dạng thủ tục, không thấy nói về lập trình hướng đối tượng (OOP). Chủ yếu dùng ngôn ngữ Pascal để làm toán, giải thuật, không có tài liệu hướng dẫn lập trình ứng dụng (hoặc mình không tìm thấy ? ). Thực tế Pascal thời xưa đã hỗ trợ lập trình OOP, lập trình với giao diện người dùng TUI - Text User Interface rất tốt dựa trên nền tảng Turbo Vision mà thế giới họ đã dùng để làm phần mềm ứng dụng rồi.
...
AlGol 60 được ra đời để tiêu chuẩn hóa lập trình cấu trúc và để tách rời khỏi ảnh hưởng của IBM (thời đại thập niên 1960's thì IBM còn là chúa tể).
Tuy nhiên Algol vẫn còn nhiều chỗ bó buộc và rất khó học cho nên Pascal được sử dụng như ngôn ngữ để dạy học. Và vào thời điểm ấy, hầu như tất cả các Đại Học Mẽo ủng hộ điều này.

Ngoài việc dạy học thì kẻ đưa Pascal lên hàng thông dụng là Borland, khi họ cho xài Turbo Pascal miễn phí.

Việc ĐH dạy Pascal vì vậy không chỉ xảy ra ỏ Việt Nam. Mà là hầu hết trên thế giới.

Theo thiển ý của tôi thì nếu không có Unix thì C/C++ khó chen chỗ đứng và Pascal vẫn còn đứng địa vị rất cao. Chú thích: C theo tiêu chuẩn Unix, dùng cấu trúc "thông ống/piping" cho nên chạy rất hiệu quả. Cho đến thời điểm này, tôi vẫn chưa thấy bằng chứng là Pascal hay các hậu duệ của nó cho phép pipe.

LTHĐT (OOP) ngày xưa rất ít người thông suốt (ngày nay, đếm ở VN cũng chẳng có mấy tay). Ngôn ngữ áp dụng được HĐT là ADA và Modula 3.
Tiêu chuẩn "thông suốt" của tôi không cao lắm, nhưng vẫn có thể gọi là khắt khe đối với nhiều người trên diễn đàn này. Đối với tôi, thông suất HĐT thì phải biết:
1. cách bảo vệ các thuộc tính private và trưng bày giao diện.
2. biết và thành thạo cách thiết kế lớp chủ và cách thức thừa kế cho các lớp con cháu.
3. cách làm việc với đa hình thì chỉ cần biết sơ, không quan trọng lắm.
Như vậy mới gọi là LTHĐT. Kỳ dư kiến thức của hầu hết dân diễn đàn này chỉ là sử dụng đối tượng.

Với điều kiện của tôi thì có lẽ Java mới đáp ứng được tốt nhất. Các ngôn ngữ thoát thai từ Java như JavaScript tuy đáp ứng được nhưng thông thường ta viết class trên Java và import chúng vào bài của mình viết trên ngôn ngữ khác.

Chú thích về từ "Piping":
Trong C, ví dụ a có lệnh x = 5 thì 5 là biểu thức bên phải, x là biểu thức bên trái. Piping có nghĩa là cả lệnh trên có thể coi như có trị 5 và có thể dùng để gán qua nơi khác.
y = z = x = 5; // sau lệnh này thì cả x, y, z đều được gán trị 5.
f(x=5); lệnh này gán 5 cho x và nạp 5 làm tham số cho hàm f(int x).
 
...

Theo thiển ý của tôi thì nếu không có Unix thì C/C++ khó chen chỗ đứng và Pascal vẫn còn đứng địa vị rất cao. Chú thích: C theo tiêu chuẩn Unix, dùng cấu trúc "thông ống/piping" cho nên chạy rất hiệu quả. Cho đến thời điểm này, tôi vẫn chưa thấy bằng chứng là Pascal hay các hậu duệ của nó cho phép pipe.

...

Chú thích về từ "Piping":
Trong C, ví dụ a có lệnh x = 5 thì 5 là biểu thức bên phải, x là biểu thức bên trái. Piping có nghĩa là cả lệnh trên có thể coi như có trị 5 và có thể dùng để gán qua nơi khác.
y = z = x = 5; // sau lệnh này thì cả x, y, z đều được gán trị 5.
f(x=5); lệnh này gán 5 cho x và nạp 5 làm tham số cho hàm f(int x).

Các vấn đề khác thì em chưa bình luận, còn về "pipe" theo em biết thì Delphi là hậu duệ của Pascal (tính đến phiên bản mới nhất) không cho phép pipe, kể cả phép tính i++ hay ++i thì các nhà phát triển Delphi cũng không cải tiến. Có ý kiến (trên mạng) nói là họ muốn giữ bản sắc riêng về ngôn ngữ. Một vài yếu tố tiện dụng thực sự của ngôn ngữ khác thì họ đã cải tiến theo, ví dụ như khai báo biến ngay trong các khối lệnh thay vì trước đây phải khai báo trước Begin của hàm, thủ tục, unit, program.

Nếu họ cải tiến giống C về kiểu pipe này thì cũng rất hay.
y = z = x = 5; // sau lệnh này thì cả x, y, z đều được gán trị 5.
 
Pipe là một khái niệm bản sắc của Unix. Nếu theo các hệ thống khác (Windows, Mac,...) thì khái niệm này khá mới. Vì thế, những người bảo vệ Pascal nghĩ vậy cũng đúng.

Việc khai báo biến cùng lúc với gán trị đã được hầu hết các ngôn ngữ cải tiến theo đã trên 10 năm.

++i và i++ chỉ có lợi rõ rệt khi chúng nằm bên phải dấu gán
i1 = ++i + i2; // thay vì i = i + 1; i1 = i + i2;
Chứ các lệnh:
++i;
i += 1;
i = i + 1;
đều như nhau, hầu hết các compilers thông minh đều hiểu cách đơn giản hóa thành lệnh Increment thay vì Add 1.
 
Web KT
Back
Top Bottom