A Forth programozási nyelv

Típusok, típuskonstrukciók

Típusok

Előjeles és előjel nélküli számok kezelése

A FORTH-ban az egyes adatok típusa a felhasználásuktól függ .
Pl. Írjuk be a következő sort
65535 .
Ekkor azonban nem a 65535 értéketket látjuk viszont a képernyőnn fordítás;s és futtatás után, hanem a -1 -et. Ez azért van, mart a "." szó előjelesnek tekinti a vermen lévő számot. Ha azonban ezt írjuk :
65535 U. akkor már jól kapjuk vissza az értékeket a képernyőn. Az U jelentése Unsigned, azaz előjel nélküli, ekkor a kiiratáskor a FORTH a vermen lé;vő számot nem tekinti előjelesnek.

Duplaszavak

Ha egy szám nem fér el egy szóban(16-biten) akkor egy duplaszóban tároljuk(32 bit). A duplaszónak mindig a magasabb helyiértékű része van felül a vermen.

Duplaszó kiiratása pl:

-1 0 D. Képernyőn : 65535
A D. - vel a verem tetején lévő két szót duplaszóként értelmezhetjük.

További műveletek duplaszavakkal és előjel nélküli értékekkel

U* (u1 u2 ---- ud) összeszorozza a vermen lévő két előjel nélküli értékeket, az eredmény egy duplaszó
U/ (ud u1 ---- u2 u3) Duplaszót oszt egyszavas értékekkel, u2 - maradék, u3 - eredmény
U<( u1 u2 ---- f) Előjel nélküli értékek összehasonlításasa
D+ (d1 d2 ---- d) Duplaszavak összegét adja duplaszóban
DABS (d ---- d) Duplaszó abszolút értékét adja
DMINUS (d ---- -d) Duplaszót negál
M* (n1 n2 ---- d) Szavas értékeket szoroz, duplaszavas értéket ad
M/ (d n1 - n2 n3) Duplaszavas értéket oszt szavassal, n2 : maradék n3 : eredmény

Speciális karakterek, sztringek

SPACE - Egy szóközt ír a képernyőre
CR - Egy ENTER-t ír ki
"szöveg" - Kiirja a "szoveg-et"

Vektorok, saját adatszerkezetek

: VECTOR ( n ---- )
2* ALLOT
DOES>
SWAP
1-
2* +
;
Ezzel így definiálunk például egy 10-elemű vektort:
10 VECTOR TIZ - A TIZ szó veremhatása: (index ---- elemcím).