Forth (ohjelmointikieli)

ohjelmointikieli

Forth on tietokoneiden ohjelmointikieli ja interaktiivinen ohjelmointiympäristö, jonka kehitti alun perin Charles H. Moore 1970-luvun alkupuolella.[1]

Forth
Tyypitys tyypitön
Julkaistu 1970-luku
Kehittäjä Charles H. Moore
Vaikutteet Lisp, APL
Vaikuttanut PostScript

Forth on rakenteeltaan hyvin yksinkertainen pinokeskeinen kieli, joka on ollut suosittu etenkin laitteistoresursseiltaan vaatimattomissa ja tehokasta ohjelmointia vaativissa sulautetuissa järjestelmissä. On valmistettu jopa mikroprosessoreita, jotka suorittavat Forth-tavukoodia konekielenään.

HistoriaMuokkaa

Moore kehitti kielen vastajulkaistulla IBM 1130-minitietokoneella.[1] Moore käytti Fortrania ensimmäisen Forthin toteutukseen.[1]

EsimerkkejäMuokkaa

YhteenlaskuMuokkaa

 5 7 + .

Sanat 5 ja 7 lisäävät asianomaiset luvut datapinoon. Sana + laskee yhteen datapinon kaksi päällimmäistä lukua ja jättää jäljelle summan eli tässä tapauksessa luvun 12. Sana . tulostaa pinon päällimmäisen luvun.

Pino on hyvin keskeisessä osassa Forth-ohjelmoinnissa, ja jopa ohjausrakenteet on toteutettu pinokeskeisesti. Tästä syystä Forth-ohjelmakoodin hahmottaminen vaatii jonkin verran harjoittelua.

AliohjelmaMuokkaa

 : FLOOR5 ( n -- n' )   DUP 5 < IF DROP 5 ELSE 1 - THEN ;

Tämä ohjelmakoodi määrittelee uuden sanan eli aliohjelman nimeltä FLOOR5, joka ottaa syötteenä yhden alkion (n) pinon päältä ja jättää tulosteenaan pinon päälle yhden alkion (n').

Aliohjelma itse vertaa syötteenään saamaansa lukua lukuun 5. Jos luku on pienempi kuin 5, niin palautetaan 5, muutoin vähennetään siitä 1 ja palautetaan erotus. Ohjelman suoritus etenee seuraavasti:

DUP-sana tuplaa pinon päällimmäisen alkion. Jos pinon huipulla on esimerkiksi 8, on DUP-sanan suorituksen jälkeen huipulla kaksi 8:aa (8 8).

<-sana vertailee pinon kahta päällimmäistä lukua (esimerkissä 8 ja 5) toisiinsa ja jättää niiden tilalle totuusarvon, joka ilmaisee, onko ensimmäinen luku pienempi kuin toinen.

IF-sana jatkaa suoritusta pinon päällimmäisenä olevan totuusarvon mukaan. Jos arvo on tosi, suoritetaan koodi IF- ja ELSE-sanojen välistä, muussa tapauksessa ELSE- ja THEN-sanojen välistä.

DROP-sana poistaa pinon päällimmäisen alkion. Tässä tapauksessa sitä tarvitaan, jotta päällimmäisen alkion voisi korvata luvulla 5.

Sanat 1 - vähentävät pinon päällimmäisenä olevasta luvusta (eli syötteestä) luvun 1.

Sana ; lopettaa sanan määrittelyn, joka alkoi sanoilla FLOOR5 (n -- n' ).

Hello WorldMuokkaa

Kuuluisa Hello World -ohjelma toteutettaisiin Forthilla seuraavasti:

  : HELLO ( -- )   ." Hello World!" ; HELLO

LähteetMuokkaa

  1. a b c Naomi Hamilton: The A-Z of Programming Languages: Forth 27.6.2008. Computerworld. Viitattu 27.5.2019. (englanniksi)

Aiheesta muuallaMuokkaa