Tại sao các nhà vật lý vẫn sử dụng Fortran Ngôn ngữ lập trình cấp cao đầu tiên

  • gfortran
    • gfortran 4.5.0
  • Ngôn ngữ lập trình

    Fortran - ngôn ngữ lập trình đầu tiên được triển khai cấp độ cao(sau), tuy nhiên, với một đặt trước nhỏ - dành cho các máy được chế tạo theo sơ đồ von Neumann cổ điển. Được tạo ra từ năm 1954 đến năm 1957 bởi một nhóm lập trình viên do John Backus tại IBM đứng đầu. Một vài năm sau, việc giao hàng thương mại của nó bắt đầu. Trước đó, việc lập trình được thực hiện trực tiếp bằng mã máy hoặc trong các trình biên dịch ký hiệu. Tên Fortran là viết tắt của FORmula TRANslator, nghĩa là trình dịch công thức.

    Fortran được sử dụng rộng rãi chủ yếu cho tính toán khoa học và kỹ thuật. Một trong những ưu điểm của Fortran hiện đại là số lượng lớn các chương trình và thư viện chương trình con được viết trong đó. Ví dụ, trong số các nhà khoa học, có một câu nói rằng bất kỳ vấn đề toán học nào cũng đều có lời giải trong Fortran, và thực sự, bạn có thể tìm thấy trong số hàng nghìn gói Fortran một gói để nhân ma trận, một gói để giải các phương trình tích phân phức tạp, v.v. nhiều người khác. Một số gói như vậy đã được tạo ra trong nhiều thập kỷ và vẫn còn phổ biến cho đến ngày nay (chủ yếu trong cộng đồng khoa học).

    Hầu hết các thư viện này thực sự là tài sản của nhân loại: chúng có sẵn ở mã nguồn, được ghi chép đầy đủ, được sửa lỗi và rất hiệu quả. Do đó, việc thay đổi sẽ rất tốn kém chứ đừng nói đến việc viết lại chúng bằng các ngôn ngữ lập trình khác, mặc dù thực tế là người ta thường xuyên cố gắng tự động chuyển đổi mã FORTRAN sang các ngôn ngữ lập trình hiện đại.

    Một loại “thẻ điện thoại” của Fortran xưa là số lượng lớn các nhãn được sử dụng trong cả câu lệnh GOTO và vòng lặp cũng như trong câu lệnh khai báo đầu vào/đầu ra định dạng FORMAT. Số lượng lớn nhãn và câu lệnh GOTO thường khiến các chương trình Fortran khó hiểu.

    Chính trải nghiệm tiêu cực này đã trở thành lý do tại sao trong một số những ngôn ngữ hiện đại lập trình (ví dụ: Java), nhãn và toán tử nhảy vô điều kiện liên quan hoàn toàn không có.

    Tuy nhiên, Fortran hiện đại loại bỏ sự dư thừa của nhãn bằng cách giới thiệu các toán tử như DO ... END DO, DO WHILE, SELECT CASE. Ngoài ra, các tính năng tích cực của Fortran hiện đại bao gồm một số lượng lớn các hoạt động tích hợp với mảng và hỗ trợ linh hoạt cho các mảng có chỉ mục bất thường.

    Tương tác với các ngôn ngữ khác

    Nhiều hệ thống lập trình cho phép bạn liên kết các tệp đối tượng do dịch chương trình Fortran với các tệp đối tượng thu được từ trình biên dịch ở các ngôn ngữ khác, cho phép bạn tạo các ứng dụng linh hoạt và giàu tính năng hơn. Một số lượng lớn các thư viện cũng có sẵn cho ngôn ngữ Fortran, chứa các chương trình con để giải các bài toán cổ điển. nhiệm vụ tính toán(LAPACK, IMSL, BLAS), nhiệm vụ tổ chức tính toán phân tán (MPI, pvm), nhiệm vụ xây dựng giao diện đồ họa(Quickwin, FORTRAN/TK) hoặc truy cập vào DBMS (Oracle).

    Di sản Fortran

    Fortran đã được sử dụng hơn 50 năm và phần lớn nó vẫn được sử dụng cho đến ngày nay. Fortran là ngôn ngữ chính cho một số vấn đề tính toán chuyên sâu, chẳng hạn như mô hình thời tiết và khí hậu, động lực học chất lỏng, hóa học tính toán, sắc động lực học lượng tử, mô hình động lực học. hệ mặt trời, tính toán quỹ đạo Vệ tinh nhân tạo và nhiều nhiệm vụ khác.

    Tính di động

    Lúc đầu, tính di động của Fortran là một vấn đề rất cấp bách vì không có thông tin tham khảo hoặc tiêu chuẩn duy nhất nào từ IBM. Và các công ty máy tính cạnh tranh với nhau để đảm bảo tính không tương thích giữa các trình biên dịch khác nhau. Sự xuất hiện của các tiêu chuẩn đã khắc phục vấn đề. Tiêu chuẩn năm 1966 đã thiết lập cú pháp và ngữ nghĩa, nhưng các nhà cung cấp vẫn tiếp tục giới thiệu các phần mở rộng không tương thích. Các lập trình viên cẩn thận nhận ra rằng việc sử dụng các tiện ích mở rộng không tương thích sẽ gây ra các vấn đề về tính di động và thường sử dụng các chương trình như Trình xác minh PFORT để xác định các tiện ích mở rộng không tương thích.

    Các tiện ích mở rộng không tương thích không phải là vấn đề duy nhất. Có một số vấn đề với tính toán số. Sau đó, ý tưởng gần như phổ biến về số học dấu phẩy động nhị phân đã được phát triển và giới thiệu.

    Truy cập vào môi trường thực thi (ví dụ: dòng lệnh, biến môi trường) khá khó khăn cho đến khi nó được chú ý đến trong tiêu chuẩn năm 2003.

    Giờ đây, việc triển khai một chương trình hoàn toàn di động ở Fortran tương đối dễ dàng.

    Các phần tử cú pháp:

    Chú thích đến cuối dòng ! hoặc * ở ký tự đầu tiên của dòng
    Trường hợp nhạy cảm KHÔNG
    Biểu thức chính quy ID biến [_a-zA-Z0-9](0-n)
    Gán giá trị cho một biến =
    Sự định nghĩa biến loại::biến
    Khai báo một biến có gán giá trị loại::biến = giá trị
    Nhóm biểu thức ()
    Khối làm ... kết thúc làm
    Bình đẳng = hoặc.EQ.
    Bất bình đẳng /= hoặc.NE.
    So sánh == < > <= >= <>hoặc.LT. .GT. .LE. .GE.
    Gọi một hàm GỌI f(a,b...)
    Gọi hàm không có tham số GỌI f
    Tiếp theo kết thúc dòng
    Nếu-thì nếu có điều kiện thì ... kết thúc nếu
    Nếu - thì - ngược lại nếu có điều kiện thì ... khác ... endif
    Vòng lặp với hậu điều kiện LÀM ... KHI (điều kiện)
    For - vòng lặp tiếp theo cho một dãy số nguyên tăng thêm 1 làm nhãn i = 1, 10
    For - vòng lặp tiếp theo cho một phạm vi số nguyên giảm đi 1 làm nhãn i = 10, 1, -1

    Ví dụ:

    Chào thế giới!:

    Ví dụ cho các phiên bản Intel Visual Fortran 11.1, g95 0.93, gfortran 4.5.0

    Ví dụ này được viết ở định dạng miễn phí được hỗ trợ bởi Fortran 90 và các tiêu chuẩn tiếp theo, cũng như .

    Chương trình bình luận kiểu Fortran 90 HelloWorld print * , "Xin chào thế giới!" kết thúc chương trình HelloWorld

    Yếu tố:

    Ví dụ cho các phiên bản Intel Visual Fortran 11.1, g95 0.93, gfortran 4.5.0

    Việc xác định lặp lại giai thừa và định dạng chương trình tự do được sử dụng. Thông số định dạng I và A được sử dụng để xuất ra các số thập phân và chuỗi tương ứng. Khi tính giai thừa 13-16, xảy ra tràn số học chứ không phải gây ra lỗi, do đó các giá trị sai được xuất ra:

    13! = 1932053504
    14! = 1278945280
    15! = 2004310016
    16! = 2004189184

    chương trình Số nguyên giai thừa :: f , n f = 1 n = 0 do print "(I2, A, I10)" , n , "! = " , f n = n + 1 f = f * n if (n == 17 ) then thoát end nếu end do end chương trình Giai thừa

    Các số Fibonacci:

    Ví dụ cho các phiên bản Intel Visual Fortran 11.1, g95 0.93, gfortran 4.5.0

    Việc xác định lặp lại các số Fibonacci được sử dụng. Điều khó khăn nhất trong ví dụ này là xuất ra các giá trị được tính toán trong ở định dạng được yêu cầu, trong một dòng và không có dấu cách thừa. Đặc tả định dạng (I3, A, $) có nghĩa là trước tiên nó in một số nguyên ở định dạng thập phân, rộng chính xác ba ký tự, sau đó in một chuỗi và cuối cùng $ chặn nguồn cấp dữ liệu được lệnh in sử dụng theo mặc định, vì vậy mọi thứ đều được in trên một dòng. Lưu ý rằng công cụ xác định định dạng $ không phải là tiêu chuẩn trong phương ngữ; Chương trình hoạt động nhưng trong quá trình biên dịch, nó hiển thị cảnh báo về điều này.

    chương trình số nguyên Fibonacci :: f1 , f2 , f3 , i i = 1 f1 = 0 f2 = 1 do f3 = f2 + f1 f1 = f2 f2 = f3 i = i + 1 if (f1< 10 ) then print "(I1, A, $)" , f1 , ", " elseif (f1 < 100 ) then print "(I2, A, $)" , f1 , ", " else print "(I3, A, $)" , f1 , ", " end if if (i == 17 ) then exit end if end do print * , "..." end program Fibonacci

    Phương trình bậc hai:

    Ví dụ cho phiên bản g95 0.93, gfortran 4.5.0

    Ví dụ này sử dụng kiểu dữ liệu phức tạp có sẵn. // - toán tử nối chuỗi. Số trước dấu ngoặc trong mô tả định dạng cho biết số lần định dạng trong ngoặc được lặp lại (trong trong trường hợp này hai lần - đối với gốc thứ nhất và thứ hai).

    chương trình Số nguyên bậc hai :: a , b , c real :: d , p1 , p2 complex :: cp2 read (* , * ), a if (a == 0 ) then write (* , * ) "Không phải là phương trình bậc hai" dừng kết thúc nếu đọc (* , * ) b đọc (* , * ) c d = b * b - 4 * a * c p1 = - b / 2.0 / a if (abs (d )< 1.0e-9 ) then write (* , "(A, F8.3)" ) "x = " , p1 elseif (d >0 ) thì p2 = sqrt (d ) / 2.0 / a write (* , "(2(A, F8.3))" ) "x1 = " , p1 + p2 , char (13 ) // char (10 ) / / "x2 = " , p1 - p2 else cp2 = sqrt (cmlx(d )) / 2.0 / a write (* , "(2(A, F8.3, F8.3), A)" ) "x1 = ( " , p1 + cp2 , ")" // char (13 ) // char (10 ) // "x2 = (" , p1 - cp2 , ")" end if end

    Chào thế giới!:

    Ví dụ cho các phiên bản f2c 20090411, g95 0.93, gfortran 4.5.0

    FORTRAN 77); Sáu ký tự đầu tiên của mỗi dòng được dành riêng cho thông tin dịch vụ - đánh dấu rằng dòng này là nhận xét hoặc phần tiếp theo của dòng trước đó, nhãn và số dòng. Bộ tiêu chuẩn Ký tự Fortran không chứa ký tự chữ thường nên tất cả các chương trình đều được viết bằng chữ hoa. Ngoại lệ cho quy tắc này là các hằng số ký tự - chúng có thể chứa bất kỳ ký tự nào được hệ thống hỗ trợ.

    Dòng đầu tiên đặt tên cho đoạn mã này là HELLO và cho biết đây là chương trình chính. Tên chương trình tuân theo các quy tắc giống như bất kỳ tên định danh nào, tức là. phải bắt đầu bằng một chữ cái và chứa không quá 6 ký tự.

    Lệnh WRITE thực hiện việc in ấn. Danh sách các tham số điều khiển cấu hình đầu ra được truyền trong ngoặc đơn: UNIT chọn tệp đầu ra (bảng điều khiển theo mặc định), FMT chọn định dạng đầu ra. Dấu hoa thị cho biết cài đặt mặc định. Không cần thiết phải truyền tên tham số; tóm lại, lệnh tương tự sẽ có dạng WRITE (*, *) ....

    Trong hầu hết các triển khai, hằng chuỗi có thể được đặt trong dấu ngoặc đơn hoặc dấu ngoặc kép.

    Một lời chào đơn giản, Thế giới! chương trình CHƯƠNG TRÌNH HELLO WRITE (UNIT =* , FMT =* ) "Xin chào thế giới!" KẾT THÚC

    Yếu tố:

    Ví dụ cho các phiên bản f2c 20090411, g95 0.93, gfortran 4.5.0

    Ví dụ này được viết ở định dạng cố định (kiểu FOTRAN 77) và sử dụng phép tính giai thừa lặp.

    Fortran cho phép bạn bỏ qua việc khai báo biến; trong trường hợp này, nó tự suy ra loại của chúng, nhưng, không giống như các ngôn ngữ sau này, không phải theo ngữ cảnh sử dụng biến mà theo tên của nó - nếu chữ cái đầu tiên của tên là I..N, thì loại được chọn INTEGER, mặt khác - THỰC SỰ. Trong trường hợp này, cả hai biến đều là số nguyên.

    Chu trình DO trong trường hợp này tương ứng với vòng lặp FOR Trong các ngôn ngữ sau này, bộ đếm vòng lặp N tuần tự chạy qua tất cả các giá trị từ 0 đến 16. Phần thân của vòng lặp kết thúc ở dòng có nhãn 1, được chỉ định trong tiêu đề vòng lặp.

    Lệnh PRINT sử dụng định dạng đầu ra mặc định, định dạng này thay đổi tùy thuộc vào trình biên dịch được sử dụng.

    CHƯƠNG TRÌNH) C. Bởi vì điều này, sau khi điền dòng CC chứa ký tự kết quả theo từng ký tự, phần còn lại của dòng phải được điền thủ công bằng khoảng trắng.

    Kiểm tra ký tự tiếp theo trong chuỗi nguồn có phải là một chữ cái quá dài không vừa trên một dòng (tất cả các ký tự trong dòng chương trình bắt đầu từ vị trí thứ 73 đều bị bỏ qua), do đó phải chia thành hai dòng và dòng thứ hai được đánh dấu như là sự tiếp nối của ký hiệu đầu tiên (bất kỳ ký hiệu nào ở vị trí 6).

    Các toán tử so sánh trong FORTRAN 77 được viết dưới dạng .LE. ,.GE. vân vân. do thực tế là các ký hiệu > và< не входят в набор символов языка; они были добавлены только в Fortran 90.

    CHƯƠNG TRÌNH CAMELC CHARACTER TEXT * 30 , CC * 30 LOGIC LSPACE READ (* , "(A)" TEXT NCC = 0 LSPACE = .TRUE. DO 1 , I = 1 , LEN (TEXT ) NC = ICHAR (TEXT (I : I )) IF (NC .GE. 65 .AND. NC .LE. 90 .OR. > NC .GE. 97 .AND. NC .LE. 122 ) THEN IF (LSPACE ) THEN IF (NC .GE. 97 .AND. NC .LE. 122 ) THEN NC = NC - 32 END IF ELSE IF (NC .GE. 65 .AND. NC .LE. 90 ) THEN NC = NC + 32 END IF END IF NCC = NCC + 1 CC (NCC : NCC ) = CHAR (NC ) LSPACE = .FALSE. ELSE LSPACE = .TRUE. KẾT THÚC NẾU 1 TIẾP TỤC LÀM 2, I = NCC + 1, LEN (CC) 2 CC (I: I) = "" VIẾT (*, *) CC END



    Lần đầu tiên tôi nghe nói về Fortran là từ cha tôi khi còn nhỏ. Ông kể rằng vào những năm 70, ông đã phải xếp hàng hàng giờ trước chiếc máy tính duy nhất ở trường đại học để chạy một đoạn mã thô sơ bằng thẻ đục lỗ. Tôi thành thật thừa nhận, từ đó đến nay (mặc dù tôi đã được đào tạo về kỹ thuật) tôi hoàn toàn tin tưởng rằng Fortran vẫn ở đâu đó xa xôi ngoài kia, trong một thế giới mà vật mang thông tin là những hộp bìa cứng kỳ lạ có lỗ, và máy tính quá đắt tiền, đến mức được coi là một điểm thu hút thực sự.

    Hãy tưởng tượng sự ngạc nhiên của tôi khi tôi biết rằng Fortran không chỉ vẫn được sử dụng ở đâu đó mà nó đang được phát triển, có nhu cầu và vẫn còn phù hợp. Nếu cho đến thời điểm này bạn vẫn tin rằng Fortran đã chết từ lâu, thì đây là một số sự thật thú vị về lý do tại sao anh ấy vẫn còn đi bộ.

    Sống sót sau ít nhất 10 bản cập nhật

    Trên thực tế, chiếc Fortran mà bạn nghe nói từ các giáo viên ở trường phổ thông hoặc đại học đã được tạo ra từ năm 1954 đến năm 1957. Nó đã đi vào lịch sử với tư cách là ngôn ngữ cấp cao được triển khai đầy đủ đầu tiên, tạo nên một bước đột phá nhỏ trong thế giới CNTT, nhưng về bản chất thì nó không mấy tiện lợi và chức năng. IBM bắt đầu “hoàn thiện” nó gần như ngay lập tức; vào năm 1958, FORTRAN II xuất hiện và song song đó là FORTRAN III. Nhưng nó ít nhiều có vẻ ngoài tươm tất chỉ vào những năm 70, khi những chiếc máy khá di động xuất hiện, khi tiêu chuẩn IBM FORTRAN IV chính thức được phát triển và FORTRAN 66 xuất hiện với các vòng lặp, nhãn, câu lệnh điều kiện, lệnh đầu vào/đầu ra, v.v. theo tiêu chuẩn hiện đại khả năng nguyên thủy.

    Phiên bản mới nhất xuất hiện vào năm 2010, tên của nó là Fortran 2008 (như bạn có thể thấy, theo dòng lịch sử, cái tên này đã không còn được viết riêng nữa bằng chữ in hoa), tính năng đặc biệtđó là tất cả các loại tính toán song song, có tác động tích cực cả đến tốc độ xử lý dữ liệu và kích thước của mảng được xử lý. Ngoài ra, việc phát hành Fortran 2015 được lên kế hoạch cho năm 2018. Từ thông báo, nó sẽ cải thiện khả năng tích hợp với C và cũng loại bỏ những thiếu sót hiện tại.

    Trong số 30 ngôn ngữ lập trình phổ biến nhất

    Đến nay, 0,743% yêu cầu ở công cụ tìm kiếm Về ngôn ngữ lập trình, nó được dành riêng cho Fortran. Để bạn biết điều này thú vị như thế nào, hãy tưởng tượng rằng các ngôn ngữ như Lisp, Scala, Clojure, LabVIEW, Haskell, Rust và VHDL được xếp hạng thấp hơn.

    Có thể hoạt động trên Android (và hơn thế nữa)

    Trải qua lịch sử lâu dài, các trình biên dịch cho Fortana đã được phát triển bởi các công ty như IBM, Microsoft, Compaq, HP, Oracle, nhờ đó ngôn ngữ này ngày nay tương thích với Windows, Mac OS và Linux. Hơn nữa, giờ đây bạn có thể mang theo một ứng dụng biên dịch tiện lợi nhờ ứng dụng CCTools dành cho Android. Bạn có thể chạy trình biên dịch trên iPhone của mình, nhưng trong trường hợp này bạn cần thực hiện một chút phép thuật.

    Cạnh tranh với MATLAB

    Cho đến nay, văn bản này vẫn chưa nói lên điều chính, đó là phạm vi của Fortran. Vì vậy, đây là ngôn ngữ được yêu cầu trong khoa học và kỹ thuật, được sử dụng toàn bộ hoặc một phần để dự báo thời tiết, hải dương học, động lực phân tử và phân tích địa chấn. Nói chung, đây là ngôn ngữ “Khoa học dữ liệu” thực sự kể từ khi máy tính lần đầu tiên được bán đại trà.

    Cần phải thừa nhận rằng Fortran nổi tiếng một phần nhờ di sản của nó. Qua nhiều năm, hầu như không có sự cạnh tranh, ngôn ngữ này đã phát triển căn cứ khổng lồ khách hàng, thư viện và tiện ích bổ sung. Ngoài ra, mỗi phiên bản tiếp theo Fortran chắc chắn sẽ hỗ trợ những cái trước. Vì vậy, đã nảy sinh một tình huống không có yếu tố quan trọng nào để các nhà khoa học, kỹ sư từ bỏ liên minh này.

    Trên thực tế, đối thủ cạnh tranh chính của Fortran ngày nay là MATLAB, phổ biến hơn, nhiều chức năng hơn và tiện lợi hơn. Tuy nhiên, MATLAB có những hạn chế nghiêm ngặt đối với phần mềm được sử dụng, khá tốn kém và trong hầu hết các trường hợp đơn giản là không cần thiết.

    Có một tương lai tương đối tươi sáng

    Tất nhiên, chúng ta không thể dự đoán được điều gì sẽ xảy ra trong 10-20 năm tới và thế giới CNTT sẽ thay đổi như thế nào trong thời gian này. Tuy nhiên, nếu bạn xem xét các đối thủ cạnh tranh mới có thể có của Fortran (chẳng hạn như cờ vây), nhược điểm chính- phổ cập hóa. Nghĩa là, những người tạo ra Fortran đã nhanh chóng vạch ra khán giả mục tiêu dưới hình thức các nhà khoa học, ý kiến ​​và mong muốn của họ được ưu tiên. Vì vậy, thật khó để tưởng tượng rằng ngày mai họ sẽ từ bỏ “đơn hàng đặc biệt” của mình vì một xu hướng thời trang nào đó. Trên cơ sở đó, chúng ta có thể nói rằng một thế hệ Fortran khác đang mạnh dạn ra đi.

    Và sau đó họ sẽ phát hành một phiên bản mới.

    Ví dụ, trong số các nhà khoa học, có một câu nói rằng bất kỳ vấn đề toán học nào cũng đều có lời giải trong Fortran, và thực sự, trong số hàng nghìn gói Fortran, bạn có thể tìm thấy một gói để nhân ma trận, một gói để giải các phương trình tích phân phức tạp, v.v. nhiều người khác. Một số gói như vậy đã được tạo ra trong nhiều thập kỷ và vẫn còn phổ biến trong cộng đồng khoa học cho đến ngày nay, chẳng hạn - IMSL ( Tiếng Anh).

    Hầu hết các thư viện này thực sự là tài sản của nhân loại: chúng có sẵn trong mã nguồn, được ghi chép đầy đủ, được sửa lỗi và rất hiệu quả. Do đó, việc thay đổi sẽ rất tốn kém chứ đừng nói đến việc viết lại chúng bằng các ngôn ngữ lập trình khác, mặc dù thực tế là người ta thường xuyên cố gắng tự động chuyển đổi mã FORTRAN sang các ngôn ngữ lập trình hiện đại.

    Fortran hiện đại (Fortran 95 và Fortran 2003) đã có được các tính năng cần thiết cho lập trình hiệu quả cho những cái mới kiến trúc máy tính, cho phép bạn sử dụng công nghệ hiện đại lập trình, đặc biệt là OOP.

    Sự phát triển của các tiêu chuẩn ngôn ngữ

    Fortran là một ngôn ngữ được tiêu chuẩn hóa cao, đó là lý do tại sao nó có thể dễ dàng di chuyển sang nền tảng khác nhau. Các tiêu chuẩn ngôn ngữ mới phần lớn duy trì tính liên tục với các tiêu chuẩn cũ hơn, điều này giúp có thể sử dụng mã từ các chương trình đã viết trước đó và sửa đổi chúng.

    FORTRAN 66 (1972) Dựa trên tiêu chuẩn IBM FORTRAN IV FORTRAN 77 (1980) Nhiều cải tiến được đưa ra: Fortran 90 (1991) Tiêu chuẩn ngôn ngữ đã được sửa đổi đáng kể. Fortran 95 (1997) Hiệu chỉnh tiêu chuẩn trước đó. Toán tử và cấu trúc FORALL đã được giới thiệu, cho phép linh hoạt hơn toán tử và cấu trúc WHERE để gán các mảng và thay thế các vòng lặp rườm rà. FORALL cho phép bạn thay thế bất kỳ phép gán phần nào hoặc mệnh đề WHERE, đặc biệt, nó cung cấp quyền truy cập vào đường chéo của ma trận. Toán tử nàyđược coi là có triển vọng trong tính toán song song, tạo điều kiện cho việc song song hóa hiệu quả hơn các vòng lặp. Fortran 2003 (2004) Phát triển hơn nữa Hỗ trợ OOP bằng ngôn ngữ. Sự tương tác hệ điều hành. Các tính năng sau đây cũng đã được thêm vào: Fortran 2008 (2010) Tiêu chuẩn giả định hỗ trợ bằng ngôn ngữ tính toán song song(Co-Mảng Fortran). Nó cũng được lên kế hoạch để tăng kích thước tối đa của mảng lên 15, thêm các hàm toán học đặc biệt tích hợp sẵn, v.v.

    Trình biên dịch

    Kể từ sự phát triển ban đầu của ngôn ngữ, trình biên dịch Fortran đã được IBM sản xuất. IBM hiện cung cấp trình biên dịch tối ưu hóa VS Fortran cho máy tính lớn IBM System z, lịch sử phát triển phiên bản khác nhau có từ năm 1964, cũng như trình biên dịch XL Fortran cho các nền tảng dựa trên kiến ​​trúc PowerPC - AIX, Linux và siêu máy tính Blue Gene (một phiên bản cũng được phát hành cho Mac OS X, khi máy tính Macintosh sử dụng bộ xử lý PowerPC). Cả hai trình biên dịch này đều chứa các trình tối ưu hóa rất phức tạp, là kết quả nghiên cứu khoa học liên tục của các chuyên gia IBM trong hơn nửa thế kỷ. Dựa trên trình biên dịch IBM Fortran XL, Absoft, một đối tác kinh doanh của IBM, đã tạo và cung cấp trình biên dịch Absoft Pro Fortran cho các hệ thống dựa trên bộ xử lý PowerPC (Linux, Mac OS X) và Intel (Linux, Mac OS X, Windows).

    Tổ chức Phần mềm Tự do GNU đã sản xuất trình biên dịch Fortran-77 mã nguồn mở, g77, có sẵn cho hầu hết mọi nền tảng và hoàn toàn tương thích với GCC. Bây giờ nó đã được thay thế bằng trình biên dịch GFortran, trình biên dịch này thực hiện hầu hết tất cả các cấu trúc của tiêu chuẩn Fortran 95 và nhiều cấu trúc của tiêu chuẩn Fortran 2003 và Fortran 2008. Nó cũng hoàn toàn tương thích ngược với Fortran 77. Ngoài ra còn có một dự án độc lập tên là g95 để tạo trình biên dịch Fortran-95 dựa trên GCC.

    Tính năng và cấu trúc chương trình

    Fortran có đủ bộ lớnđược xây dựng trong hàm toán học, hỗ trợ làm việc với số nguyên, số thực và số phức độ chính xác cao. Phương tiện biểu đạt ngôn ngữ ban đầu rất kém vì Fortran là một trong những ngôn ngữ cấp cao đầu tiên. Sau đó, nhiều cấu trúc từ vựng đặc trưng của lập trình cấu trúc, chức năng và thậm chí hướng đối tượng đã được thêm vào Fortran.

    Thẻ đục lỗ có đánh dấu cột cho Fortran.

    Cấu trúc của các chương trình ban đầu tập trung vào đầu vào từ thẻ đục lỗ và có một số thuộc tính thuận tiện cho trường hợp cụ thể này. Do đó, cột thứ nhất dùng để đánh dấu văn bản là nhận xét (với ký hiệu C), từ thứ 1 đến thứ 5 là vùng nhãn và từ thứ 7 đến thứ 72 là văn bản thực tế của toán tử hoặc nhận xét. Các cột từ 73 đến 80 có thể được sử dụng để đánh số các lá bài (để khôi phục một bộ bài nằm rải rác ngẫu nhiên) hoặc để đưa ra một nhận xét ngắn gọn; chúng đã bị người dịch bỏ qua. Nếu văn bản của toán tử không vừa với khoảng trống được phân bổ (từ cột thứ 7 đến cột thứ 72), dấu hiệu tiếp nối sẽ được đặt ở cột thứ 6 của thẻ tiếp theo, và sau đó toán tử tiếp tục trên đó. Không thể đặt hai hoặc nhiều câu lệnh trên một dòng (bản đồ). Khi thẻ đục lỗ đã trở thành lịch sử, những ưu điểm này trở thành những bất tiện nghiêm trọng.

    Đó là lý do tại sao tiêu chuẩn Fortran, bắt đầu từ Fortran 90, ngoài định dạng cố định văn bản nguồn một định dạng miễn phí đã xuất hiện không quy định vị trí dòng và cũng cho phép bạn viết nhiều toán tử trên mỗi dòng. Việc giới thiệu định dạng miễn phí giúp tạo mã có khả năng đọc và rõ ràng không thua kém mã được tạo bằng các ngôn ngữ lập trình hiện đại khác, chẳng hạn như Java.

    Một loại “thẻ điện thoại” của Fortran cũ là số lượng nhãn khổng lồ được sử dụng cả trong toán tử nhảy vô điều kiện GOTO và toán tử vòng lặp cũng như trong định dạng toán tử mô tả đầu vào/đầu ra FORMAT. Số lượng lớn các nhãn và câu lệnh GOTO thường khiến các chương trình của Fortran trở nên khó hiểu.

    Chính trải nghiệm tiêu cực này đã trở thành lý do tại sao trong một số ngôn ngữ lập trình hiện đại (ví dụ: Java), các nhãn và toán tử nhảy vô điều kiện liên quan được sửa đổi rất nhiều.

    Tuy nhiên, Fortran hiện đại loại bỏ sự dư thừa của nhãn do sự ra đời của các toán tử như DO ... END DO, DO WHILE, SELECT CASE. Hơn nữa, các tiêu chuẩn ngôn ngữ hiện đại chỉ giữ lại toán tử GOTO cổ điển, toán tử này vẫn được sử dụng trong nhiều ngôn ngữ ngày nay. Câu lệnh GOTO được tính toán, cũng như cấu trúc ENTRY - nhiều mục nhập vào các thủ tục, đã bị loại bỏ.

    Ngoài ra, các tính năng tích cực của Fortran hiện đại bao gồm một số lượng lớn các hoạt động tích hợp với mảng và hỗ trợ linh hoạt cho các mảng có chỉ mục bất thường. Ví dụ:

    Thực ,kích thước (: ,: ) :: V ... phân bổ (V(- 2 : 2 ,0 : 10 ) ) ! Cấp phát bộ nhớ cho một mảng có chỉ mục có thể ! thay đổi từ -2 đến 2 (chỉ số đầu tiên) ! và từ 0 đến 10 - giây... V (2 .2 : 3 ) = V (- 1 : 0 .1 ) ! Xoay một phần của mảng viết(* ,* ) V(1 ,: ) ! In tất cả các phần tử của mảng V có chỉ số đầu tiên là 1. giải phóng(V)

    Chào thế giới!

    Định dạng cố định (khoảng trắng ở vị trí dòng 1 đến 6 được đánh dấu bằng ký tự “␣”):

    ␣␣␣␣␣␣PROGRAM xin chào ␣␣␣␣␣␣PRINT* , "Xin chào Thế giới!" ␣␣␣␣␣␣END

    Định dạng miễn phí:

    Chương trình xin chào in * , "Xin chào thế giới!" kết thúc

    Ghi chú.

    • Câu lệnh PROGRAM là tùy chọn. Nói đúng ra, câu lệnh bắt buộc duy nhất trong chương trình Fortran là câu lệnh END.
    • Việc lựa chọn chữ hoa hay chữ thường để viết các câu lệnh chương trình là tùy ý. Từ quan điểm tiêu chuẩn hiện đại ngôn ngữ Fortran, nhiều chữ in hoa và nhiều chữ cái viết thường trùng nhau khi viết các toán tử ngôn ngữ.

    Tương tác với các ngôn ngữ khác

    Nhiều hệ thống lập trình cho phép bạn kết hợp các tệp đối tượng thu được nhờ dịch chương trình Fortran với các tệp đối tượng thu được từ trình biên dịch từ các ngôn ngữ khác, cho phép bạn tạo các ứng dụng linh hoạt và giàu tính năng hơn. Một số lượng lớn các thư viện cũng có sẵn cho ngôn ngữ Fortran, chứa cả các quy trình giải quyết các vấn đề điện toán cổ điển (LAPACK, IMSL, BLAS), các vấn đề tổ chức tính toán phân tán (MPI, pvm) và các nhiệm vụ xây dựng giao diện đồ họa (Quickwin, FORTRAN/ TK) hoặc truy cập DBMS (Oracle).

    Fortran ở Liên Xô

    Ghi chú

    1. Xem ví dụ: Kho lưu trữ Netlib tại UTK và ORNL
    2. A. M. Gorelik. Sự phát triển của ngôn ngữ lập trình Fortran (1957-2007) và triển vọng phát triển của nó // Phương pháp tính toán và lập trình, 2008, Tập 9, tr. 53-71
    3. Bartenyev O.V. Fortran hiện đại - M.: Dialogue MEPhI, 2005. - ISBN 5-86404-113-0
    4. A. M. Gorelik. lập trình hướng đối tượng ở Fortran hiện đại
    5. S. D. Algazin, V. V. Kondratiev. Lập trình trên Visual Fortran. - M.: “Đối thoại MEPhI”, 2008. - 448 tr. - ISBN 5-8243-0759-8
    6. Tin tức Gorelik A.M.
    7. VS FORTRAN
    8. XL Fortran cho Linux
    9. Tổng quan chung về Absoft Pro Fortran Compiler Suites
    10. Sun Studio - Điểm chuẩn
    11. Tiểu luận của Alexander Rastorguev về sự xuất hiện của Fortran ở Dubna
    12. Lịch sử đồ họa máy tính ở Nga

    Văn học

    • Fortran. Tài liệu tham khảo dành cho lập trình viên. Hệ thống mã hóa tự động Fortran cho IBM 704 EDPM - IBM Corp., 1956. - 51 p.
    • ISO/IEC 1539-2:2000 Công nghệ thông tin - Ngôn ngữ lập trình - Fortran - Phần 2: Chuỗi ký tự có độ dài thay đổi
    • Robert W. Sebesta. 2.3. Máy tính IBM 704 và ngôn ngữ Fortran // Khái niệm cơ bản về ngôn ngữ lập trình = Khái niệm về ngôn ngữ lập trình / Transl. từ tiếng Anh - tái bản lần thứ 5. - M.: Williams, 2001. - trang 63-69. - 672 giây. - 5000 bản. - ISBN 5-8459-0192-8 (tiếng Nga), ISBN 0-201-75295-6 (tiếng Anh)

    Liên kết

    • gfortran - Trình biên dịch Fortran 95/2003/2008, một phần của Bộ sưu tập Trình biên dịch GNU
    • trong Progopedia - bách khoa toàn thư về ngôn ngữ lập trình (tiếng Nga)

    Tôi được nhắc thử viết bài đăng đầu tiên của mình ở đây, trong đó có gợi ý sử dụng C++ để học. Vâng, nhiều bản sao đã bị phá vỡ về chủ đề này.

    Tôi, có lẽ giống như hầu hết học sinh trên đất mẹ rộng lớn của chúng ta, bắt đầu hiểu những điều cơ bản thông qua Màn hinh xanh, nhưng không phải cái chết, mà là Turbo Pascal 7.0. Tất nhiên là có Basic, thứ mà tôi gặp lần đầu trong tuổi mẫu giáo trên máy tính "Điện tử" của Liên Xô. Sau đó, nó có vẻ giống như một trình soạn thảo văn bản kỳ lạ, bởi vì một chiếc máy tính qua con mắt của một đứa trẻ được tạo ra để chơi game. Tuy nhiên, khi đến viện, tôi đã làm quen với ngôn ngữ Fortran, sau khi tìm hiểu về nó, tôi vẫn thắc mắc tại sao nó không được sử dụng để giảng dạy.

    Vâng, nhiều người sẽ nói rằng ngôn ngữ này đã chết, không tương ứng với thực tế hiện đại và những cuốn sách giáo khoa có tựa đề như trong ảnh chỉ khiến bạn mỉm cười. Tôi sẽ cố gắng giải thích tại sao ngôn ngữ này lại tuyệt vời như vậy và tại sao tôi lại giới thiệu nó như ngôn ngữ đầu tiên. Nếu bạn quan tâm, chào mừng bạn đến với mèo.

    Tôi tin rằng nền tảng cho những kiến ​​thức cơ bản về lập trình nên được hình thành trong những năm học, ít nhất là ở trường trung học. Ngay cả khi trong cuộc sống máy tính chỉ được sử dụng để gõ văn bản trong Word hoặc để giao tiếp bằng trong mạng xã hội, kiến ​​thức tối thiểu về thuật toán là gì và cách cấu trúc một chuỗi hành động để có được kết quả như ý, ít nhất chúng sẽ không gây hại cho cậu bé khi trưởng thành và rất có thể sẽ giúp hình thành một tư duy đặc biệt.

    Để các bài học khoa học máy tính trở thành niềm vui chứ không phải là cơn ác mộng, học sinh phải hiểu mình đang làm gì, làm như thế nào và tại sao mọi chuyện lại diễn ra theo cách này mà không phải cách khác. Xét cho cùng, về bản chất, bạn cần truyền tải chính xác thông tin về chu trình và điều hành có điều kiệnđể một người có thể viết chương trình một cách độc lập. Đồng thời, cú pháp của ngôn ngữ càng đơn giản thì càng dễ hiểu logic viết mã. Nếu một người học cách sáng tác thuật toán đúng, thì để lập trình bằng các ngôn ngữ khác, anh ta chỉ cần học cú pháp của ngôn ngữ này là đã có nền tảng.

    Fortran có gì đặc biệt?

    Chúng ta hãy quay lại lịch sử hình thành ngôn ngữ này. Nó xuất hiện vào những năm 50 xa xôi của thế kỷ trước, khi máy tính còn rất lớn, có ít lập trình viên, khoa học máy tính không được dạy ở trường và thường bị coi là một thứ giả khoa học. Điều cần thiết là một ngôn ngữ đơn giản có thể giúp các kỹ sư và nhà khoa học “đưa” các công thức viết trên giấy vào máy tính, thậm chí thông qua thẻ đục lỗ.

    Do đó tên của ngôn ngữ: con la Trần slator hoặc "người dịch công thức". Những thứ kia. ban đầu ngôn ngữ này nhằm vào những người không có đào tạo đặc biệt, có nghĩa là nó phải đơn giản nhất có thể.

    Vâng, những người sáng tạo đã thành công nhờ sự đơn giản. Chương trình cổ điển đầu tiên trông như thế này:

    Chương trình viết(*,*) "Xin chào thế giới!" kết thúc
    Cú pháp thậm chí còn đơn giản hơn Pascal một chút; không cần phải đặt " ở cuối dòng" ; " hoặc " : " trước dấu bằng. Hơn nữa, những người có kiến ​​thức tối thiểu bằng tiếng Anh, hiểu ý nghĩa chương trình đơn giản nhất sẽ không khó khăn

    Ở đây tôi muốn lưu ý rằng Fortran có một số sửa đổi về tiêu chuẩn, những tiêu chuẩn chính là 77 và 90 (trong khi vẫn duy trì tính liên tục). 77 Fortran thực sự rất cổ điển, có giới hạn về độ dài dòng và phải thụt đầu dòng vào đầu dòng, điều này có thể gây sốc văn hóa cho một ứng viên lập trình viên trẻ. Không phải tự nhiên mà các chương trình viết bằng Fortran 77 lại nhận được cái tên ngắn gọn “Mã Brezhnev” từ miệng bạn tôi. Vì vậy, tất cả văn bản của tôi đều đề cập đến tiêu chuẩn ngôn ngữ 90 và mới hơn.

    Ví dụ, tôi sẽ đưa ra một đoạn mã để tính tổng các số nguyên không âm từ 1 đến n, được nhập từ bàn phím, do nghiên cứu sinh của tôi viết khi dạy cô ấy lập trình từ đầu. Đó là nơi tôi đã trải nghiệm việc dạy Fortran như ngôn ngữ đầu tiên. Tôi hy vọng rằng điều này có lợi cho cô ấy và thí nghiệm của tôi đã thành công. Cô ấy đã học ít nhất những điều cơ bản trong một vài lớp học, trong đó lớp đầu tiên là bài giảng về ngôn ngữ.

    Số chương trình không có nghĩa gì cả! Biến số nguyên n,i,s ! Phần thân của chisla s=0 viết (*,*) "Nhập n" đọc (*,*) n if (n.le.0) thì viết (*,*) "Âm hoặc 0" nếu không thì làm i=1,n s =s+i end viết (*,*) "Sum=", s end nếu end
    Dễ dàng nhận thấy rằng cách chúng ta suy nghĩ chính là cách chúng ta viết code. Về nguyên tắc, không có khó khăn nào có thể phát sinh đối với học sinh. Tất nhiên, người đọc chú ý sẽ hỏi không và hai dấu hoa thị trong ngoặc đơn được phân tách bằng dấu phẩy là gì. không ngầm định nào cho chúng ta biết rằng chúng ta đang chỉ định rõ ràng loại biến, trong khi nếu không có mục nhập này, trình biên dịch sẽ tự đoán loại đó. Dấu hoa thị đầu tiên có nghĩa là đầu vào và đầu ra xuất hiện trên màn hình và dấu hoa thị thứ hai cho biết định dạng đầu vào và đầu ra được phát hiện tự động. Trên thực tế, chương trình Fortran trông không phức tạp hơn đoạn mã được viết ở trên.

    Còn môi trường phần mềm thì sao?

    Trong trường học và bất kỳ cơ quan chính phủ nào, câu hỏi thường đặt ra về phần mềm, đặc biệt là về việc cấp phép cho nó. Bởi vì tiền không được phân bổ đặc biệt cho những nhu cầu này. Ít nhất ở thời của tôi, đây là một vấn đề, có thể bây giờ tình hình đã thay đổi tốt hơn.

    Bất cứ ai cũng có thể viết chương trình bằng Fortran. soạn thảo văn bản. Nếu bạn muốn tô sáng cú pháp, bạn có thể sử dụng Notepad++ (chỉ hỗ trợ cú pháp chuẩn 77) hoặc SublimeText. Chúng ta đã viết chương trình, chúng ta sẽ biên dịch nó như thế nào? Mọi thứ ở đây đều đơn giản, bạn có thể sử dụng GNU Fotran miễn phí. Nếu bạn dự định sử dụng nó cho mục đích phi thương mại, thì bạn cũng có thể sử dụng trình biên dịch của Intel, trình biên dịch này được tối ưu hóa tốt cho các bộ xử lý cùng tên và đi kèm với IDE yêu cầu tối thiểu. Những thứ kia. Ngưỡng đầu vào rất ưu đãi.

    Theo nhiều người dùng, môi trường phát triển tốt nhất cho Fortran vẫn là Compaq Visual Fortran 6.6, phiên bản mới nhất được phát hành vào đầu những năm 2000. Tại sao lại xảy ra trường hợp môi trường dựa trên Visual Studio 6.0, chạy tối đa trên Windows XP 32 bit mà không cần tambourine và có giới hạn về bộ nhớ sử dụng, lại trở nên phổ biến như vậy đối với người dùng Fortran. Câu trả lời được thể hiện trong hình dưới đây.

    Đây là Compaq Array Visualizer, một công cụ rất thuận tiện để hiển thị các mảng 1, 2 và 3 chiều trong quá trình gỡ lỗi chương trình trực tiếp từ trình gỡ lỗi. Như người ta nói, đã thử một lần rồi nên tôi ăn ngay. Thực tế là Fortran hiện được sử dụng chủ yếu trong khoa học (sẽ được thảo luận sau), đặc biệt là trong lĩnh vực mà tôi đang đề cập, cụ thể là trong vật lý khí quyển. Khi gỡ lỗi chương trình, các mảng biểu thị các trường khí tượng khác nhau, chẳng hạn như nhiệt độ, áp suất, tốc độ gió. Việc tìm ra lỗi trong các trường đồ họa dễ dàng hơn nhiều so với trong một tập hợp số, đặc biệt vì bạn thường biết trường đó trông như thế nào nên các lỗi hiển nhiên sẽ bị loại bỏ ngay lập tức.

    Thật không may, tất cả sự phát triển trên trình biên dịch đã được chuyển từ Compaq sang Intel. Intel ban đầu hỗ trợ Array Visualizer, tuy nhiên, những phiên bản đó đã phản ánh mờ nhạt sản phẩm của Compaq, việc làm việc với chúng không còn thuận tiện như trước, nhưng ít nhất chức năng tối thiểu vẫn được duy trì. Than ôi, Intel đã ngừng phát triển các phiên bản mới của Array Visualizer, đặt dấu chấm hết cho công cụ tiện lợi nhất này. Đó là lý do tại sao phần lớn cộng đồng Fortran viết chương trình và gỡ lỗi chúng trong Compaq Visual Fortran trên Windows và chạy các tính toán chiến đấu trên các máy chủ chạy Linux. sử dụng trình biên dịch Intel, vui lòng lắng nghe lời cầu xin của người dùng, trả lại một công cụ bình thường để hiển thị mảng cho trình gỡ lỗi của bạn!

    Vị trí của Fortran trong thế giới hiện đại

    Và bây giờ chúng ta đến với chủ đề thường gây ra cuộc thảo luận sôi nổi với các đồng nghiệp sử dụng Matlab, họ khẳng định rằng điều đó được mô tả trong bài này một ngôn ngữ hiếm chẳng có ích gì. Ở đây tôi không đồng ý với họ. Thực tế là Fortran trước đây được sử dụng trong các tính toán kỹ thuật hoặc khoa học, và do đó, theo thời gian, nó có được nhiều thư viện và mã chương trình làm sẵn để giải quyết một vấn đề cụ thể.

    Mã thực sự được truyền từ thế hệ này sang thế hệ khác và cũng được ghi chép đầy đủ. Bạn có thể tìm thấy nhiều giải pháp làm sẵn các phương trình toán vật lý, đại số tuyến tính (ở đây cần lưu ý việc thực hiện thành công khi làm việc với ma trận), tích phân và phương trình vi phân và nhiều, nhiều hơn nữa. Có lẽ rất khó để tìm ra một vấn đề trong lĩnh vực khoa học vật lý và toán học mà thuật toán trong Fortran không được triển khai. Và nếu bạn tính đến khả năng tối ưu hóa tuyệt vời của trình biên dịch Intel cho bộ xử lý Intel, hỗ trợ tính toán song song trên các cụm hiệu suất cao, thì sẽ rõ tại sao ngôn ngữ này lại chiếm vị trí đầu tiên xứng đáng trong cộng đồng khoa học. Tôi nghĩ bạn có thể tìm thấy trình biên dịch Fortran được cài đặt trên bất kỳ siêu máy tính nào.

    Hầu hết các mô hình nghiêm túc, ít nhất là trong lĩnh vực vật lý khí quyển, đều được viết bằng Fortran. Vâng, vâng, dự báo thời tiết mà mọi người thỉnh thoảng quan tâm, có được thông qua tính toán của các mô hình được viết bằng ngôn ngữ này. Hơn nữa, ngôn ngữ không hề trì trệ mà không ngừng cải thiện. Do đó, sau các tiêu chuẩn 77 và 90 được mô tả trước đó, các phiên bản mới 95, 2003, 2008 đã xuất hiện, hỗ trợ cho các tiêu chuẩn này đã được đưa vào các trình biên dịch hiện tại. Các phiên bản mới nhất của Fortran đã phần nào làm mới ngôn ngữ cũ đã được kiểm nghiệm qua thời gian, hỗ trợ phong cách hiện đại, bổ sung thêm lập trình hướng đối tượng, sự vắng mặt của ngôn ngữ này gần như là con át chủ bài quan trọng nhất của những người phản đối ngôn ngữ này. Hơn nữa, Tập đoàn Portland đã phát hành Trình biên dịch PGI CUDA Fortran, cho phép tính toán song song cao trên thẻ video. Vì vậy, bệnh nhân còn sống hơn, điều đó có nghĩa là các lập trình viên Fortran vẫn đang có nhu cầu.

    Thay vì lời bạt

    Và bây giờ tôi muốn quay lại chủ đề ban đầu về việc học lập trình và cố gắng trình bày ngắn gọn những ưu điểm chính của Fortran khi chọn nó làm ngôn ngữ đầu tiên.
    • Fortran rất dễ học, cú pháp có thể hiểu được đối với người chưa qua đào tạo. Khi bạn đã biết những điều cơ bản, thật dễ dàng để học lại bất kỳ ngôn ngữ nào khác.
    • Bộ công cụ miễn phí cho phép bạn không nhận những câu hỏi không cần thiết từ chủ sở hữu bản quyền.
    • Ngôn ngữ này quen thuộc với giáo viên vì nó đã tồn tại từ lâu và giáo viên của chúng tôi chủ yếu là đại diện của thế hệ cũ.
    • Được phân phối rộng rãi trên toàn thế giới và là một kho tàng của tất cả các loại thư viện.
    • Được chuẩn hóa, đa nền tảng và tương thích với các phiên bản trước đó.
    • Hữu ích cho sinh viên các ngành kỹ thuật, đặc biệt là vật lý và toán học, do nó tập trung vào các tính toán khoa học và kỹ thuật.
    • Có liên quan và có nhu cầu cho đến ngày nay.
    Vậy tại sao không phải là Fortran?

    Giữa thập niên 50 được đặc trưng bởi sự tiến bộ nhanh chóng trong lĩnh vực lập trình. Vai trò của lập trình trong mã máy bắt đầu giảm dần và các loại ngôn ngữ lập trình mới bắt đầu xuất hiện, đóng vai trò trung gian giữa máy móc và người lập trình. Đã đến lúc cho thế hệ ngôn ngữ lập trình thứ hai và thứ ba

    Từ giữa những năm 50. Thế kỷ XX bắt đầu tạo ra các ngôn ngữ lập trình cấp cao đầu tiên. Các ngôn ngữ này độc lập với Máy (không bị ràng buộc với một loại máy tính cụ thể).

    Nhưng mỗi ngôn ngữ đã phát triển trình biên dịch riêng - một chương trình thực hiện việc biên dịch.

    Biên dịch là việc dịch một chương trình được biên dịch bằng ngôn ngữ nguồn cấp cao sang một chương trình tương đương bằng ngôn ngữ cấp thấp gần giống với ngôn ngữ nguồn cấp cao. mã máy(mã tuyệt đối, mô-đun đối tượng, đôi khi bằng hợp ngữ)

    Ngôn ngữ lập trình FORTRAN

    Ngôn ngữ cấp cao đầu tiên được tạo ra từ năm 1954 đến năm 1957 bởi một nhóm lập trình viên do John Backus đứng đầu tại Tập đoàn IBM và đây trở thành giai đoạn tiếp theo trong quá trình phát triển ngôn ngữ lập trình. Đó là ngôn ngữ lập trình FORTRAN. Nó được thiết kế để tính toán khoa học và kỹ thuật. Tên Fortran là viết tắt của FORmulaTRANslator (trình dịch công thức).

    Lịch sử của ngôn ngữ

    Vào cuối năm 1953, John Backus đề xuất bắt đầu phát triển một giải pháp thay thế hiệu quả cho trình biên dịch để lập trình trên PC IBM 704. Đến giữa năm 1954, một bản đặc tả dự thảo đã được hoàn thành. ngôn ngữ Fortran. Hướng dẫn sử dụng đầu tiên dành cho Fortran xuất hiện vào tháng 10 năm 1956, cùng với trình biên dịch đầu tiên được xuất xưởng vào tháng 4 năm 1957. Trình biên dịch này là một trình biên dịch tối ưu hóa vì khách hàng không muốn sử dụng ngôn ngữ lập trình cấp cao không thể tạo mã với hiệu suất thấp hơn ngôn ngữ lắp ráp ngôn ngữ.

    Vào thời điểm đó, cộng đồng còn hoài nghi về cách lập trình mới và không tin rằng Fortran sẽ cho phép lập trình nhanh hơn và hiệu quả hơn. Theo chính John Backus, phần lớn công việc của ông đều nhằm mục đích “lười biếng”. Anh ấy thực sự không thích viết chương trình cho IBM 701 bằng trình biên dịch chương trình.

    Ngôn ngữ này đã được các nhà khoa học áp dụng rộng rãi để viết các chương trình tính toán chuyên sâu. Bao gồm kiểu phức tạp dữ liệu đã làm cho nó đặc biệt phù hợp cho các ứng dụng kỹ thuật.

    Đến năm 1960, phiên bản Fortran đã tồn tại máy tính IBM 709, 650, 1620, 7090. Sự phổ biến rộng rãi của nó đã khuyến khích các nhà sản xuất máy tính cạnh tranh tạo ra trình biên dịch Fortran cho máy tính của họ. Như vậy, đến năm 1963 đã có hơn 40 trình biên dịch cho nền tảng khác nhau. Đây là lý do tại sao Fortran được coi là ngôn ngữ lập trình được sử dụng rộng rãi đầu tiên.

    Fortran ở Liên Xô

    Fortran xuất hiện ở Liên Xô muộn hơn ở phương Tây, vì lúc đầu Algol được coi là ngôn ngữ có triển vọng hơn. Sự liên lạc giữa các nhà vật lý Liên Xô và các đồng nghiệp của họ tại CERN đóng một vai trò quan trọng trong việc giới thiệu Fortran, nơi mà vào những năm 1960 hầu hết mọi tính toán đều được thực hiện bằng các chương trình Fortran.

    Trình biên dịch Fortran đầu tiên của Liên Xô được tạo ra vào năm 1967 cho máy Minsk-2, nhưng nó không được phổ biến nhiều. Sự giới thiệu rộng rãi của Fortran bắt đầu sau khi trình biên dịch FORTRAN-DUBNA được tạo ra vào năm 1968 cho máy BESM-6. Máy tính ES, xuất hiện vào năm 1972, ban đầu đã có trình dịch Fortran (“mượn” từ IBM/360 cùng với phần mềm khác)

    Fortran hiện đại Đức hạnh của ngôn ngữ

    Fortran được sử dụng rộng rãi chủ yếu cho tính toán khoa học và kỹ thuật. Nó hoàn hảo để giải các bài toán số, vì nhiều thư viện đã được viết trong hơn 50 năm, vì vậy ngôn ngữ này hiện được sử dụng và không có nguy cơ bị lãng quên trong tương lai gần. Tuy nhiên, nó vẫn được sử dụng cho đến ngày nay không phải vì thiết kế thành công mà vì số lượng lớn các chương trình được viết trên đó, thay đổi và đặc biệt là viết lại, điều này vô nghĩa.

    Có lẽ, nếu bạn muốn tính toán nhanh một điều gì đó thì Fortran sẽ là một trong những lựa chọn tốt nhất. Đây chính xác là lý do tại sao ngôn ngữ được phát minh.

    Cấu trúc của nó cho phép trình biên dịch tối ưu hóa các phép tính rất tốt.

    Ví dụ, trong số các nhà khoa học, có một câu nói rằng bất kỳ vấn đề toán học nào cũng đều có lời giải trong Fortran, và thực sự, bạn có thể tìm thấy trong số hàng nghìn gói Fortran một gói để nhân ma trận, một gói để giải các phương trình tích phân phức tạp, v.v. nhiều người khác.