Forth (programski jezik)

S Vikipedije, slobodne enciklopedije
Fort (programski jezik)
Pojavio se1970. god.; pre 54 godine (1970)
Dizajner(i)Charles H. Moore
Sistem tipovatypeless
ImplementacijeSwiftForth (Forth, Inc.)
Gforth (Free software)
VFX Forth (MicroProcessor Engineering)
UticajiBurroughs large systems, Lisp, APL
Uticao naFactor, RPL, REBOL

Fort (engl. Forth) je programski jezik zasnovan na steku. Takođe, to je i naziv za interaktivno okruženje koje omogućava razvoj i izvršavanje programa pisanih u Fortu. Fort se lako proširuje. Koristi obrnutu poljsku notaciju. Ne poseduje proveru tipova podataka. Pogodan je za kontrolu procesa koji se odvijaju u realnom vremenu kao što je, na primer, upravljanje teleskopima, što mu je jedna od prvobitnih namena.[1]

Tvorac programskog jezika Fort je Čarls Mur.[2]

Zdravo svete[uredi | uredi izvor]

Za ispis poruke „Zdravo svete!", u interaktivnom načinu rada, može da posluži sledeći kod:

." Здраво свете!"

Ispis možemo da „ulepšamo“ izdvajajući ga u poseban red na sledeći način:

CR ." Здраво свете!" CR

Možemo da definišemo novu reč Поздрав koja će da uradi isto:

: Поздрав CR ." Здраво свете!" CR ;

Sintaksa[uredi | uredi izvor]

Fort ima jednostavnu sintaksu. Bilo kakva grupa reči, koje su među sobom razdvojene prazninom, može da predstavlja program. Na primer: Sipaj~vodu dodaj~povrće kuvaj posoli posluži~toplo mogao bi da bude ispravan Fort program.

Reči mogu da sadrže sve raspoložive znakove. Na primer, sledeće reči su uobičajene u programskom jeziku Fort: ." + #S DROP @ ROT. *

Reči[uredi | uredi izvor]

Pisanje programa, u programskom jeziku Fort, najčešće se sastoji iz pisanja kratih potprograma koji se povezuju u veće celine. Svaki potprogram se pridružuje jednoj reči. Ovakav par (reč, potprogram) obično se jednostavno zove: reč.

Stek[uredi | uredi izvor]

Kod većine programskih jezika kod kojih postoji mogućnost rekurzivnog pozivanja procedura ili funkcija generiše se stek tokom izvršavanja programa. U programskim jezicima kao što su Modula-2 ili C programer ne manipuliše direktno ovim stekom. On služi da bi se sačuvale povratne adrese kod poziva procedura ili funkcija, kao i za čuvanje nekih drugih privremenih podataka kao što su lokalne promenljive i stvarni parametri (ili njihove reference) predati pri pozivu. Fort takođe poseduje stek na kome čuva povratne adrese potprograma ali poseduje još jedan stek. Programer direktno pristupa ovom drugom steku. Koristi ga obično da bi predao parametre, sačuvao povratnu vrednost, ili za smeštanje privremenih podataka. Zato se ovaj stek ponekad zove parametarski stek ili stek podataka, ali najčešće samo stek. Prvi pomenuti stek sa povratnim adresama obično se naziva povratni stek (engl. return stack ili engl. linkage stack).

Primeri rada sa stekom[uredi | uredi izvor]

Programirajući u Fortu programer gotovo da ne može da izbegne da direktno ne koristi parametarski stek. Ako u Fortu napišemo:

3 47 -2 8

izvršenje ovoga koda dovešće do toga da na steku imamo četiri broja: 3, 47, -2 i 8. Prvo će na vrh steka da bude postavljen broj 3, zatim 47, koji će trojku da potisne ispod sebe. Potom -2 dolazi na vrh i na kraju 8. Po izvršenju, sadržaj steka može da se predstavi sledećom tabelom:

pozicija sadržaj dodatni opis
0 8 <-- vrh steka
1 -2 <-- odmah ispod vrha
2 47
3 3


Fort reč drop uklanja broj sa vrha steka. Po izvršenju:

drop

stek izgleda ovako:

pozicija sadržaj dodatni opis
0 -2 <-- vrh steka
1 47 <-- odmah ispod vrha
2 3

Ako želimo da zamenimo broj na vrhu steka sa onim odmah ispod njega možemo da upotrebimo Fort reč swap:

swap

dobijamo sledeće stanje na steku:

pozicija sadržaj dodatni opis
0 47 <-- vrh steka
1 -2 <-- odmah ispod vrha
2 3

Možemo da upotrebimo Fort reč . (tačka) da ispišemo broj sa vrha steka. Ova reč u istom redu ispisuje broj (i ok). Zatim broj uklanja sa steka:

. 47 ok

Potom stek izgleda ovako:

pozicija sadržaj dodatni opis
0 -2 <-- vrh steka
1 3 <-- odmah ispod vrha

Račun[uredi | uredi izvor]

Jedan broj reči koje su standardno definisane u programskom jeziku Fort vezane su za račun. To je u prvom redu račun sa celim brojevima.

Ako u Fortu napišete:

3 5 + .

interpretator će da odgovori (u istom redu):

8  ok

Izrazi vezani za račun u Fortu se formiraju korišćenjem obrnute poljske notacije, odnosno u postfiks zapisu. Za razliku od, u matemetici uobičajenog, ifiksnog zapisa ovde se prvo navode operandi pa tek zatim operator.

Ako bi hteli da u Fortu nađemo razliku brojeva sedam i četiri možemo da napišemo sledeće:

7 4 - .

Izvršenje ovog koda dovodi do toga da se prvo na stek postave brojevi 7 i 4. Potom se vrši njihovo oduzimanje. Brojevi 7 i 4 se uklanjaju sa steka i mesto njih se na vrh steka upisuje rezultat (broj 3). Na kraju, reč tačka ispisuje broj sa vrha steka i uklanja ga (sa steka).

Prevođenje složenijih izraza u Fort notaciju može da predstavlja problem početnicima. Na primer vrednost sledećeg matematičkog izraza: (7 - 2)•(4 + 2) može da se izračuna na sledeći način:

7 2 - 4 2 + * .

Reference[uredi | uredi izvor]

  1. ^ What is Forth?
  2. ^ „The Evolution of Forth[[Kategorija:Botovski naslovi]]”. Arhivirano iz originala 12. 08. 2009. g. Pristupljeno 12. 12. 2009.  Sukob URL—vikiveza (pomoć)

Dodatna literatura[uredi | uredi izvor]

Spoljašnje veze[uredi | uredi izvor]