|
Založeno:
10.10.2007
Aktualizace: 22.07.2008
|
![]() |
|||||
| Úvod | Výukové lekce | Download | mFC | |||
|
Vítejte, tyto stránky vznikly v dobrém úmyslu seznámit návštěvníka s programovacím jazykem FORTH, jeho historií, vlastnostmi, syntaxí, strukturou. V oddíle Výukové lekce jsou vysvětlovány příkazy jazyka Forth, v oddíle Download jsou odkazy na články, dokumenty, programy. Stránky budou postupně doplňovány. Historie a vlastnosti
Kořeny jazyka
Forth sahají do počátku 60.let, kdy si Charles H.
Moore
(*1938) v astrofyzikalní observatoři pro
zjednodušení práce,
zrychlení
výpočtů, vytvořil interpreter slov oddělených
mezerami. V
polovině 60.let doplňuje interpreter o zásobník,
proměnné, definici procedur, vstup/výstup. Kolem
roku
1970 se objevuje označení FORTH (název je od
slova
FOURTH-čtvrtý, jazyk pro
příští, čtvrtou
generaci
malých
počítačů). Forth tedy nevznikl akademickým
rozhodnutím, vytvářel ho jeden člověk, jedno
desetiletí, jako pomůcku pro práci.
První
kompletní samostatnou
aplikací Forthu je v roce 1971 řízení
radioteleskopu pro NRAO. Další aplikace jsou v
řízení antén, teleskopů,
databáze,
zpracování obrazu.
Forth je vyšší programovací jazyk, interaktivní, kompaktní, nemusí mít operační systém, vývojové prostředí je obsaženo již ve Forthu. To usnadňuje a zrychluje vývoj aplikací. Je vhodný do vestavěných (embedded) systémů a real-time aplikací. Ke stroji připojíme terminál a můžeme dodefinovat jeho další funkce. Není potřeba počítač se stovkami MB operačního systému, editorem, kompilátorem. Forth si vystačí s několika kB paměti, je dokonce úspornější než assembler. První ZX81 měla část systému ve Forthu, později se přepsala do assembleru (rychlejší, ale delší). V této době se pamětí šetřilo, počítala se v kilobajtech. Chucka Moora překvapilo, jak je Forth snadno přenositelný, stačilo přepsat několik desítek primitiv (základní slova definovaná v assembleru). V sedm- desátých letech přenesl Forth na osmnáct různých procesorů. V roce 1973 Moore, Rather a Conklin založili firmu Forth, Inc. na komerční využití Forthu. Jejich nový produkt se jmenoval microForth a byl implementován na rozšířené 8-bitové mikroprocesory Intel 8080, Motorola 6800, Zilog Z80. V roce 1978 se Bill Ragsdale obrátil na Forth, Inc., aby přenesli microForth na procesor 6502. Neúspěšně, pro firmu to nebylo ekonomicky zajímavé, což vedlo ke vzniku Forth Interest Group (FIG). Jejich 6502 FIG Forth Model se postupně rozšiřuje na další procesory a rozšiřuje se i počet členů FIG na tisíce. Ve snaze o vytvoření standardu vznikají FORTH-77, FORTH-79, FORTH-83, ANS Forth (od r.1987). Výraznou vlastností Forthu je postfixová notace, RPN (reverzní polská notace). Umožňuje, aby Forth byl tak jednoduchý, jak je, ale zhoršuje čitelnost zdrojového kódu. Nejdříve jsou uvedeny operandy, pak operace, která je zpracuje: 1 2 3 * + je zápis pro 2*3+1 z 4 < if je zápis pro if z<4 Forth, to jsou slova, samá slova…Konstanty, proměnné, funkce, větvení, překladač všechno jsou slova. Nová slova se definují z již existujících, dokonce si můžeme nadefinovat překladač a určit, jaké se mají vytvořit datové struktury a jak se budou zpracovávat. : OBVOD + 2* ;
Překladač dvojtečka (COLON) nadefinuje
nové slovo
OBVOD, provede se součet, výsledek se
vynásobí
dvěma, středník
ukončuje překlad. 5 10 OBVOD .
Spočítání obvodu, provede se
(5+10)*2 a tečka zobrazí výsledek 30
Na závěr, co je velmi charakteristické pro Forth, je používání zásobníků. Veškeré operace s daty probíhají přes zásobník LIFO, což je datová struktura, do které se data ukládají postupně, za sebou a při čtení se odebírají také postupně, od posledně zapsaného. Představme si to, jako když stavíme z kostek komín a zase ho rozebíráme. Vždy je dostupná jen kostka na vrchu. Konstanty, proměnné, ukazatele – vše jde přes zásobník. Vedle datového zásobníku DATA STACK je tu RETURN STACK, zásobník návratových adres. Při vnořování do slov, se musí uložit adresa, od které se po návratu bude číst další slovo. Jeho využití je širší, při smyčkách, definicích, přesunech mezi datovým a návratovým zásobníkem. U 8-bitových a 16-bitových procesorů je šířka dat 16bitů, u 32-bitových 32 bitů. ____________________________________________________________________________________________________________________ 26.10.2007 - Luboš Pěkný, čerpáno z www.forth.com, www.forth.org, Pavel Tišnovský: Programovací jazyk Forth a zásobníkové procesory, X3J14 dpANS-6. Podléhá autorskému zákonu, šíření povoleno jen s uvedením autora. |