Π―Π·Ρ‹ΠΊ программирования Fortran - описаниС, основныС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ языки программирования высокого уровня

Π‘Π΅Ρ€Π΅Π΄ΠΈΠ½Π° 50-Ρ… Π³Π³. характСризуСтся ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ прогрСссом Π² области программирования. Роль программирования Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°Ρ… стала ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒΡΡ, стали ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ языки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ Π² Ρ€ΠΎΠ»ΠΈ посрСдника ΠΌΠ΅ΠΆΠ΄Ρƒ машинами ΠΈ программистами. Наступило врСмя Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅Π³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ языков программирования

Π‘ сСрСдины 50-Ρ‹Ρ… Π³Π³. XX Π². Π½Π°Ρ‡Π°Π»ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ языки программирования высокого уровня (high-levellanguage). Π­Ρ‚ΠΈ языки Π±Ρ‹Π»ΠΈ Машино нСзависимыми (Π½Π΅ привязаны ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π­Π’Πœ).

Но для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ языка Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ собствСнныС компиляторы - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ - трансляция ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, составлСнной Π½Π° исходном языкС высокого уровня, Π² ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΌ языкС, Π±Π»ΠΈΠ·ΠΊΠΎΠΌ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ (Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π° язык ассСмблСра)

Π―Π·Ρ‹ΠΊ программирования FORTRAN

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ язык высокого уровня Π±Ρ‹Π» создан Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ с 1954 ΠΏΠΎ 1957 Π³ΠΎΠ΄Π° Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ программистов ΠΏΠΎΠ΄ руководством Π”ΠΆΠΎΠ½Π° Бэкуса Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ IBM ΠΈ это стало ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ этапом развития языков программирования. Π­Ρ‚ΠΎ Π±Ρ‹Π» язык программирования FORTRAN. Он прСдназначался для Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ тСхничСских расчСтов. НазваниС Fortran являСтся сокращСниСм ΠΎΡ‚ FORmulaTRANslator (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Ρ„ΠΎΡ€ΠΌΡƒΠ»).

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ языка

Π’ ΠΊΠΎΠ½Ρ†Π΅ 1953 Π”ΠΆΠΎΠ½ Бэкус ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ эффСктивной Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ассСмблСру для программирования Π½Π° ПК IBM 704. Π£ΠΆΠ΅ ΠΊ сСрСдинС 1954 Π±Ρ‹Π»Π° Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Π° чСрновая спСцификация языка Fortran. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ руководство для Fortran появилось Π² октябрС 1956 вмСстС с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ компилятором, поставлСнным Π² Π°ΠΏΡ€Π΅Π»Π΅ 1957. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Π±Ρ‹Π» ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык программирования высокого уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π½Π΅ Π² состоянии Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π½ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ Ρƒ ассСмблСра.

Π’ Ρ‚ΠΎ врСмя сообщСство ΠΎΡ‚Π½ΠΎΡΠΈΠ»ΠΎΡΡŒ скСптичСски ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ способу программирования ΠΈ Π½Π΅ Π²Π΅Ρ€ΠΈΠ»ΠΈ Π² Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Fortran ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ быстрСС ΠΈ эффСктивнСС. По словам самого Π”ΠΆΠΎΠ½Π° Бэкуса большая Ρ‡Π°ΡΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π½ΠΈΠ²Ρ‹ΠΌΒ». Π•ΠΌΡƒ ΠΆΡƒΡ‚ΠΊΠΎ Π½Π΅ Π½Ρ€Π°Π²ΠΈΠ»ΠΎΡΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΎΠ΄ IBM 701 Π½Π° ассСмблСрС.

Π―Π·Ρ‹ΠΊ Π±Ρ‹Π» ΡˆΠΈΡ€ΠΎΠΊΠΎ принят ΡƒΡ‡Π΅Π½Ρ‹ΠΌΠΈ для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с интСнсивными вычислСниями. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ комплСксного Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… сдСлало Π΅Π³ΠΎ особСнно подходящим для тСхничСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

К 1960 Π³ΠΎΠ΄Ρƒ сущСствовали вСрсии Fortran для ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² IBM 709, 650, 1620, 7090. Π•Π³ΠΎ большая ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ±ΡƒΠΆΠ΄Π°Π»Π° ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ компиляторы Fortran для своих ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡƒΠΆΠ΅ ΠΊ 1963 сущСствовало Π±ΠΎΠ»Π΅Π΅ 40 компиляторов для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. ИмСнно ΠΏΠΎ этому Fortran ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ языком программирования.

Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Π² Π‘Π‘Π‘Π 

Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Π² Π‘Π‘Π‘Π  появился ΠΏΠΎΠ·ΠΆΠ΅, Ρ‡Π΅ΠΌ Π½Π° Π—Π°ΠΏΠ°Π΄Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠΎΠ½Π°Ρ‡Π°Π»Ρƒ Ρƒ нас Π±ΠΎΠ»Π΅Π΅ пСрспСктивным языком считался Алгол. Π’ΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€ΠΎΠ»ΡŒ сыграло ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ совСтских Ρ„ΠΈΠ·ΠΈΠΊΠΎΠ² со своими ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ ΠΈΠ· CERN, Π³Π΄Π΅ Π² 1960-Ρ… Π³ΠΎΠ΄Π°Ρ… ΠΏΠΎΡ‡Ρ‚ΠΈ всС расчёты вСлись с использованиСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ совСтский компилятор с Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° Π±Ρ‹Π» создан Π² 1967 Π³. для ΠΌΠ°ΡˆΠΈΠ½Ρ‹ «Минск-2Β», ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» большой извСстности. Π¨ΠΈΡ€ΠΎΠΊΠΎΠ΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ послС создания Π² 1968 Π³. компилятора ЀОРВРАН-ДУБНА для ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π‘Π­Π‘Πœ-6. ΠœΠ°ΡˆΠΈΠ½Ρ‹ Π•Π‘ Π­Π’Πœ, появившиСся Π² 1972 Π³., ΡƒΠΆΠ΅ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π»ΠΈ транслятор Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° («позаимствованный» с IBM/360 вмСстС с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм)

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½. Достоинства языка

Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ ΡˆΠΈΡ€ΠΎΠΊΠΎ использовался Π² основном для Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… вычислСний. Он прСкрасно ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ числСнных Π·Π°Π΄Π°Ρ‡, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π° 50 с лишним Π»Π΅Ρ‚ написано мноТСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, поэтому языком ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ сСйчас ΠΈ Π² блиТайшСм Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π΅ΠΌΡƒ Π½Π΅ Π³Ρ€ΠΎΠ·ΠΈΡ‚ Π·Π°Π±Π²Π΅Π½ΠΈΠ΅. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈ ΠΏΠΎ сСй дСнь, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΡƒΠ΄Π°Ρ‡Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, сколько Π² силу большого количСства написанных Π½Π° Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Ρ‚ смысла.

ВСроятно, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ быстро Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‚ΠΎ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². Π―Π·Ρ‹ΠΊ для этого ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈ изобрСтался.

Π•Π³ΠΎ структура способствуСт Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ компилятор ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вычислСния.

