Oppgåve 3

Oppgåve 3

Kompilering, linking og køyring

Kompilering

Editoren vert brukt til å laga FORTRAN-satsar i ei fil, td. i fila prog.f. Kompilatoren overset FORTRAN-programmet til instruksjonskodar, eit objektprogram. Kompilatoren vert starta med kommandoen fort77 prog.f (DEC: f77 prog.f).

Kjeldefila prog.f og objektfila prog.o har same filnamn, men ulik filtype .f og .o.

Ein FORTRAN-sats vert skriven i posisjon 7-72 på lina, alle blanke vert neglisjerte (unnateke i tekstkonstantar). Posisjon 1-5 kan brukast til satsnummer (label). Når posisjon 6 ikkje er blank, tyder det framhald frå lina før. Standard FORTRAN 77 tillet opp til 19 liner med framhald. Liner med C eller * i posisjon 1 er kommentarar og vert neglisjerte av kompilatoren.

Ein del nyttige opsjonar ved kompilering:

-O       Optimaliser koden
-g       Kompiler med debug (slår av ein del optimalisering)
-c       Kompiler utan linking
-u       Gje melding ved udeklarerte variablar
-V       Skriv listing av programmet til fil.l
Spesielt for HP-UX:
-a       Gje melding ved avvik frå FORTRAN 77-standarden
-C       Sjekk indeksar
-K       Automatisk SAVE av alle lokale variablar
+ppu     Tilføy understrek til rutinenamn (ved bruk av
         rutinebibliotek)
+T       Programmet skriv ut traceback ved kræsj
Spesielt for DEC OSF/1:
-check_bounds   Sjekk indeksar
-automatic      Ingen automatisk SAVE av alle lokale variablar
-std            Gje melding ved avvik frå FORTRAN 77-standarden

Linking

For at eit program skal kunna køyrast, må det linkast med hjelperutiner for skriving o.l. Under Unix vert dette utført med fort77/f77-kommandoen. Normalt linkar fort77 programmet når programmet er kompilert.

Td.

fort77 -o prog prog.f

Ein del nyttige opsjonar ved linking:

-o <fil>    Namn på linka programfil
-g          Link med debug
-s          Fjern debug-informasjon frå det linka programmet

Køyring

Eit program vert køyrt under Unix ved å skriva namnet på programmet, td.:
% prog

Oppgåver

  1. Bruk editoren til å lagra eit FORTRAN-program på fila prog.f. Prøv eit enkelt program, td.
          PROGRAM TEST
          I=3
          J=4
          K=5
          L=I*J-K
          WRITE(*,*) I,J,K,L
          END
    
  2. Utfør desse kommandoane:
    % fort77 -o prog prog.f
    % prog
    
    Kva gjer kvart trinn her? Undersøk undervegs ved hjelp av kommandoen ls kva for filer som vert oppretta. Legg til opsjonen -V på kompileringslina. Kva skjer då? Skriv ut listinga med kommandoen prstud for eit nærare studium.
  3. Prøv ein alternativ metode med kompilering og linking kvar for seg:
    % fort77 -c prog.f
    % fort77 -o prog prog.o
    % prog
    
  4. Lag ei kommandofil som utfører sekvensen ovanfor. La kommandofila ta namnet på programfila som argument. La fort77 få opsjonar slik at så mykje sjekking som råd vert gjort. La kommandofila rydda opp etter kompileringa slik at overflødige filer vert fjerna. Denne kommandofila vil vera nyttig i seinare oppgåver, så det kan vera lurt å gjera dette skikkeleg.
  5. Bruk editoren til å utvida programmet som nemnt nedanfor, og prøv verknaden av kvar endring:
    1. Bruk DATA til å definera konstantar
    2. Bruk PARAMETER til å definera konstantar
    3. Definer verdien av K ved innlesing frå tastaturet
    4. Bruk unitnummer 6 for utskrift. Ser du nokre endringar?
    5. Bruk unitnummer 8 for utskrift. Bruk editoren til å undersøkja innhaldet av fila ftn08.
  6. Bruk ulike måtar for å gje REAL konstantar og variablar i programmet og i utskrift.

Attende til startsida vår.

Oppdatert 16. februar 1995 av Erling Andersen