A FORTH a legtöbb nyelvvel ellentétben a
megszokottól eltérő postfix írásmódot használja. A négy alapművelet itt is: + ,
- , * , / .
Egy példa:
Számítsuk ki FORTH-ban a (2+3)*4 kifejezés értékét,
ez FORTH-ban így néz ki: 2 3 + 4 *
A fordító
először leteszi a veremre a 2 és a 3 értékeket, a + operátor kiveszi mindkettőt,
összeadja, és az eredményt visszarakja a verembe. Ezek után berakjuk a 4-es
értéket, majd a * művelet újból kiveszi a két veremben lévő értéket,
összeszorozza, és az eredményt visszateszi. Ezek után már nincs más dolgunk csak
felhasználni a verem tetején lévő számot.
A jelző
A jelző(flag) arra jó, hogy valaminek az igaz-hamis voltát jelezze, a FORTH-ban egy flag HAMIS, ha értéke 0, IGAZ ha értéke nem 0.
Logikai műveletek
Az összehasonlító műveletek :
< ( n1 n2 ---- f ) -- f
igaz ha n1<n2
> ( n1 n2 ---- f ) -- f
igaz ha n1>n2
= ( n1 n2 ---- f ) -- f igaz
ha n1=n2
Ha az összehasonlító műveletek eredménye igaz, akkor 1-et adnak vissza.
Logikai műveletek :
AND (n1 n2 ---- n) -- bitenkénti
és
OR (n1 n2 ---- n)-- bitenkénti
vagy
XOR (n1 n2 ---- n) -- bitenkénti kizáró
vagy
Ezeket a bitenkénti műveleteket ha flagekre használjuk, akkor azok automatikusan flagre képződnek le, persze fontos hogy a flageket "szabványosan" használjuk, azaz a hamis=0, igaz=1 értékeket használjuk.
Gyorsműveletek
A
gyorsműveleteket használva a kódot gyorsabbá és egyszerűbbé tehetjük.
A
gyorsműveletek:
1+ (n ---- n1) -- n értékétt 1-el
növeli
1- (n ---- n1) -- n értékét 1-el
csökkenti
2* (n ----- n1) -- n értékét 2-vel
szorozza
2/ (n ---- n1) -- n értékétt 2-vel osztja
0= (n
---- f) -- igaz ha n=0
0< (n ---- f)
-- igaz ha n<0
Változók létrehozása
VARIABLE ( n ---- ) : Változó definiálása
Pl. 15
VARIABLE A
Ekkor létrejötttt egy új A nevű változónk. A FORTH változók
úgy működnek, ha beírjuk a változó nevét, akkor a a változó memóriacíme a
veremre kerül.
Pl1.:
2
A (A veremre teszi a a A címét)
! A címre most a "2" értéket
tettük.
Pl2.:
A @
(elővesszük a változó tartalmát)
1+ (Növeljük 1-el)
A ! (A megnövelt
értéket visszatesszük)
(A ! és @ szavak leírását lásd a memóriakezelés c. fejezetben)
A konstansok olyan változók, amelyeknek nem változók az értéke, a veremre nem a memóriacímüket, hanem az értéküket teszik.
Konstans létrehozása:
CONSTANT ( n ---- )
Pl.: 15 CONSTANT KONSTANS
Pl2: 15
CONSTANT KONSTANS
KONSTANS
1+
Eredmény : kiírja hogy
"16".