Π‘Ρ€Π΅Π΄ΠΈ ΡƒΡ‡Ρ‘Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ…ΠΎΠ΄ΠΈΡ‚ такая присказка, Ρ‡Ρ‚ΠΎ любая матСматичСская Π·Π°Π΄Π°Ρ‡Π° ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅, ΠΈ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ срСди тысяч фортрановских ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ для пСрСмноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ слоТных ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Fortran (Ρ‚Π°ΠΊΠΆΠ΅ FORTRAN) это язык программирования , Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π² Π½Π°Ρ‡Π°Π»Π΅ 1950-Ρ… Π³ΠΎΠ΄ΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π΄ΠΎ сих ΠΏΠΎΡ€. НазваниС являСтся сокращСниСм ΠΎΡ‚ "FORmula TRANslator". Π Π°Π½Π½ΠΈΠ΅ вСрсии языка Π±Ρ‹Π»ΠΈ извСстны ΠΊΠ°ΠΊ FORTRAN, Π½ΠΎ Π±ΡƒΠΊΠ²Ρ‹ пСрСстали Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ начиная с вСрсии Fortran 90. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ стандарты языка Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ язык ΠΊΠ°ΠΊ "FORTRAN".

>Fortran Π² основном ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… расчСтов ΠΈ числСнного Π°Π½Π°Π»ΠΈΠ·Π°. Π₯отя ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ это Π±Ρ‹Π» ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ язык, Π½ΠΎ Π² послСдниС вСрсии Fortran Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ….

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ компилятор FORTRAN Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для IBM 704 Π² 1954-57 Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ IBM ΠΏΠΎΠ΄ руководством Π”ΠΆΠΎΠ½Π° Бэкуса (John W. Backus). Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ компилятор, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΡ€Ρ‹ рассудили, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык, Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ программирования для Ρ‡Π°ΠΉΠ½ΠΈΠΊΠΎΠ², Ссли Π΅Π³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ сравнима с ассСмблСром.

Π―Π·Ρ‹ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ распространСниС Π² срСдС ΡƒΡ‡Π΅Π½Ρ‹Ρ… ΠΈ использовался для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с интСнсивными числСнными опСрациями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π»ΠΈ создатСлСй компиляторов Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° усСрдно ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ компиляторов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ быстрый ΠΊΠΎΠ΄. БСгодня сущСствуСт сноТСство поставщиков Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… компиляторов для Fortran. МногиС достиТСния Π² области Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΈ конструирования компиляторов Π±Ρ‹Π»ΠΈ ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠΎΠ΄ для Fortran ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΊΠ°ΠΊ полагаСтся для основ программирования.

Π˜Π·Π²Π΅ΡΡ‚Π½ΠΎ нСсколько вСрсий языка, Π² Ρ‚ΠΎΠΌ числС извСстныС FORTRAN IV (Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ FORTRAN 66), Fortran 77 ΠΈ Fortran 90. ПослСдний Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ стандарт для языка, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² 1997 Π³ΠΎΠ΄Ρƒ, извСстСн ΠΊΠ°ΠΊ Fortran 95. ВСрсии языка ΠΎΡ‚ IBM Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΈ Ρ‚Π°ΠΊ популярны, ΠΊΠ°ΠΊ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ компаниями, ΠΈ это особСнно касаСтся FORTRAN IV - WATFOR, вСрсия FORTRAN IV, разработанная Π² УнивСрситСтС Π’Π°Ρ‚Π΅Ρ€Π»ΠΎΠΎ Π² КанадС, Π±Ρ‹Π»Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ вострСбованной, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»Π° Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»Π° сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… компиляции. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π±Π»ΠΎΠΊ-схСм ΠΈΠ· FORTRAN ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ IBM

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ, язык опирался Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ форматирования исходного ΠΊΠΎΠ΄Π° ΠΈ интСнсивноС использования числовыС состояния ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ GOTO. Π­Ρ‚ΠΈ ΠΏΡ€ΠΈΡ‡ΡƒΠ΄Ρ‹ Π±Ρ‹Π»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ ΠΈΠ· Π½ΠΎΠ²Ρ‹Ρ… вСрсий языка. ΠŸΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вСрсии Ρ‚Π°ΠΊΠΆΠ΅ прСдставили "соврСмСнныС" ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ программирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² исходном ΠΊΠΎΠ΄Π΅ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ тСкста, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ IF-THEN-ELSE (Π² FORTRAN 77), рСкурсия (Π² Fortran 90), ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ вычислСния, Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΏΡ‹Ρ‚Π°ΡΡΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² Fortran "постный" ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΈ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π‘Ρ€Π΅Π΄ΠΈ самых популярных основанных Π½Π° Fortran языках, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ SAS, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для получСния статистичСских ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ², ΠΈ SIMSCRIPT, для модСлирования процСссов массового обслуТивания.

ΠŸΡ€ΠΎΠ΄Π°Π²Ρ†Ρ‹ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² (Burroughs, CDC, Cray, IBM, Texas Instruments) Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ для Fortran, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ использованиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… особСнностСй, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ: кэш инструкций, процСссор pipe-соСдинСний, Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… массивов ΠΈ Ρ‚. Π΄. НапримСр, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Fortran компиляторов IBM (H Extended IUP) содСрТал ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, которая заставляла инструкции машинного ΠΊΠΎΠ΄Π° Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² арифмСтичСской занятыми всС врСмя. Π”Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся CFD, особый "Π²Π°Ρ€ΠΈΠ°Π½Ρ‚" Π€ΠΎΡ€Ρ‚Ρ€Π°Π½, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΡΡƒΠΏΠ΅Ρ€ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ILLIAC IV, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ Ρ†Π΅Π½Ρ‚Ρ€Π΅ NASA Ames. Π­Ρ‚ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π»ΠΈΠ±ΠΎ исчСзли с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΆΠ΅ эти элСмСнты Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ Π² основной стандарт; основным Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ являСтся OpenMP, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ являСтся кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ для доступа ΠΊ ΠΎΠ±Ρ‰Π΅ΠΉ памяти. Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, CoArray Fortran, ΠΏΡ€ΠΈΠ·Π²Π°Π½ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования ΠΈ .

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Erlang Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ сильно Ρ€Π°ΡΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ синтаксис этого языка считаСтся Ρ‚Π°ΠΉΠ½ΠΎΠΏΠΈΡΡŒΡŽ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ программистами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ с соврСмСнных языков. Π’Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ лСксичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€, ΠΊΠΎΠ³Π΄Π° всСго ΠΎΠ΄ΠΈΠ½ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΉ символ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, Π° Π½Π΅ ошибки компиляции, Ссли ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ конструкции Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… самых Ρ€Π°Π½Π½ΠΈΡ… вСрсиях, Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (ООП), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² качСствС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² программирования Π² соврСмСнных условиях, ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, отсутствовало динамичСскоС распрСдСлСниС памяти. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, синтаксис языка Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Π±Ρ‹Π» ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΊ Π½Π°ΡƒΡ‡Π½Ρ‹ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΠΌ ΠΈ вычислСниям, связанным опСрациями Π½Π°Π΄ числами, Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π΅Π³ΠΎ нСдостатков Π±Ρ‹Π»ΠΈ ΡƒΡ‡Ρ‚Π΅Π½Ρ‹ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях. НапримСр, Fortran 95 ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для выполнСния матСматичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°ΠΌΠΈ ΠΈ массивами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для компилятора Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° ΠΌΠΎΠ³Π»Π° Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. По этим ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ, Fortran Π½Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… вычислСний, ΠΎΠ½ остаСтся языком для высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ числСнных вычислСний.

