A Fortran programozási nyelv

A FORTRAN66 történelmi érdekességei

A FORTRAN 66/IV történelmi érdekességei

Adattípusok

A FORTRAN 66-ban már ismert volt a legtöbb adattípus. A stringeket meg lehetett adni macskakörmök között, de Hollerith literálokként is. Ezekben külön meg kellett adni a string hosszát, amit egy H betű választott el magától a szövegtől.(www.quadibloc.com/comp) A Hollerith literálok emlékét a H formátumleíró őrzi egészen a Fortran90-ig, ahol azonban elavultnak minősül, és a Fortran95 óta már nem is használható.(Adrian Sandu: Lecture notes Introduction to Fortran95 and Programming. A Jump-Start for Scientists and Engineers)

Az egészek mérete egy szó hosszú volt a 16-os gépeken.(quadibloc)

A logikai adatok tárolásának módja különbözik a ma használt Fortan változatokétól. Az újabb logikai típus mérete két szó hosszú, a régebbieké egy. Fortran77-ben másoláskor, mozgatáskor csak az alsó szó másolódik át. A régebbi programokban a logikai tömböket a logikai adatokkal más adatokat is ábrázoltak, például képadatokat (IMAGE paraméterek). Az újabb programokban ezért több helyen egészekkel kellett helyettesíteni őket.(Brandt L. Kelly: Fortan66 to 77 Conversion: Problem Considerations in an Integrated Environment)

Író-olvasó utasítások

A régebbi FORTRANok író-olvasó utasításai:

READ, PRINT, PUNCH, READ INPUT TAPE, és WRITE OUTPUT TAPE

ahol is az utóbbi kettő a szalagos egység olvasására, írására szolgált. Már a FORTRAN 66-ban READ(device, format), WRITE(device, format) helyettesítette őket.(quadibloc) A szalagos egység számára fenntartották a 39-es UNIT számot. Ez a kapcsolat még az újabb változatokban is fennmaradt, és ha nincs szalagos egység, akkor egy új fájlt hoz létre FTN39.DAT vagy valami hasonló névvel.(Sandu)

Együttműködés

A különféle Fortran változatok együttműködéséhez szükség volt néhány trükkre, mivel az ASA (az akkori ANSI) akkoriban még keveset törődött a visszafelé való kompatibilitással.

A logikai adatokon kívül a stringekkel volt a legtöbb gond. Ha 77-ből hívtak 66-os alprogramot, akkor fordítói direktívákkal ($ALIAS vagy $FTN66_3000 CHARS ON) lehetett ezt megoldani. Ha 66-os programból hívtak 77-es alprogramot, akkor extra paraméterként a hosszt is át kellett adni.(Kelly)

A rendszer belső alprogramjainak használatában adódott legtöbb probléma megoldható volt a SYSTEM INTRINSIC kulcskifejezéssel és az alprogramok deklarációjával. Ezek az alprogramok elrejtették a kétféle logikai típus közötti különbséget is.(Kelly)

Fordítók

Több számítógépre volt FORTRAN77-fordító, mint FORTRAN66-fordító. A 77-esszabvány új vezérlési szerkezeteket nyújtott, amikkel strukturáltan is lehetett programozni, és a stringkezelés is egyszerűbbé vált.(Kelly) Mindezek ellenére sokáig használtak még 66-os programokat. Sok munkát igényelt a régi programok átírása. A fordítókat egy direktívával sokáig vissza lehetett kapcsolni 66-os módba,(Igazi Programozó) és mivel a régi és az új szabvány szerint készült egységek közötti együttműködés problémás volt, ezért még sokáig fordítottak 66-os programokat.(Az Igazi Programozó nem Pascalban programozik)