Zinātnes un inženierzinātņu attīstība, izmantojot daudzus svarīgus pasākumus, joprojām balstās uz Fortran nekā uz jebkuru citu valodu. Pārsteigts? Jums nevajadzētu būt, lai gan daudzi cilvēki, kuri sevi dēvē par programmētājiem, nekad nav iemācījušies Fortran. Es iemācīšu jums Fortran pēc piecām minūtēm vai mazāk. Tas nekaitēs, un jūs zināt, kas, iespējams, ir visu laiku vissvarīgākā un ietekmīgākā programmēšanas valoda.
Datorzinātnieki var izturēties tā, it kā Fortrana neeksistē, taču populārā kultūraSimpsoni, 26. sezona, 10. sērija) veicās labāk ar gudro novērojumu: “Fortran, lielākā no programmēšanas valodām!” Patiesībā vairāk nekā puse pasaules jaudīgāko datoru veikto aprēķinu nāk no Fortran. Dažās lielās sistēmās Fortran kods var būt atbildīgs par 80–100% aprēķina.
To ir arī neticami viegli iemācīties, kā redzēsit ar šo īso ievadu par Fortran programmēšanu. Es pieņemu, ka jūs jau zināt, kā programmēt kaut ko citu, nevis Fortran (ja programmēšana jums ir pilnīgi jauna, es ļoti iesaku mācīties Fortran ar “A Fortran krāsojamo grāmatu”).
Sāksim
programma sveiki
drukāt *, "Sveika, pasaule!"
beigu programma sveiki
Ierakstiet (failam izmantojiet paplašinājumu .f95 vai .f90), apkopojiet, palaidiet to, un tas izdrukā “Hello, World!”. “*” Drukātajā paziņojumā būtībā nozīmē formatēt automātiski.
Mans otrais piemērs veic matemātiku un pabeidz teikumus “ja / tad / vēl”:
programmas simbols
netiešs neviens
real :: atbilde, x, y, summa, prod, cubedx, cubedy
print *, 'Ievadiet divus ciparus (x un y)'
lasīt *, x
lasīt *, y
summa = x + y
prod = x * y
kubekss = x ** 3;
cubedy = y ** 3;
print *, 'Summa x + y ir', summa
print *, 'Produkts x * y ir', prod
drukāt *, 'Cubed x un y', cubedx, cubedy
drukāt *, 'x un y sinusa', grēks (x), grēks (y)
ja (x> y), tad
print *, 'Es pamanīju, ka x ir lielāks par y'
cits
print *, 'Šķiet, ka y nav mazāks par x'
beigties, ja
beigu programmas simbols
Jūs, iespējams, pamanīsit, ka es ielaidu “netiešo nevienu”. Tas ir normāli mūsdienu Fortran - tas liek sastādītājam pieprasīt, lai mainīgie tiktu skaidri deklarēti, lai nezināmie mainīgie tiktu atzīmēti kā kļūdas. Bez tā Fortran pieņem, ka mainīgie, kas sākas ar ‘i’ līdz ‘n’ (pirmie divi veselā skaitļa burti), ir veseli skaitļi, bet citi ir peldošā komata skaitļi (‘reāli’). Tas samazināja to karšu skaitu, kas mums bija jāizcērt pirms vairākiem gadu desmitiem, taču šajos jaunajos laikos tā parasti tiek noraizēta.
Palaidot šo programmu (un ierakstot 3.14. Un 1.57. Versijā), iegūst:
Ievadiet divus ciparus (x un y)
3.14
1.57
Summa x + y ir 4,71000004
Produkts x * y ir 4,92980051
Kubiņi x un y 30.9591484 3.86989355
x un y sinusija 1.59254798E-03 0.999999702
Es pamanīju, ka x ir lielāks par y
Fortran ir paredzēts matemātikai (FORmula TRANslation). Ņemiet vērā, ka “sin (…)” ir iebūvēts bez nepieciešamības iekļaut galveni vai pakotni. Protams, Fortran atbalsta peldošo un veselu skaitļu skaitļus, bet atbalsta arī sarežģītus skaitļus. Nav nepieciešamas piedevas.
Mans trešais piemērs ir saistīts ar cilpām (Fortranā to sauc par “do”):
programmas cilpa
netiešs neviens
vesels skaitlis: i, j, paturēt (100,2), w
w = 0
do i = 10, 50, 5
dari j = i, 20, 5
drukāt *, i, j
w = w + 1
turēt (w, 1) = i
turēt (w, 2) = j
beigas darīt
beigas darīt
do i = 1, w
drukāt *, 'saglabāt:', saglabāt (i, 1), saglabāt (i, 2)
beigas darīt
beigu programma
Drukas līnija manā paraugprogrammā tiek izpildīta tikai tad, ja darbojas j do-loop. J cilpa vispār nedarbojas, kad es pārsniedzu 20. Šis piemērs arī ievieš masīvus, izmantojot masīvu ar nosaukumu 'keep'. Fortran sāk masīvu numerāciju '1', nevis nulli, kas ir tas pats, kā amerikāņi numurē ēkas (2. stāvs attiecas uz pirmo stāvu, kas tiek pieņemts kā “1”). Citas vietas pasaulē izmanto ēkām, kuru pamatā ir nulle (“pirmais stāvs” ir tas, ko amerikāņi sauc par “otro stāvu”), piemēram, C un C ++. Rezultāts no šī “programmas cikla” piemēra ir parādīts zemāk:
10 10
10 15
10 20
15 15
15 20
20 20
turēt: 10 10
glabāt: 10 15
glabāt: 10 20
glabāt: 15 15
glabāt: 15 20
glabāt: 20 20
Pēdējā piemērā es definēšu apakšprogrammu (funkciju) ar nosaukumu “ave”, lai ņemtu vidēji trīs skaitļus, kurus es statiski definēju. Jūs ievērosiet, ka es kļuvu slinks un vienkārši uzrakstīju “beigas” pēc programmas un funkcijas. Tas ir labi, bet, ja jūs izmantojat vārdus, tāpat kā es to darīju iepriekš, kompilators palīdzēs pārbaudīt, vai beigas sakrīt ar to, kuru jūs vēlējāties.
Programma callret
netiešs neviens
īsts a, b, c
reālais av, avsq1, avsq2
īsta pr
dati a, b, c / 5.0,2.0,3.0 /
av = ave (a, b, c)
drukāt *, 'Vidējais', a, b, c, 'ir:', AV
beigas
reālā funkcija ave (x, y, z)
reālā x, y, z, summa
summa = x + y + z
ave = summa / 3,0
atgriešanās
beigas
Šis izdrukā:
Vidējais rādītājs 5.00000000 2.00000000 3.00000000 ir: 3.33333325
Jā, Fortran var formatēt izvadi. Ja iepriekš minēto “druku” aizstāsim šādi:
8. izdruka “Vidējais rādītājs”, a, b, c, “ir”, AV
8 formāts (a, 2 (f4.2, ','), f4.2, a, f7.5)
Rezultāts kļūs:
Vidējais 5.00, 2.00, 3.00 ir 3.33333
Fortran formatēšanu var veikt arī vienā rindā, un tam ir tāda pati jauka izeja:
drukāt "(a, 2 (f4.2, ','), f4.2, a, f7.5)", 'Vidējais', a, b, c, 'is', AV
Ja jūs esat ticis ticēts, ka Fortran ir dīvains, jūs maldinājāt. Es uzrakstīju visus šos piemērus tādā veidā, ko Fortran programmētāji sauc par “brīvo formu”. Tas oficiāli kļuva par daļu no Fortran ar “Fortran 90” standartu (līdz ar to manas instrukcijas kā .f90 vai .f95 izmantot kā failu paplašinājumus; tie norāda kompilatoram bez īpaša opcijas slēdžiem, ka mēs izmantojam brīvo formu). Paturiet prātā, ka 1956. gadā lietotāji vēlējās kaut ko tādu, kas paredzēts karšu perforatoriem. Es varētu stundām ilgi stāstīt par to, kā Fortran to pieņem ar kolonnām orientētiem formātiem un turpinājuma rakstzīmēm utt. Bet, kā jau esmu parādījis, jums tas tiešām nav jāmācās, lai rakstītu vai lasītu Fortran kodu.
Kāpēc datorzinātnieki vairās no Fortran? Lielisks jautājums. Fortran ir vecākā valoda (ap 1956. gadu). Tas sākās lentu, perforēto karšu un cilvēku datoru nomaiņas laikmetā. Tas ir pirms bloku strukturētas programmēšanas, parsēšanas teorijas un grafikas. Pa ceļam datorzinātnieki izpētīja sasniegumus skaitļošanas jomā, vienlaikus ieviešot tūkstošiem programmēšanas valodu, no kurām lielāko daļu neizdevās panākt. Neskatoties uz to, visās cilvēku darbības jomās modē ir „ārpus vecā, iekšā jaunā”. Datorzinātne neatšķiras.
Bet, kad skaitļu krokošana ir svarīga, nekas nav labāks vai vienkāršāks par Fortran. Es iesaku mums visiem zināt daudz rīku un izmantot labāko rīku šim darbam. Tas, ka mans uzticamais āmurs jau ilgu laiku ir bijis manā instrumentu kastē, nenozīmē, ka man tas nav vajadzīgs pareizajam darbam. Fortran neatšķiras.
Fortran ir ne tikai oriģināla augsta līmeņa programmēšanas valoda, tā ir dzīva, svarīga un plaši izmantota. Kurš sāka baumas ieteikt citādi?
Resursi
- Intel Fortran - ļoti izmantots x86 (Intel / AMD), augstas veiktspējas
- Jūs varat pretendēt uz bezmaksas kompilatoru (un citiem rīkiem)
- Izmēģinājuma eksemplāri ir pieejami ar iespēju tos iegādāties vēlāk
- 2018. gada beta versija darbojas līdz 2018. gada jūlijam: līdz šim bez maksas izmēģiniet šo jaunāko un lielāko pilnībā funkcionējošo beta versiju, ieskaitot Fortran un saistītos rīkus: Intel Parallel Studio XE 2018 Beta - pievienojieties tūlīt
- GNU Fortran - plašāks atbalsts (daudzi procesori, daudzas sistēmas), zemāka veiktspēja
- atvērtā koda un bezmaksas
- manā MacBook Air ... man bija jāsaka tikai “brūvēt instalēt gcc”, un es saņemu gfortran bez maksas
Noklikšķiniet šeit, lai lejupielādētu bezmaksas Intel Parallel Studio XE 30 dienu izmēģinājumu