* "Магия ПК" 2000 β„–6(28), Π‘. 49–50.

Π’ 1955 Π³ΠΎΠ΄Ρƒ ΡƒΠ²ΠΈΠ΄Π΅Π» свСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ алгоритмичСский язык высокого уровня FORTRAN (FORmula TRANslator – транслятор Ρ„ΠΎΡ€ΠΌΡƒΠ»). Он использовался Π² основном для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π°ΡƒΡ‡Π½ΠΎ-тСхничСских ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π΅Π³ΠΎ сотрудники Ρ„ΠΈΡ€ΠΌΡ‹ IBM ΠΏΠΎΠ΄ руководством Π”ΠΆΠΎΠ½Π° Бэкуса . Π§ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅, Π² 1957 Π³ΠΎΠ΄Ρƒ, Π”ΠΆΠΎΠ½ Бэкус ΠΈ Π΅Π³ΠΎ сотрудники установили Π² IBM (Beстингхауз) ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ компилятор языка Π€ΠΎΡ€Ρ‚Ρ€Π°Π½. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π° АссСмблСрС, скСптичСски ΠΎΡ‚Π½ΠΎΡΠΈΠ»ΠΈΡΡŒ ΠΊ возмоТностям Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ языка высокого уровня, поэтому основным ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ стандартов Π½Π° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ ΠΈ создания компиляторов с этого языка Π±Ρ‹Π»Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ исполняСмого ΠΊΠΎΠ΄Π°. ΠšΡΡ‚Π°Ρ‚ΠΈ, Ρ‚Π΅Ρ€ΠΌΠΈΠ½ "компилятор" Ρ‚ΠΎΠ³Π΄Π° Π΅Ρ‰Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ Π½Π΅ использовался, хотя ΡƒΠΆΠ΅ Π±Ρ‹Π» Π²Π²Π΅Π΄Π΅Π½ ГрСйс Π₯ΠΎΠΏΠΏΠ΅Ρ€ – СдинствСнной Π² БША ΠΆΠ΅Π½Ρ‰ΠΈΠ½ΠΎΠΉ-Π°Π΄ΠΌΠΈΡ€Π°Π»ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π°Π·Ρ‹Π²Π°Π»ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ "ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π»Π΅Π΄ΠΈ программирования ΠΈ Π±Π°Π±ΡƒΡˆΠΊΠΎΠΉ Кобола".
Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ нСпосрСдствСнно Π² одну–двС ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, простыС синтаксичСскиС конструкции ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ использованиС ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ goto позволяло ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ быстрый ΠΊΠΎΠ΄, ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅ подчас Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ быстрСС ассСмблСрных. Π‘Π°ΠΌΠ° внутрСнняя структура оттранслированной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ простой – вСсь ΠΊΠΎΠ΄, всС ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ всС Π΄Π°Π½Π½Ρ‹Π΅ вмСстС с ΠΎΠ±Ρ‰ΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π»ΠΈΡΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² статичСской памяти, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ, ΠΏΡ€Π°Π²Π΄Π°, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ.
ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ языком высокого уровня, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΌ Π½ΡƒΠΆΠ΄Π°ΠΌ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π΄Π° Π΅Ρ‰Π΅ ΠΈ простым Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ, распространился ΠΎΠ½ ΠΎΡ‡Π΅Π½ΡŒ быстро.
Из-Π·Π° ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ распространСния этого языка ΠΈ появлСния мноТСства Π€ΠΎΡ€Ρ‚Ρ€Π°Π½-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (прСимущСствСнно Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π°) насущным стал вопрос Π΅Π³ΠΎ стандартизации. Π‘Π½Π°Ρ‡Π°Π»Π° это Π±Ρ‹Π» стандарт Fortran IV 1964 Π³ΠΎΠ΄Π°, Π·Π°Ρ‚Π΅ΠΌ, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ появлСния Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ΄Π΅ΠΉ, Π² 1978 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» принят Π½ΠΎΠ²Ρ‹ΠΉ стандарт Fortran 77 (f77) с большим числом Π±ΠΎΠ»Π΅Π΅ соврСмСнных ΠΈ Π³ΠΈΠ±ΠΊΠΈΡ… синтаксичСских Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ. БСгодня Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ Fortran 90 (f90) ΠΈ Fortran 95 . Π“Ρ€ΡƒΠΏΠΏΠ° энтузиастов Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ супСрвСрсиСй языка F2k, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° Π² этом Π³ΠΎΠ΄Ρƒ.
Π₯отя Π² Π½ΠΎΠ²Ρ‹Π΅ вСрсии языка вносились подчас ΠΊΠ°ΠΊ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ дополнСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, связанныС с динамичСской Π°Π»Π»ΠΎΠΊΠ°Ρ†ΠΈΠ΅ΠΉ памяти), Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅, Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π±ΠΎΡ‚Ρ‹ с частями массивов ΠΈ Π΄Ρ€., сСгодня этот язык нСльзя Π½Π°Π·Π²Π°Ρ‚ΡŒ пСрспСктивным для изучСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ синтаксис Π΅Π³ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ устарСл.
Однако Ρ‚Π΅ΠΌ, ΠΊΠΎΠΌΡƒ довольно часто приходится Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, совсСм Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π±Ρ€Π°Ρ‚ΡŒ Π² Ρ€ΡƒΠΊΠΈ ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ ΠΏΠΎ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈ "Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с нуля". Π’ 90% ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… случаСв Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅, ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠ΅Π½ΠΎ Π½Π° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, скорСС всСго, Тизнь Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Ρƒ обСспСчСна Π½Π°Π΄ΠΎΠ»Π³ΠΎ.
Π•ΡΡ‚ΡŒ ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π°, ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ молодая ниша для Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° – ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ вычислСния, Π³Π΄Π΅ строгая сСмантика языка позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ стандарт f90, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для указания ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹Ρ… ΠΊ Ρ€Π°ΡΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ²Π°Π½ΠΈΡŽ частСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ ΠΈΠΌΠ΅Π΅Ρ‚ свой стандарт HPF (High Performance Fortran). Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ„Π°Π½Π°Ρ‚Ρ‹ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π°, Π΄Π΅Π²ΠΈΠ·ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… стала лСгСндарная Ρ„Ρ€Π°Π·Π° "Π—Π°Ρ‡Π΅ΠΌ ΠΌΠ½Π΅ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки, ΠΊΠΎΠ³Π΄Π° я ΠΌΠΎΠ³Ρƒ всё Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅", ΠΎΡ‰ΡƒΡ‰Π°Π»ΠΈ Π΅Π³ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΡƒΡŽ Π½Π΅ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ для ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с ΠΏΡ€ΠΈΠ²ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊ синтаксису 50-Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΈ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ввСсти Π² Π½Π΅Π³ΠΎ ΠΌΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ ООП, Π½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Π² качСствС стандарта Ρ‚Π°ΠΊ ΠΈ Π½Π΅ появился.
Π‘Ρ€Π΅Π΄ΠΈ бСсплатно распространяСмых вСрсий Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстСн f2c, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для всСх UNIX-систСм ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠΉ тСкст Π€ΠΎΡ€Ρ‚Ρ€Π°Π½-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π‘ΠΈ-ΠΊΠΎΠ΄. Для DOS имССтся вСрсия bcf77, распространяСмая бСсплатно. Из коммСрчСских вСрсий Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Microsoft Fortran, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ dll-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈ Watcom Fortran, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ высокоэффСктивный ΠΊΠΎΠ΄. Для Π·Π°Π΄Π°Ρ‡, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… высокой точности вычислСний, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ компилятор Ρ„ΠΈΡ€ΠΌΡ‹ MicroWay. А Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎ качСству компиляторы Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π½Π° Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всСх ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….
Однако основная заслуга Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Когда появилась Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², нСдостатки Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π°, связанныС Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ с "тяТСлой" ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ, стали излишнС ΠΎΠ±Ρ€Π΅ΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ послуТил сильнСйшим стимулом для развития Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Появились сотни синтаксичСских Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π€ΠΎΡ€Ρ‚Ρ€Π°Π½-тСкстов, Π²Ρ‹Π»Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… скрытыС логичСскиС ошибки. Π’ дальнСйшСм ΠΈΠ· этого направлСния выросли Ρ‚Π°ΠΊΠΈΠ΅ тСорСтичСскиС области программирования, ΠΊΠ°ΠΊ эквивалСнтныС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ прСобразования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, высокоуровнСвая компиляция, автоматичСскоС тСстированиС ΠΈ Ρ‚.Π΄. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊ нСльзя. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² качСствС инструмСнтария Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… систСмной ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ смысла, Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π½Π°Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ программистами Π·Π° 30–40 Π»Π΅Ρ‚, Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… "ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊΠΎΠ²" для Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° Π½Ρ‹Π½Π΅ сущСствуСт нСсравнСнно большС, Ρ‡Π΅ΠΌ для Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования. β– 

