DoD nghĩ Fortran thiếu gì?
Dựa theo https://en.wikipedia.org/wiki/COBOL dự án thiết kế COBOL bắt đầu khi
Vào ngày 28 và 29 tháng 5 năm 1959 (đúng một năm sau cuộc họp Zürich ALGOL 58), một cuộc họp đã được tổ chức tại Lầu Năm Góc để thảo luận về việc tạo ra một ngôn ngữ lập trình chung cho doanh nghiệp. Nó có sự tham gia của 41 người và do Phillips chủ trì. [20] Bộ Quốc phòng lo ngại về việc liệu nó có thể chạy các chương trình xử lý dữ liệu giống nhau trên các máy tính khác nhau hay không. FORTRAN, ngôn ngữ chính thống duy nhất vào thời điểm đó, thiếu các tính năng cần thiết để viết các chương trình như vậy.
FORTRAN thiếu những tính năng nào mà Bộ Quốc phòng cho rằng cần thiết để viết phần mềm kinh doanh di động? Hai tôi có thể nghĩ đến là số học thập phân và các bản ghi có các trường được đặt tên; đó là những gì DoD đã nghĩ đến, hay họ đang nghĩ về điều gì đó khác chưa xảy ra với tôi?
Trả lời
Cuộc họp xác định các yêu cầu của ngôn ngữ mới diễn ra vào ngày 28–29 tháng 5 năm 1959. Vài tháng sau Charles Phillips đã chuẩn bị một bản ghi nhớ tóm tắt các quyết định được đưa ra tại cuộc họp đó. Danh sách các yêu cầu của nó được in lại trên trang 201 của Lịch sử các ngôn ngữ lập trình của ACM .
a. Đa số nhóm được hỗ trợ sử dụng tối đa ngôn ngữ tiếng Anh đơn giản; mặc dù một số người tham gia cho rằng có thể có lợi thế từ việc sử dụng biểu tượng toán học.
b. Một số ít người đề nghị chúng ta tránh xa ngôn ngữ định hướng vấn đề vì tiếng Anh không phải là thuốc chữa bách bệnh vì nó không thể được sử dụng như các biểu thức đại số có thể.
c. Nhu cầu là một ngôn ngữ lập trình dễ sử dụng hơn , ngay cả khi có phần kém mạnh mẽ hơn.
d. Chúng ta cần mở rộng cơ sở của những người có thể nêu vấn đề với máy tính.
e. [Ngôn ngữ kinh doanh thông thường] không được thiên vị bởi các vấn đề trình biên dịch hiện tại.
Ủy ban đã không coi FORTRAN là một giải pháp thay thế. Theo Jean E. Sammet, người từng là chủ tịch (Cô ấy tự mô tả mình là “chủ tịch”) của hai trong số các ủy ban đã phát triển COBOL và phục vụ ở một phần ba, nguồn cảm hứng chính là FLOW-MATIC (được phát triển bởi Grace Hopper và những người khác cho Remington -Rand Univac), AIMACO (được phát triển bởi Air Materiel Command dựa trên công trình của Hopper, và được Sammet mô tả là “một sửa đổi nhỏ của FLOW-MATIC”) và COMTRAN (Trình dịch thương mại, vào thời điểm đó tồn tại như một sổ tay hướng dẫn tại IBM, và chưa bao giờ được thực hiện). Sammet tuyên bố rằng FACT, được phát triển tại Honeywell, ít ảnh hưởng hơn đến COBOL so với một số người đã tin tưởng.
Toàn bộ chương tôi liên kết đến có ghi chú rộng rãi mà Sammet đã lấy vào thời điểm đó từ ủy ban phát triển COBOL và các quyết định mà ủy ban đã đưa ra.
Cô ấy đưa ra lời thừa nhận đặc biệt thú vị trên trang 221:
Tôi cảm thấy có sự thiên vị chống IBM mạnh mẽ trong ủy ban này từ tôi và từ một số (nhưng chắc chắn không phải tất cả) những người khác. Vì tôi không làm việc cho IBM vào thời điểm đó, tôi có thể thoải mái (mặc dù không tự hào) thừa nhận rằng trong một số trường hợp, các đề xuất hoặc quyết định được đưa ra trên cơ sở làm những việc khác với cách IBM đã làm. Ví dụ, chúng tôi cảm thấy rằng động từ điều khiển vòng lặp không nên được gọi
DOvì đó là cách FORTRAN đã làm điều đó.
Sammet liệt kê trong số các ý tưởng COBOL lấy từ FLOW-MATIC, "Nó sử dụng tên dữ liệu đầy đủ chứ không phải tên tượng trưng ngắn (như trong FORTRAN)", ví dụ SOCIAL-SECURthay vì SOCSEC, và sử dụng các từ tiếng Anh làm lệnh. Ít thẩm mỹ hơn, nó cho phép các trường được đóng gói thành một từ dữ liệu. Cô ấy nói, "Lưu ý rằng Fortran giả định rằng mọi số đều nằm trong một từ máy duy nhất." Nó tách các định nghĩa dữ liệu ra khỏi các hướng dẫn, mà theo cô ấy đã trở nên phổ biến đến mức rất khó để đánh giá đó là bước đột phá về khái niệm.
Trong số các ý tưởng mà cô ấy liệt kê là đến từ COMTRAN là cấu trúc dữ liệu, biểu thức và điều kiện lồng nhau. Vào thời điểm đó, việc cho phép các công thức toán học và thậm chí cả biểu thức Boolean đã gây tranh cãi vì một số thành viên ủy ban tin rằng chúng chỉ cần thiết trong một vài trường hợp cạnh.
Cô ấy cũng nói rằng IAL, được phát triển thành ALGOL, đã có một ảnh hưởng đáng kể, bằng cách thuyết phục ủy ban không làm theo ví dụ của nó, và thay vào đó chỉ cho phép trong mã nguồn của nó những ký tự thực sự tồn tại.
FORTRAN, vào thời điểm đó (* 1), thiếu hầu hết mọi thứ, từ xử lý chuỗi đến tất cả I / O bên cạnh việc đọc số từ thẻ hoặc băng. Rất tiếc, kích thước số nguyên thậm chí không được đảm bảo trên các máy.
Không có cách thực sự nào để cấu trúc hoặc kiểm soát luồng bên cạnh GOTO - ngay cả các chương trình con / chức năng cũng chỉ được tích hợp một năm trước với FORTRAN II. Đối với hầu hết các bộ phận, FORTRAN là một trình lắp ráp biểu tượng tập trung vào toán học, giúp bạn dễ dàng viết các công thức, chứ không phải nhiều thứ khác.
Nhưng máy tính trong thế giới thực là về xử lý dữ liệu và I / O. Điều này đặc biệt đúng đối với một tổ chức khổng lồ như quân đội Hoa Kỳ, được đại diện bởi cánh tay quan liêu của nó, DoD. Có thể dễ dàng viết ra một số phép tính phức tạp là tốt, nhưng vô ích trong môi trường ở đó, đó là quản lý hàng tồn kho, đặt hàng nguồn cung cấp, tính toán lương và giao tất cả những thứ đó đúng lúc.
Một đội quân giống như một tập đoàn khổng lồ, không phải là một viện khoa học và nhiệm vụ trước mắt là xử lý dữ liệu chứ không phải xử lý số lượng.
Xử lý dữ liệu rất khác với xử lý số - đó là một thế giới hoàn toàn khác. Đó là về vòng lặp cổ điển "thẻ đọc, mục xử lý, đầu ra ghi", một thứ được tự động hóa với thẻ đục lỗ. Đó là lý do cốt lõi tại sao / 360 vẫn tồn tại cho đến ngày nay như một kiến trúc thành công. Tập lệnh của nó hoàn toàn phù hợp với dữ liệu xẻng, được xây dựng để hỗ trợ các nguyên tắc này. Thực tế là IBM đã cố gắng biến nó thành một kiến trúc toàn diện (360 độ) bằng cách bao gồm FP và thậm chí cố gắng làm cho nó phù hợp để kiểm soát quá trình về lâu dài không thực sự quan trọng - những thứ khác cũng tốt hơn nhiều.
Và DoD đã cần xử lý dữ liệu để chống lại các cuộc chiến tranh vào thời điểm đó (Hàn Quốc vừa kết thúc và Việt Nam sắp xuất hiện), và một ngôn ngữ để hỗ trợ viết các chương trình xử lý dữ liệu theo cách độc lập với máy. Đó là lý do tại sao COBOL được phát triển là kết quả của hội nghị đã đề cập.
* 1 - FORTRAN đã cải thiện rất nhiều kể từ đó, tuy nhiên, nó không thực sự thay đổi bản chất cơ bản.