Ohjelmointikieliperhe, jonka jäsenet ovat tyypillisesti:
# yksinkertaisia toteuttaa # kohtalaisen korkean tason kieliä # syntaksiltaan hyvin yksinkertaisia # laajennettavissa kielen tasolla # toteutettu tulkki-kääntäjä -hybrideinä # enimmäkseen kirjoitettu itsellään # laajennettavia myös ohjelman lukuvaiheesta # täydellisiä käyttöympäristöjä
Nämä ominaisuudet ovat myös tyypillisiä yksinkertaisille [Lisp]-toteutuksille. Mutta Lisp-kielissä on tyypillisesti valmiiksi paljon enemmän abstraktiotasoja kuin tyypillisessä Forth-toteutuksessa.
Toisin kuin Lisp-kielet, Forthit ovat tyypillisesti:
# melko suojaamattomia ympäristöjä # vahvasti tilamuutoksiin perustuvia (vs. funktionaalinen ohjelmointi) # tilamalliltaan pinopohjaisia (käskyt manipuloivat sisäistä pinoa) # syntaksiltaan RPN: ei 3 + 5 vaan 3 5 +, ei 5 * (1 + 2) vaan 5 1 2 + * # muistimalleiltaan ja tietotyypeiltään hyvin vajavaisia ja laitekohtaisia # sisäiseltä rakenteeltaan sotkuisia ja vaikeasti ymmärrettäviä # käytössä pienissä ympäristöissä, erityisesti sulautetuissa (embedded) järjestelmissä # hyvin helposti käännettävissä konekieleksi # pieniä # sisältävät editorin yms. # myös I/O-abstraktioiltaan hyvin matalatasoisia: ei merkkivirtoja vaan levyblokkeja
Hyvä alustus fortheista on Gforthin info-tiedosto (tulee gforthin mukana, ei saatavilla luotettavasti www:ssa)
[kategoria: ohjelmointi]