* * *
Π”ΠΆΠΎΠ½ Бэкус родился 3 дСкабря 1924 Π² Π€ΠΈΠ»Π°Π΄Π΅Π»ΡŒΡ„ΠΈΠΈ, ΡˆΡ‚Π°Ρ‚ ПСнсильвания, Π² Π±ΠΎΠ³Π°Ρ‚ΠΎΠΉ сСмьС, дСтскиС Π³ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Π» Π² Π’ΠΈΠ»ΠΌΠΈΠ½Π³Ρ‚ΠΎΠ½Π΅. Π—Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ² ΡˆΠΊΠΎΠ»Ρƒ Π² 1942 Π³ΠΎΠ΄Ρƒ, ΠΎΠ½ поступил Π² унивСрситСт ΡˆΡ‚Π°Ρ‚Π° ВирдТиния Π½Π° химичСский Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ (ΠΏΠΎ Π½Π°ΡΡ‚ΠΎΡΠ½ΠΈΡŽ ΠΎΡ‚Ρ†Π°-Ρ…ΠΈΠΌΠΈΠΊΠ°), Π½ΠΎ спустя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя пСрСстал Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΈ Π² 1943 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ·Π²Π°Π½ Π½Π° Π²ΠΎΠ΅Π½Π½ΡƒΡŽ слуТбу.
Бэкус Π½Π°Ρ‡ΠΈΠ½Π°Π» ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π² Π±Ρ€ΠΈΠ³Π°Π΄Π΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠ²ΠΎΠ·Π΄ΡƒΡˆΠ½ΠΎΠΉ ΠΎΠ±ΠΎΡ€ΠΎΠ½Ρ‹ Π² Ρ„ΠΎΡ€Ρ‚Π΅ Stewart, ΡˆΡ‚Π°Ρ‚ ДТордТия, Π½ΠΎ впослСдствии Π±Ρ‹Π» Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π² ΠΊΠΎΠ»Π»Π΅Π΄ΠΆ для изучСния ΠΌΠ΅Π΄ΠΈΡ†ΠΈΠ½Ρ‹.
НСкотороС врСмя ΠΎΠ½ с ΡƒΠ²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² городской Π±ΠΎΠ»ΡŒΠ½ΠΈΡ†Π΅, Π½ΠΎ Π² 1946 Π³ΠΎΠ΄Ρƒ ΠΎΡ…Π»Π°Π΄Π΅Π» ΠΊ этой Ρ€Π°Π±ΠΎΡ‚Π΅, оставил Π°Ρ€ΠΌΠΈΡŽ ΠΈ ΠΏΠ΅Ρ€Π΅Π΅Ρ…Π°Π» Π² Нью-Π™ΠΎΡ€ΠΊ, хотя Π½Π΅ Π·Π½Π°Π» Π·Π° Ρ‡Ρ‚ΠΎ Π±Ρ€Π°Ρ‚ΡŒΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΆΠΈΡ‚ΡŒ дальшС.
Π§Π΅Ρ€Π΅Π· Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя Бэкус поступил Π² ΡˆΠΊΠΎΠ»Ρƒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Ρ€Π°Π΄ΠΈΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠΎΠ². "Π£ мСня Π±Ρ‹Π» ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»ΡŒ, ΠΈ ΠΎΠ½ попросил, Ρ‡Ρ‚ΠΎΠ±Ρ‹ я вычислил характСристики Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… схСм. Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ интСрСсно".
ВскорС Бэкус поступил Π² ΠšΠΎΠ»ΡƒΠΌΠ±ΠΈΠΉΡΠΊΠΈΠΉ унивСрситСт (Нью-Π™ΠΎΡ€ΠΊ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΡƒ, Π³Π΄Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π²Ρ‹ΡΡˆΠ΅Π΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (1949 Π³.). НСзадолго ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, ΠΎΠ½ посСтил ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΉ Ρ†Π΅Π½Ρ‚Ρ€ IBM Π½Π° Мэдисон АвСню. И здСсь ΡƒΠ΄Π°Ρ‡Π° Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π· ΡƒΠ»Ρ‹Π±Π½ΡƒΠ»Π°ΡΡŒ Π΅ΠΌΡƒ – Π² 1950 Π³ΠΎΠ΄Ρƒ Бэкус стал программистом ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ IBM.
О Π΄ΠΎΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ IBM Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ индустрии Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π·Π°Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π² 1952 Π³ΠΎΠ΄Ρƒ. Всё Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ с ΠΌΠΎΠ΄Π΅Π»ΠΈ 701, извСстной Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Defence Calculator (ΠΎΠ±ΠΎΡ€ΠΎΠ½Π½Ρ‹ΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒ). Π‘Ρ€Π°Π·Ρƒ послС выпуска ΠΌΠΎΠ΄Π΅Π»ΠΈ 701 спСциалисты подраздСлСния ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… исслСдований приступили ΠΊ Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡŽ (1955–1956 Π³ΠΎΠ΄Ρ‹).

НаиболСС ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ измСнСния ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» внСсти Π”ΠΆΠΎΠ½ Бэкус, впослСдствии ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π²ΡˆΠΈΠΉ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ участиС Π² создании ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° 704. Π’ частности, благодаря Π΅ΠΌΡƒ появилась тСхнология Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ "ускорСнного кодирования" (speed-coding), позволившая Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для 701. "Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ускорСнного формирования ΠΊΠΎΠ΄Π° для ΠΌΠ°ΡˆΠΈΠ½Ρ‹ 701, которая прСдставляла собой одноадрСсный ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ с фиксированной запятой Π±Π΅Π· индСксных рСгистров, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»Π° Π΅Π΅ Π² систСму с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ адрСсациСй ΠΈ индСксными рСгистрами, – вспоминал Бэкус. – Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΌΡƒΡ‡ΠΈΡ‚ΡŒΡΡ с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ".
Π£ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° появились ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ быстрого написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСгодня. ЀактичСски данная систСма стала ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΡ†Π΅ΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Ρ… комплСксов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π² 50–60 Π³ΠΎΠ΄Π°Ρ… ΠΈ впослСдствии вытСснСны языками высокого уровня.
А Π² 1955 Π³ΠΎΠ΄Ρƒ Бэкус "ΠΈΠ·ΠΎΠ±Ρ€Π΅Π»" Π€ΠΎΡ€Ρ‚Ρ€Π°Π½, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык высокого уровня. ВпослСдствии, вспоминая этот ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, Бэкус скаТСт: "ΠœΡ‹ Π½Π΅ Π·Π½Π°Π»ΠΈ, ΠΊ Ρ‡Π΅ΠΌΡƒ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ, ΠΈ Π½Π΅ Π·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ". ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»Π΅ 1954 Π³ΠΎΠ΄Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° языка Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ практичСски Ρ‡Π΅Ρ€Π΅Π· Π΄Π²Π° Π³ΠΎΠ΄Π°.
ΠŸΠ΅Ρ€Π²Π°Ρ вСрсия компилятора состояла ΠΈΠ· 25000 строк машинного ΠΊΠΎΠ΄Π°, записанного Π½Π° ΠΌΠ°Π³Π½ΠΈΡ‚Π½ΠΎΠΉ Π»Π΅Π½Ρ‚Π΅. КаТдая IBM 704 ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π»Π°ΡΡŒ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с руководством ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° 51 страницС.
Π’ 1959 Π³ΠΎΠ΄Ρƒ Бэкус Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» грамматичСскиС ΠΏΡ€Π°Π²ΠΈΠ»Π° для описания синтаксиса языков высокого уровня (Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° Бэкуса-Наура, сокращСнно БНЀ).
Π’ 1976 Π³ΠΎΠ΄Ρƒ Π”ΠΆΠΎΠ½ Бэкус Π±Ρ‹Π» Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ ΠΠ°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ мСдалью Π·Π° Π²ΠΊΠ»Π°Π΄ Π² Π½Π°ΡƒΠΊΡƒ, Π° с 1991 Π³ΠΎΠ΄Π° пСрСстал Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠΉ.

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ БуслаСв

OCR: fir-vst, 2016

  • gfortran
    • gfortran 4.5.0
  • Π―Π·Ρ‹ΠΊ программирования

    Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ (Fortran) - ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования высокого уровня (послС ), ΠΏΡ€Π°Π²Π΄Π°, с ΠΎΠ΄Π½ΠΎΠΉ нСбольшой ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΊΠΎΠΉ - для машин, построСнных ΠΏΠΎ классичСской схСмС Ρ„ΠΎΠ½ НСймана. Π‘ΠΎΠ·Π΄Π°Π½ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ с 1954 ΠΏΠΎ 1957 Π³ΠΎΠ΄ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ программистов ΠΏΠΎΠ΄ руководством Π”ΠΆΠΎΠ½Π° Бэкуса (John Backus) Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ IBM. Π§Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ Π΅Π³ΠΎ коммСрчСскиС поставки. Π”ΠΎ этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ вСлось Π»ΠΈΠ±ΠΎ нСпосрСдствСнно Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°Ρ…, Π»ΠΈΠ±ΠΎ Π½Π° символичСских ассСмблСрах. НазваниС Fortran являСтся Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΎΡ‚ FORmula TRANslator, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊ Ρ„ΠΎΡ€ΠΌΡƒΠ».

    Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ для Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… вычислСний. Одно ΠΈΠ· прСимущСств соврСмСнного Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° - большоС количСство написанных Π½Π° Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘Ρ€Π΅Π΄ΠΈ ΡƒΡ‡Ρ‘Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ…ΠΎΠ΄ΠΈΡ‚ такая присказка, Ρ‡Ρ‚ΠΎ любая матСматичСская Π·Π°Π΄Π°Ρ‡Π° ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅, ΠΈ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ срСди тысяч фортрановских ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ для пСрСмноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†, ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ слоТных ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Ряд Ρ‚Π°ΠΊΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² создавались Π½Π° протяТСнии дСсятилСтий ΠΈ популярны ΠΏΠΎ сСй дСнь (Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π² Π½Π°ΡƒΡ‡Π½ΠΎΠΉ срСдС).

    Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚Π°ΠΊΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ являСтся фактичСски достояниСм чСловСчСства: ΠΎΠ½ΠΈ доступны Π² исходных ΠΊΠΎΠ΄Π°Ρ…, Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Ρ‹ ΠΈ вСсьма эффСктивны. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ, Π° Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования Π½Π°ΠΊΠ»Π°Π΄Π½ΠΎ, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ рСгулярно производятся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ автоматичСского конвСртирования FORTRAN-ΠΊΠΎΠ΄Π° Π½Π° соврСмСнныС языки программирования.

    Π‘Π²ΠΎΠ΅Π³ΠΎ Ρ€ΠΎΠ΄Π° Β«Π²ΠΈΠ·ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΎΠΉΒ» старого Fortran являСтся ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались ΠΊΠ°ΠΊ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° GOTO , Ρ‚Π°ΠΊ ΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ², ΠΈ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… описания Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° FORMAT . Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ количСства ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² GOTO часто Π΄Π΅Π»Π°Π»ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌΠΈ для понимания.

    ИмСнно этот Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ стал ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² рядС соврСмСнных языков программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Java) ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ связанныС с Π½ΠΈΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚.

    Однако соврСмСнный Fortran ΠΈΠ·Π±Π°Π²Π»Π΅Π½ ΠΎΡ‚ ΠΈΠ·Π±Ρ‹Ρ‚ΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠΊ Π·Π° счСт ввСдСния Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊΠ°ΠΊ DO … END DO, DO WHILE, SELECT CASE. Π’Π°ΠΊΠΆΠ΅ ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ‡Π΅Ρ€Ρ‚Π°ΠΌ соврСмСнного Fortran стоит отнСсти большоС количСство встроСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с массивами ΠΈ Π³ΠΈΠ±ΠΊΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ массивов с Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ индСксациСй.

    ВзаимодСйствиС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ языками

    МногиС систСмы программирования ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ трансляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Fortran ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΎΡ‚ компиляторов с Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, Ρ‡Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ прилоТСния. Для языка Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Ρ‚Π°ΠΊΠΆΠ΅ доступно большоС количСство Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, содСрТащих ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ классичСских Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ (LAPACK, IMSL, BLAS), Π·Π°Π΄Π°Ρ‡ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ распрСдСлСнных вычислСний (MPI, pvm), Ρ‚Π°ΠΊ ΠΈ Π·Π°Π΄Π°Ρ‡ построСния графичСских интСрфСйсов (Quickwin, FORTRAN/TK) ΠΈΠ»ΠΈ доступа ΠΊ Π‘Π£Π‘Π” (Oracle).

    НаслСдиС Fortran

    Fortran использовался Π±ΠΎΠ»Π΅Π΅ пятидСсяти Π»Π΅Ρ‚ ΠΈ сущСствуСт огромная Ρ‡Π°ΡΡ‚ΡŒ принадлСТащая Π΅ΠΌΡƒ ΠΈ ΠΏΠΎ сСй дСнь. Fortran - основной язык для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Ρ… вычислСний, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ³ΠΎΠ΄Ρ‹ ΠΈ ΠΊΠ»ΠΈΠΌΠ°Ρ‚Π°, Π³ΠΈΠ΄Ρ€ΠΎΠ³Π°Π·ΠΎΠ΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°, Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ химия, квантовая Ρ…Ρ€ΠΎΠΌΠΎΠ΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ°, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ солнСчной систСмы, вычислСниС ΠΎΡ€Π±ΠΈΡ‚ искусствСнных спутников ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ.

    ΠŸΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ

    ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ для Fortran Π±Ρ‹Π»Π° вСсьма насущной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ сущСствовало Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ стандарта ΠΈ Π΄Π°ΠΆΠ΅ справочной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚ IBM. И ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Π΅ Ρ„ΠΈΡ€ΠΌΡ‹ сопСрничали ΠΌΠ΅ΠΆΠ΄Ρƒ собой, обСспСчивая Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ для Ρ€Π°Π·Π½Ρ‹Ρ… компиляторов. Π˜ΡΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π΄Π΅Π»ΠΎ появлСниС стандартов. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ 1966 Π³ΠΎΠ΄Π° устанавливал синтаксис ΠΈ сСмантику, Π½ΠΎ ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΈ Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ нСсовмСстимыС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ. ΠžΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ программисты ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ, Ρ‡Ρ‚ΠΎ использованиС нСсовмСстимых Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ пСрСносимости ΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ использовали ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Β«The PFORT VerifierΒ» для выявлСния нСсовмСстимых Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ.

    НСсовмСстимыС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Π±Ρ‹Π»ΠΈ Π½Π΅ СдинствСнной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. БущСствовал ряд ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с числСнными вычислСниями. ПозТС Π±Ρ‹Π»Π° Ρ€Π°Π·Π²ΠΈΡ‚Π° ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½Π° практичСски ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Π°Ρ идСя Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΈ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой.

    Доступ ΠΊ исполняСмой срСдС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ срСды) Π±Ρ‹Π» вСсьма Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»Π΅Π½, ΠΏΠΎΠΊΠ° Π½Π° это Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈ Π½Π° это Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π² стандартС 2003 Π³ΠΎΠ΄Π°.

    БСйчас ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° Fortran.

    Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ синтаксиса:

    ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° строки ! ΠΈΠ»ΠΈ * Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ символС строки
    Π Π΅Π³ΠΈΡΡ‚Ρ€ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ НСт
    РСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ [_a-zA-Z0-9]{0-n}
    ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ =
    ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ type:: variable
    ОбъявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с присваиваниСм значСния type:: variable = value
    Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ()
    Π‘Π»ΠΎΠΊ do ... end do
    РавСнство = ΠΈΠ»ΠΈ.EQ.
    НСравСнство /= ΠΈΠ»ΠΈ.NE.
    Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ == < > <= >= <> ΠΈΠ»ΠΈ.LT. .GT. .LE. .GE.
    Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CALL f(a,b...)
    Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² CALL f
    ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ† строки
    Если - Ρ‚ΠΎ if condition then ... end if
    Если - Ρ‚ΠΎ - ΠΈΠ½Π°Ρ‡Π΅ if condition then ... else ... endif
    Π¦ΠΈΠΊΠ» с постусловиСм DO ... WHILE (condition)
    Π¦ΠΈΠΊΠ» for - next для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ†Π΅Π»Ρ‹Ρ… чисСл с ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π½Π° 1 do label i = 1, 10
    Π¦ΠΈΠΊΠ» for - next для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ†Π΅Π»Ρ‹Ρ… чисСл с Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠΌ Π½Π° 1 do label i = 10, 1, -1

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

    Hello, World!:

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для вСрсий Intel Visual Fortran 11.1 , g95 0.93 , gfortran 4.5.0

    Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ написан Π² свободном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Fortran 90 ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ стандартами, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΎΠΌ .

    Fortran 90-style comment program HelloWorld print * , "Hello, World!" end program HelloWorld

    Π€Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»:

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для вСрсий Intel Visual Fortran 11.1 , g95 0.93 , gfortran 4.5.0

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π° ΠΈ свободный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° I ΠΈ A ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π²Ρ‹Π²ΠΎΠ΄Π° чисСл Π² дСсятичном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈ строк, соотвСтствСнно. ΠŸΡ€ΠΈ вычислСнии Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»ΠΎΠ² 13-16 Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ арифмСтичСскоС ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ, поэтому выводятся Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ значСния:

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

    program Factorial integer :: f , n f = 1 n = 0 do print "(I2, A, I10)" , n , "! = " , f n = n + 1 f = f * n if (n == 17 ) then exit end if end do end program Factorial

    Числа Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ:

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для вСрсий Intel Visual Fortran 11.1 , g95 0.93 , gfortran 4.5.0

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ. Π‘Π°ΠΌΠΎΠ΅ слоТноС Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ β€” Π²Ρ‹Π²ΠΎΠ΄ вычислСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, Π² ΠΎΠ΄Π½Ρƒ строку ΠΈ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ². БпСцификация Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° (I3, A, $) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ выводится Ρ†Π΅Π»ΠΎΠ΅ число Π² дСсятичном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ Ρ€ΠΎΠ²Π½ΠΎ Ρ‚Ρ€ΠΈ символа, Π·Π°Ρ‚Π΅ΠΌ выводится строка, ΠΈ Π½Π°ΠΊΠΎΠ½Π΅Ρ†, $ подавляСт ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ print ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ всС выводится Π² ΠΎΠ΄Π½Ρƒ строку. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚Π΅ спСцификатор Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° $ Π½Π΅ являСтся стандартным; ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, Π½ΠΎ ΠΏΡ€ΠΈ компиляции Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ± этом.

    program Fibonacci integer :: 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

    ΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅:

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для вСрсий g95 0.93 , gfortran 4.5.0

    Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ встроСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… complex . // β€” ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк. Число ΠΏΠ΅Ρ€Π΅Π΄ скобками Π² описании Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ количСство Ρ€Π°Π·, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ повторяСтся Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π² скобках (Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π΄Π²Π°ΠΆΠ΄Ρ‹ β€” для ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΠΎΡ€Π½Π΅ΠΉ).

    program Quadratic integer :: a , b , c real :: d , p1 , p2 complex :: cp2 read (* , * ), a if (a == 0 ) then write (* , * ) "Not a quadratic equation" stop end if read (* , * ) b read (* , * ) 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 ) then p2 = sqrt (d ) / 2.0 / a write (* , "(2(A, F8.3))" ) "x1 = " , p1 + p2 , char (13 ) // char (10 ) // "x2 = " , p1 - p2 else cp2 = sqrt (cmplx (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

    Hello, World!:

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для вСрсий f2c 20090411 , g95 0.93 , gfortran 4.5.0

    FORTRAN 77); ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡˆΠ΅ΡΡ‚ΡŒ символов ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΠΎΠ΄ ΡΠ»ΡƒΠΆΠ΅Π±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ β€” ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ строка являСтся ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ, ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° строк. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ символов Fortran Π½Π΅ содСрТит символов Π½ΠΈΠΆΠ½Π΅Π³ΠΎ рСгистра, поэтому всС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· этого ΠΏΡ€Π°Π²ΠΈΠ»Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ константы β€” ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ систСмой.

    ΠŸΠ΅Ρ€Π²Π°Ρ строка Π΄Π°Π΅Ρ‚ этому Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρƒ ΠΊΠΎΠ΄Π° имя HELLO ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ являСтся основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ. Имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ подчиняСтся Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ Π»ΡŽΠ±Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², Ρ‚.Π΅. Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Π±ΡƒΠΊΠ²Ρ‹ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 6 символов.

    Команда WRITE Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ. Π’ скобках пСрСдаСтся список ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Π²Ρ‹Π²ΠΎΠ΄: UNIT Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ» Π²Ρ‹Π²ΠΎΠ΄Π° (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” консоль), FMT β€” Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π°. Π—Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΈ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ИмСна ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, сокращСнно эта ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° выглядСла Π±Ρ‹ ΠΊΠ°ΠΊ WRITE (*, *) ... .

    Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ строковая константа ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅.

    A simple Hello, World! program PROGRAM HELLO WRITE (UNIT =* , FMT =* ) "Hello, World!" END

    Π€Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»:

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для вСрсий f2c 20090411 , g95 0.93 , gfortran 4.5.0

    Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ написан Π² фиксированном Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ (ΡΡ‚ΠΈΠ»ΡŒ FORTRAN 77) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ вычислСниС Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ°Π»Π°.

    Fortran позволяСт ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…; Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΎΠ½ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΡ… Ρ‚ΠΈΠΏΡ‹ сам, Π½ΠΎ, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… языков, Π½Π΅ ΠΏΠΎ контСксту использования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π° ΠΏΠΎ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ β€” Ссли пСрвая Π±ΡƒΠΊΠ²Π° названия I..N, выбираСтся Ρ‚ΠΈΠΏ INTEGER , ΠΈΠ½Π°Ρ‡Π΅ β€” REAL . Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΎΠ±Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅.

    Π¦ΠΈΠΊΠ» DO Π² Π΄Π°Π½Π½ΠΎΠΌ случаС соотвСтствуСт Ρ†ΠΈΠΊΠ»Ρƒ FOR Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… языков: счСтчик Ρ†ΠΈΠΊΠ»Π° N ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ±Π΅Π³Π°Π΅Ρ‚ всС значСния ΠΎΡ‚ 0 Π΄ΠΎ 16. Π’Π΅Π»ΠΎ Ρ†ΠΈΠΊΠ»Π° заканчиваСтся Π½Π° строкС с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ 1 , которая ΡƒΠΊΠ°Π·Π°Π½Π° Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ Ρ†ΠΈΠΊΠ»Π°.

    Команда PRINT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ компилятора.

    PROGRAM) C . Из-Π·Π° этого послС посимвольного заполнСния строки CC , содСрТащСй Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚, остаток строки приходится Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

    ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ символ исходной строки являСтся Π±ΡƒΠΊΠ²ΠΎΠΉ, слишком Π΄Π»ΠΈΠ½Π½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½Ρƒ строку (всС символы строки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, начиная с 73-Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ), поэтому Π΅Π΅ приходится Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° Π΄Π²Π΅ строки ΠΈ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ (Π»ΡŽΠ±Ρ‹ΠΌ символом Π² 6 ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ).

    ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния Π² FORTRAN 77 Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ.LE. , .GE. ΠΈ Ρ‚.Π΄. ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ символы > ΠΈ < Π½Π΅ входят Π² Π½Π°Π±ΠΎΡ€ символов языка; ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Fortran 90.

    PROGRAM CAMELC CHARACTER TEXT * 30 , CC * 30 LOGICAL 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. END IF 1 CONTINUE DO 2 , I = NCC + 1 , LEN (CC ) 2 CC (I : I ) = " " WRITE (* , * ) CC END



    Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ я ΡƒΡΠ»Ρ‹ΡˆΠ°Π» ΠΎ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π΅ Π² Ρ€Π°Π½Π½Π΅ΠΌ дСтствС ΠΎΡ‚ ΠΎΡ‚Ρ†Π°. Он рассказывал, Ρ‡Ρ‚ΠΎ Π² 70-Ρ… Π³ΠΎΠ΄Π°Ρ… Π΅ΠΌΡƒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ часами Π²Ρ‹ΡΡ‚Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ ΠΊ Π΅Π΄Π²Π° Π»ΠΈ Π½Π΅ СдинствСнной Π­Π’Πœ Π² Π’Π£Π—Π΅, Π΄Π°Π±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠ΅Ρ€Ρ„ΠΎΠΊΠ°Ρ€Ρ‚Ρƒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠŸΡ€ΠΈΠ·Π½Π°ΡŽΡΡŒ чСстно, с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ ΠΈ Π΄ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (нСсмотря Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ тСхничСскоС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅) я ΠΏΡ€Π΅Π±Ρ‹Π²Π°Π» Π² ΠΏΠΎΠ»Π½ΠΎΠΉ увСрСнности, Ρ‡Ρ‚ΠΎ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ остался Π³Π΄Π΅-Ρ‚ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ Ρ‚Π°ΠΌ, Π² ΠΌΠΈΡ€Π΅, Π³Π΄Π΅ носитСлями ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ странныС ΠΊΠ°Ρ€Ρ‚ΠΎΠ½ΠΊΠΈ с Π΄Ρ‹Ρ€ΠΊΠ°ΠΌΠΈ, Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ стоят Ρ‚Π°ΠΊ Π΄ΠΎΡ€ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ, ΠΊΠ°ΠΊ настоящий Π°Ρ‚Ρ‚Ρ€Π°ΠΊΡ†ΠΈΠΎΠ½.

    Каково ΠΆΠ΅ Π±Ρ‹Π»ΠΎ ΠΌΠΎΡ‘ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° я ΡƒΠ·Π½Π°Π», Ρ‡Ρ‚ΠΎ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Π½Π΅ просто Π΅Ρ‰Ρ‘ Π³Π΄Π΅-Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, ΠΎΠ½ развиваСтся, вострСбован ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½. Если Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΠΎΠ»Π°Π³Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ Π΄Π°Π²Π½ΠΎ носит статус ΠΌΠ΅Ρ€Ρ‚Π²Π΅Ρ†Π°, Ρ‚ΠΎ Π²ΠΎΡ‚ Π²Π°ΠΌ нСсколько интСрСсных Ρ„Π°ΠΊΡ‚ΠΎΠ², ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ Π΅Ρ‰Ρ‘ Ρ…ΠΎΠ΄ΠΈΡ‚.

    ΠŸΠ΅Ρ€Π΅ΠΆΠΈΠ» ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 10 ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ

    Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚ΠΎΡ‚ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ ΡΠ»Ρ‹ΡˆΠΈΡ‚Π΅ ΠΎΡ‚ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² школС ΠΈΠ»ΠΈ унивСрситСтС Π±Ρ‹Π» создан Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ с 1954 ΠΏΠΎ 1957 Π³ΠΎΠ΄Π°. Он Π²ΠΎΡˆΡ‘Π» Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык высокого уровня, ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΠ» малСнький ΠΏΡ€ΠΎΡ€Ρ‹Π² Π² IT-ΠΌΠΈΡ€Π΅, Π½ΠΎ ΠΏΠΎ сути Π±Ρ‹Π» Π½Π΅ слишком ΡƒΠ΄ΠΎΠ±Π΅Π½ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½. β€œΠ”ΠΎΠΏΠΈΠ»ΠΈΠ²Π°Ρ‚ΡŒβ€ Π΅Π³ΠΎ Π² IBM ΠΏΡ€ΠΈΠ½ΡΠ»ΠΈΡΡŒ практичСски сразу, ΡƒΠΆΠ΅ Π² 1958 Π³ΠΎΠ΄Ρƒ появился FORTRAN II ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ FORTRAN III. Но Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΎΠ½ ΠΏΡ€ΠΈΠΎΠ±Ρ€Ρ‘Π» лишь Π² 70-Ρ…, ΠΊΠΎΠ³Π΄Π° появились достаточно ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, ΠΊΠΎΠ³Π΄Π° Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ стандарт IBM FORTRAN IV, ΠΈ появился FORTRAN 66 с Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ, ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ, условными ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠΌΠΈ ΠΏΠΎ соврСмСнным ΠΌΠ΅Ρ€ΠΊΠ°ΠΌ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ возмоТностями.

    ПослСдняя вСрсия появилась Π² 2010 Π³ΠΎΠ΄Ρƒ, Π΅Ρ‘ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Fortran 2008 (ΠΊΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π² Ρ…ΠΎΠ΄Π΅ истории, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ пСрСстало ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ), ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ всСвозмоТныС ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ вычислСния, ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ, ΠΊΠ°ΠΊ Π½Π° скорости ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΈ Π½Π° размСрности ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… массивов. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° 2018 Π³ΠΎΠ΄ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ Π²Ρ‹Ρ…ΠΎΠ΄ Fortran 2015. Из анонса слСдуСт, Ρ‡Ρ‚ΠΎ Π² Π½Ρ‘ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° интСграция с Π‘, Π° Ρ‚Π°ΠΊΠΆΠ΅ устранСны Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

    Π’Ρ…ΠΎΠ΄ΠΈΡ‚ Π² 30 самых популярных языков программирования

    На сСгодняшний дСнь 0,743% запросов Π² поисковых систСмах ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ языков программирования посвящСну ΠΈΠΌΠ΅Π½Π½ΠΎ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Ρƒ. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ поняли, насколько это ΠΊΡ€ΡƒΡ‚ΠΎ, просто ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ языки, ΠΊΠ°ΠΊ Lisp, Scala, Clojure, LabVIEW, Haskell, Rust ΠΈ VHDL, находятся Π² Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π΅ Π½ΠΈΠΆΠ΅.

    ΠœΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° Android (ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ)

    ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ для Π€ΠΎΡ€Ρ‚Π°Π½Π° Π·Π° Π΅Π³ΠΎ Π΄ΠΎΠ»Π³ΡƒΡŽ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ Ρ‚Π°ΠΊΠΈΠΌΠΈ компаниями, ΠΊΠ°ΠΊ IBM, Microsoft, Compaq, HP, Oracle, благодаря Ρ‡Π΅ΠΌΡƒ сСгодня язык совмСстим с Windows, Mac OS ΠΈ Linux. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с компилятором Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ с собой, благодаря ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ CCTools для Android. МоТно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ компилятор ΠΈ Π½Π° вашСм iPhone, Π½ΠΎ Π² этом случаС Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΄ΠΎΠ²Π°Ρ‚ΡŒ.

    ΠšΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ с MATLAB

    Пока Π² этом тСкстС Π½Π΅ Π±Ρ‹Π»ΠΎ сказано Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ области примСнСния Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π°. Π’Π°ΠΊ Π²ΠΎΡ‚ это язык, вострСбованный Π² Π½Π°ΡƒΠΊΠ΅ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ»ΠΈ частично примСняСмый для ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·Π° ΠΏΠΎΠ³ΠΎΠ΄Ρ‹, ΠΎΠΊΠ΅Π°Π½ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, молСкулярной Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ, сСйсмологичСского Π°Π½Π°Π»ΠΈΠ·Π°. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, это самый настоящий β€œData Science”-язык Ρ€ΠΎΠ΄ΠΎΠΌ ΠΈΠ· Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π² ΠΌΠ°ΡΡΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΠ΄Π°ΠΆΡƒ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ поступил ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ‚ΠΎΡ€.

    ΠŸΡ€ΠΈ этом стоит ΠΏΡ€ΠΈΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ частично своСй ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ обязан наслСдию. Π—Π° Π΄ΠΎΠ»Π³ΠΈΠ΅ Π³ΠΎΠ΄Ρ‹ практичСски Π±Π΅Π· ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΠΈ язык оброс ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ надстроСк. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, каТдая ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ вСрсия Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ слоТилась ситуация, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ сущСствСнныС Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹, для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‡Ρ‘Π½Ρ‹Π΅ ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ этого союза.

    По сути, Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠΌ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° Π½Π° сСгодняшний дСнь являСтся MATLAB, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΠΎΠ»Π΅Π΅ унивСрсалСн, Π±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π΅Π½ ΠΈ ΡƒΠ΄ΠΎΠ±Π΅Π½. Однако MATLAB ΠΏΡ€ΠΈ этом ΠΈΠΌΠ΅Π΅Ρ‚ строгиС ограничСния ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ ПО, достаточно Π΄ΠΎΡ€ΠΎΠ³ΠΎ стоит ΠΈ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв просто излишСн.

    Π˜ΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±Π΅Π·ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠ΅ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅

    БСзусловно, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· 10-20 Π»Π΅Ρ‚, ΠΈ ΠΊΠ°ΠΊ Π·Π° это врСмя измСнится IT-ΠΌΠΈΡ€. Однако, Ссли ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚ΠΎΠ² для Π€ΠΎΡ€Ρ‚Ρ€Π°Π½Π° (Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ Go), ΠΈΡ… Π³Π»Π°Π²Π½Ρ‹ΠΉ нСдостаток - унивСрсализация. Π’ΠΎ Π΅ΡΡ‚ΡŒ создатСли Fortran ΠΎΡ‡Π΅Π½ΡŒ быстро Π½Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ Π² Π²ΠΈΠ΄Π΅ ΡƒΡ‡Ρ‘Π½Ρ‹Ρ…, ΠΈΡ… ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΈ поТСлания ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π°Π²Ρ‚Ρ€Π° ΠΎΠ½ΠΈ откаТутся ΠΎΡ‚ своСго β€œΡΠΏΠ΅Ρ†Π·Π°ΠΊΠ°Π·Π°β€ Ρ€Π°Π΄ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ. ИмСнно Π½Π° основании этого ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ Π€ΠΎΡ€Ρ‚Ρ€Π°Π½ ΠΎΡ‚Ρ…ΠΎΠ΄ΠΈΡ‚ смСло.

    А ΠΏΠΎΡ‚ΠΎΠΌ ΠΎΠ½ΠΈ просто выпустят Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.