Fortran

Fra DDHFwiki
Spring til navigation Spring til søgning

Fortran er normalt anset for at være det første tredje-generations programmeringssprog. Det blev designet i midten af 1950'erne og den første færdige oversætter udkom i 1957. Den første udgave ligner mere en abstraktion fra ren assembler end et egentligt sprog med undtagelse af formler. Deraf navnet, Formula Translator.

Fortran har udviklet sig kraftigt over årene, og den seneste revision er fra 2023.

Eksempler

Formler

Nedenstående fulde Fortran I program beregner den ene rod af andengradsligningen 3x2 + 1.7x - 31.92 = 0. Indtil Fortran dukkede op måtte dette programmeres i assembler. Det er en væsentlig forbedring.

        A = 3.0
        B = 1.7
        C = -31.92
        ROOT = (-B + SQRTF(B**2.0 - 4.0 * A * C)) / (2.0 * A)
        PRINT 1, ROOT
        STOP
  • PRINT-linjen: Udskriver variablen på printeren ifølge format 1. To formater var forud-definerede. De skrev begge numre ud i 5 kolonner á 16 karakterer. Man kunne, som vist i næste eksempel, også definere egne formater.
  • Der var mulighed for at definere matematiske funktioner på én linje, som f.eks. HYPOTENUSE(A,B) = SQRTF(A*A + B*B). Disse skal erklæres inden den første eksekverbare linje.

Do-løkker i Fortran II

I forhold til aritmetiske udtryk er Fortran noget mere jordnær for resten af sproget. Dette program udskriver tallene fra 1 til 5 og derefter summen. Det ligger ret tæt på hvordan man ville skrive det i assembler.

        M = 0
        DO 10 I = 1, 5
          PRINT 20, I
   10   M = M + I
      PRINT 20, M
   20 FORMAT(I5)
      STOP
  • Det er ikke muligt at erklære variable. Der er istedet en konvention: Alle variable, der starter med I, J, K, L, M, eller N er heltal.
  • DO-linjen: Optæller variablen I fra 1 til og med 5, og udfører koden indtil og inklusiv linje 10. Når I er 6 fortsætter programmet efter linje 10.
  • PRINT-linjerne: Udskriver variablen på printeren ifølge format specificeret i linje 20.
  • FORMAT-linjen: Angiver et læse/skrive format på (I)nteger som kan være 5 cifre.

IF-sætninger i Fortran II

De tidlige udgaver af Fortran havde ikke Boolske operatorer. En IF-sætning bestod af et aritmetisk udtryk og tre GO TO adresser. Dette program trækker B fra A. Hvis resultatet er negativt hoppes til linje 10. Hvis 0 hoppes til linje 20, og hvis positivt hoppes til linje 30. Derefter går hver gren til linje 40.

      IF (A - B) 10,20,30
   10 PRINT 1, -1.0
      GO TO 40
   20 PRINT 1, 0.0
      GO TO 40
   30 PRINT 1, 1.0
   40 STOP

Fortran IV

Fortran IV kom i 1962, og var et stort skridt hen mod et mere generelt og fuldt programmeringssprog. Nu kan man erklære variabler, eller fortsætte med konventionen. PRINT, som var specifik til printeren, er blevet fjernet fra sproget. Man skal istedet bruge WRITE til et nummer, som er tildelt til en enhed i job-kontrol kortene.

      PROGRAM LOOP
        INTEGER SUM
        SUM = 0
        DO 10 I = 1, 5
          WRITE(4, 20) I
   10   SUM = SUM + I
      WRITE(4, 20) SUM
   20 FORMAT(I5)
      STOP

Der kom SUBROUTINE og FUNCTION erklæringer.

      REAL FUNCTION HYPOTENUSE(A,B)
        HYPOTENUSE = SQRTF(A*A + B*B)
        RETURN
      END

Mere information