Az F programozási nyelv

Adattipusok, változók



A változókat deklarálni kell.
Inicializálni csak a parameter argumentumú változókat lehet.
Az adattípushoz a műveletek is hozzáértôdnek.

Beépített adattípusok:
integer
real
character
complex
logical
Típusoknak a következô argumentumai lehetnek:
parameter
allocatable
dimension ( [ n ] [: [ m ]] )
intent (in) | intent (out) | intent (inout)
optional
pointer
save
target
public | private

Automatikus típuskonverzió van, a nyelv nem szigorúan típusos. Pl: ha két egész számot osztok, annak a típusa egész lesz.
Típusértéktartományok nyelvfüggôek. Pl: integer értelmezési tartománya: -2^31..2^31.
Típust csak külön modulban lehet definiálni. Itt lehet megadni hozzá a műveleteket is. Az alapoperátorokat át lehet definiálni.

Logikai operátorok:
.not.
.and.
.or.
==
/=
<
<=
>
>=

Tömb

Létrehozása a dimension argumentummal.
Deklaráláskor kell rögzíteni a méretet, kivéve parameter ill. save argumentumúaknál. Dinamikusan allokált tömb az allocatable argumentummal.
Eleme bármilyen típus lehet.
Indexelése ()-lel. Szabadon választott egész indextartománnyal lehet indexelni, de azt deklaráláskor kell megadni.
Egy egész tömbnek egyszerre is lehet értéket adni a (/ <lista> /)-val.
Lehet többdimenziós tömböt is létrehozni.

pl: integer, dimension (3 : 5) :: int_tomb1  ! 3-tól 5-ig indexelt
    integer, dimension (3) :: int_tomb2      ! 1-tól 3-ig indexelt

    int_tomb1 = (/ 3, 2, 1 /)
    print *, int_tomb1(4)                    ! ez 2-t ír ki

Pointer

pointer argumentummal.
Mindig van típusa.
A => művelettel rá lehet címezni egy target argumentumú változóra.
Két pointer egyenlô, ha ugyanolyan értékre mutatnak.
Lehet deallokálni.
A pointerek nem kapnak automatikusan kezdeti étéket, nullify-vel lehet nullázni.

Direkt szorzat

Nincs rá külön kulcsszó.
Lehetnek private és public mezôi is.
Szelekció művelet jele: %.
Struktúrának bármilyen típusú komponense lehet, struktúra típusú is.

Unió

Nincs.