FORTH

A HupWiki-ből...

Ismertető

Programozási nyelv, mely nagyrészt verem műveletekre épít. Negyedik generációs programozási nyelv, innen lenne a fourth név, de - az anekdota szerint - a rendszer, amin fejlesztették, csak ötbetűs nevet tett lehetővé, ezért lett végül Forth a neve.

Általános célú felhasználásra sosem terjedt el, de van sok terület, ahol előszeretettel használják. Ilyen például a RISC gépek firmware-jei, pontosabban azok, amelyek valamilyen rokonságban állnak az OpenFirmware specifikációval.

Továbbá vannak akik Forth programból csinálnak egyszerű áramköröket.

Gyorstalpaló

Egy FORTH program forráskódja kétféle dologból áll:

  • szavak (= utasítások)
  • számok

A klasszikus FORTH rendszer pedig a következő részekből épül fel:

Az interpreter amíg nem talál utasítást, addig minden adatot lepakol a stackre, ha pedig utasítást talál, akkor végrehajtja azt, az utasítás pedig bármit kezdhet a vermen található adatokkal, mert a teljes veremtartalom az ő paramétereinek tekinthető. Ennek előnye, hogy se a programozónak, se az editornak, se az interpreternek, se a compilernek nem kell törődnie a paraméterek - sorrendben - specifikálásával, syntax highlight-olásával, ...

Példák:

: a 1 b ;

A ":" nevű szót az interpreter végrehajtja, aminek hatására a rendszer compiler üzemmódba kapcsol, s egyúttal el is lopja a compiler elől a következő szót és ilyen néven elkezd a szótárban egy új definiciót.

Az "1" sztringet a compiler megpróbálja kikeresni a szótárból, ám mivel alapesetben nem létezik, számmá alakítja és az "a" szó definíciójához hozzáilleszti azt a "gépi kódot", aminek hatására majd az "a" szó végrehajtásakor az 1-es szám fog a veremre kerülni.

A "b" szót felismerve a compiler olyan kódot ad az "a" szó definiciójához, hogy az "a" szó futásakor végrehajtódjon a "b" szó.

A ";" nevű szó meg van jelölve egy speciális immediate nevű flag-gel, aminek hatására a compiler nem ragasztja hozzá az "a" szó definiciójához, hanem végrehajtja azt, miként ez interpreter módban is történne. Végrehajtásának eredményeképpen pedig a rendszer visszaáll interpreter módba és lezárja az "a" szó definicióját. Ennek eredményeképp az "a" szó azonnal használható. Tehát mind az interpreter, mind a compiler rá fog találni a definíciójára a szótárban.

FIXME onetom!! :)

Külső hivatkozások