Forth (programmeringsspråk)

Hello world eksempel

Under er Hello world implementert i Forth:
: hello ( -- ) CR ." Hello World!" ;
Dette definerer et nytt ord hello, som vil skrive ut et linjeskift (CR – carriage return) etterfulgt av teksten «Hello World!» når det kjøres. 
hello
Hello World! ok
Parentesene regnes som kommentarer og viser en vanlig konvensjon for å angi hvilken innvirkning det definerte ordet vil ha på stacken når det kjøres. I dette tilfelle vil ikke stacken endres, noe vi angir med en parentes hvor kun skillet mellom før og etter kjøring er listet opp. Forth skriver ut « ok» etterfulgt av linjeskift når den er klar til å motta en ny kommando.

Kjøremiljø

Kjøremiljøet til et Forthsystem er svært enkelt. En kommandolinje hvor hvert ord som skrives inn tolkes som et Forth-ord. I Hello World-eksemplet ovenfor er : (kolon) et ord som i Forth betyr «definér et nytt ord.» Det nye ordet kan kalles som en rutine i andre språk, og navnet er det neste ordet på linjen. 
Det neste ordet som blir tolket er ( (parentes) som betyr «ignorer alt som kommer etter inntil vi finner en sluttparentes eller input slutter.» Altså en måte å lage kommentarer på. De resterende ordene utgjør selve rutinen, og ; (semikolon) avslutter definisjonen.
Forth er i utgangspunktet et tolket språk, men har også en kompileringssemantikk som brukes i definisjonen av nye ord. Ord som kun har definert en kompileringssemantikk kan kun brukes i definisjonen av nye ord, mens andre ord kan utføres direkte ved å skrive ordet på kommandolinjen.

Ord og ordlister

I Forth definerer man nye ord ved ordet : (kolon). Nedenfor definerer vi et nytt ord som kvadrerer tallet øverst på stacken:
: square dup * ;
Det nye ordet «square» vil hver gang det kalles utføre operasjonen «dup *», som vil si å duplisere det øverste elementet i stacken, multiplisere de to og legge resultatet tilbake øverst på stacken. Resultatet vil bli at det øverste elementet i stacken har blitt kvadrert.
Legg forøvrig merke til mellomrommene mellom «:» og «square» og mellom uttrykket og «;». Både «:» og «;» er egne ord i Forth.
«square» er nå definert som et fullverdig ord på linje med alle andre ord som er definert i Forth. Vi kan bruke dette videre til å lage et ord som opphøyer verdien av det øverste elementet på stacken i tredje potens:
: cube dup square * ;
En kjøring av disse ordene vil f.eks. kunne se slik ut:
4 square . 16 ok
5 cube . 125 ok
Forth skriver ut resultatet og «ok» på samme linje idet vi trykker enter-tasten. (Noen versjoner vil skrive svaret på neste linje i stedet.)
Både ord som er ferdigdefinerte fra Forth sin side, og ord du definerer selv lagres i en ordliste. Samme ord kan lagres flere ganger. Den nye definisjonen av ordet vil da gjelde for all bruk etter det er definert, men vil ikke endre definisjonen til andre ord som bruker den gamle definisjonen. Man kan glemme definisjonen av et ord ved å bruke ordet forget. Forget vil få Forth til å glemme det ordet du ber den om i tillegg til alle ord som er definert etter dette.
Forth kan operere med flere ordlister, og kan veksle mellom dem.

Interpreter

Forth er et utviklingsmiljø like mye som et programmeringsspråk. Miljøet er ganske enkelt en kommandolinje som tolker det som blir skrevet på den som Forth-ord. Interpreteren er i seg selv et Forth ord, og kan benyttes i interaktive Forth-programmer.
Å utvikle programmer i Forth består tradisjonelt for en stor del av å lage nye ord, og teste dem nesten øyeblikkelig på kommandolinjen. Dette gir en veldig interaktiv utviklingsmodell, og oppfordrer til utvikling i små inkrementelle skritt.