Ngôn ngữ lập trình Pascal kỷ niệm 50 năm

Pascal là một ngôn ngữ lập trình được xuất bản lần đầu tiên vào năm 1970, đây là một ngôn ngữ lập trình ra đời trong những năm đầu của lập trình có cấu trúc và bước sang tuổi 50.

Pascal, được sử dụng trong phát triển phần mềm và đặc biệt có mặt trong giáo dục. Diễn viên của anh ấy, Niklaus Wirth, được truyền cảm hứng từ tác phẩm trước đó của anh ấy về Algol W mà anh ấy không hoàn toàn hài lòng. Trên thực tế, vào cuối những năm 1950, Fortran (FORmula TRANslator) dành cho các ứng dụng khoa học và Cobol (Ngôn ngữ định hướng kinh doanh chung) cho các ứng dụng thương mại đã chiếm ưu thế.

En 1960, một ủy ban quốc tế đã xuất bản ngôn ngữ Algol 60, đây là lần đầu tiên một ngôn ngữ được định nghĩa bằng các cấu trúc công thức ngắn gọn và với một cú pháp chính xác và trang trọng.

Khoảng hai năm sau, cha mẹ anh quyết định sửa chữa một số và cải tiến ngôn ngữ, vì Algol 60 chỉ dành cho máy tính khoa học. Vì vậy, một nhóm làm việc đã được thành lập cho dự án này.

Tuy nhiên, không phải ai cũng đồng ý với các thông số kỹ thuật mới sẽ được thêm vào ngôn ngữ, dẫn đến hai phe trong cộng đồng.

Một trong số họ nhắm đến ngôn ngữ thứ hai với các khái niệm hoàn toàn mới, chưa được thử nghiệm và tính linh hoạt rộng rãi. Wirth không thuộc nhóm con này, người mà đề xuất đã được chấp nhận và sau đó sinh ra Algol 68.

Ông rời nhóm vào khoảng chừng năm 1966 và mở màn cùng với 1 số ít sinh viên Tiến sĩ của Đại học Stanford thiết kế xây dựng một trình biên dịch cho đề xuất kiến nghị mà ông đã đưa ra. Kết quả là ngôn ngữ Algol W vào năm 1967 .
Ông công bố rằng Algol W đã được sử dụng trong nhiều máy tính lớn của IBM. Wirth kể lại rằng Algol W đã rất thành công xuất sắc so với Algol 68. ” Cột mốc Algol 68 Open, và sau đó nhanh gọn rơi vào sự u ám và sầm uất dưới sức nặng của chính nó, mặc dầu 1 số ít khái niệm của nó vẫn sống sót trong những ngôn ngữ tiếp theo “, ông nói .

Tuy nhiên, Algol W không hoàn hảo theo ý thích của cô ấy, vì nó vẫn chứa quá nhiều cam kết, vì nó đến từ hoa hồng.

Wirth sau đó nhận một công việc mới và tìm cách phát triển một ngôn ngữ hoàn toàn mới theo sở thích của riêng mình, mà ông gọi là Pascal. Trong một bản ghi nhớ trên trang web của Hiệp hội Máy tính Máy tính (ACM), một tổ chức phi lợi nhuận quốc tế dành riêng cho lĩnh vực máy tính, ông cho biết công việc này đầy bất ngờ đối với ông và ông và các nhân viên của mình đã phải trải qua một trải nghiệm thảm khốc trong quá trình phát triển.

Họ muốn miêu tả trình biên dịch trong Pascal, dịch nó theo cách thủ công bằng tay trong Fortran, và sau cuối biên dịch thứ nhất với thứ hai .
Wirth cho biết đây là một thất bại lớn, đặc biệt quan trọng là do thiếu cấu trúc tài liệu trong Fortran, khiến bản dịch rất cồng kềnh .
Tuy nhiên, nỗ lực thứ hai đã thành công xuất sắc, thay vì Fortran, ngôn ngữ Scallop đã được sử dụng. Lưu ý rằng Wirth là trợ lý giáo sư tại Đại học Stanford từ năm 1963 đến năm 1967, sau đó tại Đại học Zurich. Sau đó, ông trở thành giáo sư khoa học máy tính tại ETHZ ( Viện Công nghệ Liên bang Thụy Sĩ ở Zurich ), trước khi nghỉ hưu vào tháng 1999 năm XNUMX .

Wirth nói rằng, giống như người tiền nhiệm Algol 60, Pascal có một định nghĩa chính xác và một số điều cơ bản sáng suốt. Các hướng dẫn mô tả việc gán giá trị cho các biến và thực thi có điều kiện và lặp lại. Hơn nữa, đã có các thủ tục và chúng là đệ quy. Theo tác giả, kiểu dữ liệu và cấu trúc là một phần mở rộng quan trọng và kiểu dữ liệu cơ bản của chúng là số nguyên và số thực, giá trị Boolean, ký tự và kiểu liệt kê (của hằng số).

Các cấu trúc là mảng, bản ghi, tệp ( chuỗi ) và con trỏ. Các thủ tục gồm có hai loại tham số : tham số giá trị và tham số biến. Các thủ tục hoàn toàn có thể được sử dụng một cách đệ quy .

Điều cần thiết nhất, ông nói, đó là khái niệm phổ biến về kiểu dữ liệu.

Mỗi hằng số, biến hoặc hàm có kiểu cố định và thắt chặt và tĩnh. Vì vậy, những chương trình gồm có rất nhiều dự trữ mà một trình biên dịch hoàn toàn có thể sử dụng để kiểm tra tính đồng nhất của những kiểu tài liệu. Điều này đã giúp phát hiện lỗi trước khi chạy chương trình .

Fuente : https://cacm.acm.org/