Forth: Podivný programovací jazyk. Tady je důvod, proč byste to měli rádi.

Zveřejnění: Vaše podpora pomáhá udržovat provoz webu! Za některé služby, které na této stránce doporučujeme, dostáváme poplatek za doporučení.


Forth je neobvyklý jazyk. Je to především tlumočník a má rozhraní příkazového řádku, takže jej lze použít v reálném čase. Má však také schopnost pořizovat a kódovat soubory kódu. Takže je to něco hybridního.

Z tohoto důvodu je Forth běžně používán na hardwaru, který nemá tradiční operační systém. To je také široce používáno k ovládání strojů a bylo používáno při průzkumu vesmíru – dokonce i na Philae, sondě, která přistála na kometě 67P / Churyumov – Gerasimenko.

Dějiny

Forth vyvinul Charles Moore počínaje rokem 1968 při programování grafiky v Mohasco Industries. K první úplné implementaci Forthu však došlo až v roce 1971, kdy Moore vytvořil samostatný systém pro ovládání 11 metrů dalekohledu na Národní observatoři pro rozhlasovou astronomii USA (NRAO)..

Starší verze Forth upoutaly pozornost programovací komunity. Ale v tuto chvíli se stala velmi populární v astronomické komunitě. V roce 1973 Moore založil FORTH, Inc se svými kolegy NRAO Elizabeth Rather a Edwardem Conklinem.

Společnost přenesla program do mnoha různých systémů. A FORTH, Inc je i nadále důležitou společností poskytující produkty související se společností Forth lidem v podnikání, akademii a státní správě.

Přehled Forth

Programovací jazyk Forth má řadu jedinečných aspektů. Zde si probereme ty nejdůležitější.

Forth Features

Forth nabízí mnoho jedinečných funkcí:

  • Interaktivní programování

  • Vytvoření kompilovaných rozšíření jazyka zvaného „slova“

  • Hromádky a reverzní polská notace

  • Přímé spojení mezi uživatelem a hardwarem.

Reverzní polská notace

Dále provádí matematické výpočty pomocí reverzní polské notace. Závisí to na ukládání čísel do zásobníku.

Zvažte výpočet: 2 + 3. Ve Forthu by to bylo provedeno umístěním 2 na hromádku, poté umístěním 3 na hromádku a jejich přidáním. Vypadalo by to takto: 2 3 +.

Vypadá to trochu divně, ale pro počítač je snazší je analyzovat, protože takto počítač skutečně provádí výpočty. A jakmile si na to zvyknete jako kodér, stane se to zcela přirozeným.

Kromě toho není třeba používat závorky. Zvažte následující dva příklady. (Poznámka: znak zpětného lomítka spustí komentář.)

2 3 + 5 * Toto je stejné jako (2 + 3) * 5
2 3 5 * + Toto je stejné jako u 2 + 3 * 5

V prvním příkladu je 2 tlačen na zásobník následovaný 3. Takže 2 je druhý v zásobníku a 3 je první. Operátor „+“ se použije na první dva prvky zásobníku. To odebere tyto dvě položky ze zásobníku a ponechá 5 (2 + 3) na horní straně zásobníku.

Pak zatlačíme 5 na hromádku. To umístí 5 do první a druhé pozice zásobníku. Nakonec aplikujeme operátor „*“, což má za následek umístění 25 (5 * 5) na horní část zásobníku.

Ve druhém příkladu umístíme 2, 3 a 5 na komín, takže 5 je v první poloze, 3 v druhé a 2 ve třetí. Poté aplikujeme operátor „*“ na horní dva prvky stohu (5 * 3), což znamená, že 15 je umístěno na vrchol stohu.

V tomto bodě je 15 v první poloze a 2 v druhé poloze. Při použití operátoru + ponechá 17 (15 + 2) na horní straně zásobníku.

Příklad programu

Následující program je velmi jednoduchý, ale ukazuje hodně toho, co se v jazyce děje.

: OUTMATH Výstup matematického výpočtu
." Nyní vypočítáme: (2 + 3) * 5" CR
2 3 + 5 *
." To se rovná: " . CR;

VONKAJŠÍ

První věc, kterou tento program dělá, je definování funkce nazvané OUTMATH. Řádky, které jej následují, jsou součástí funkce nahoru řádkem, který končí středníkem. První řádek vytiskne text „Nyní vypočítáme: (2 + 3) * 5“ a následuje jej s návratem vozíku.

Další řádek provede výpočet, který jsme diskutovali výše, což má za následek umístění 25 na horní část zásobníku. Poslední řádek funkce vydává „To se rovná:“ následovaný hodnotou v horní části zásobníku (představovanou „.“) A návratem vozíku.

Pak jednoduše spustíme funkci. Když tedy program běží, vydává:

Nyní vypočítáme: (2 + 3) * 5
To se rovná: 25

Učení Forth

Pro většinu programátorů je to nový způsob myšlení. Ale je překvapující, jak přirozené to vypadá, jakmile s ním začnete pracovat. Zde jsou některé návody a knihy, které vám pomohou pracovat s jazykem.

Čtvrté návody

Existuje mnoho online výukových programů. Vzhledem k tomu, že je Forth pro programátory mimo Forth zvláštní, že je to pro současné uživatele samozřejmé, mnoho výukových programů se věnuje věcem, které mohou být pro začátečníky matoucí. Tyto návody nemají tento problém.

  • Easy Forth: tento krátký Ebook je vynikající úvod. Nevýhodou je pouze to, že na příkladech není velká. Podívejte se na některé z níže uvedených příkladů.

  • Příručka pro začátečníky – Forth: Je to další dobrý úvod. Je to trochu více technické, ale má více příkladů.

  • A tak Forth…: toto je velmi důkladný úvod do Forthu – téměř stejně dobrý jako kniha.

Čtvrté knihy

Často je snazší naučit se nový jazyk tím, že dostanete knihu, která vás krok za krokem provede tímto procesem. O Forthu je spousta dobrých knih – zejména z 80. let, kdy Forth opravdu vzlétl. Zde je sbírka těch nejlepších a nejdůležitějších.

  • Objevte Forth: Učení a programování Forth Language (1982) od Thom Hogana: toto je dobrý a výstižný úvod do Forth jazyka.

  • Starting Forth: Úvod do Forth jazyka a operačního systému pro začátečníky a profesionály (1982) od Leo Brodie: je to klasický a skvělý způsob, jak se naučit Forth. Je to mimo tisk, ale použité kopie není těžké najít za málo peněz. Je také online zdarma. Pokročilí programátoři Forth možná budou chtít vyzkoušet nejnovější verzi Brodie, Thinking Forth.

  • Výukový program Forth Lite (2014) od Juergen Pintaske: Toto je tutoriál založený na Kindle, který se zaměřuje na příklady.

  • Programování problémově orientovaného jazyka: Forth – Jak pracují Internals (2014) Charles Moore: Toto je Kindle verze knihy, kterou Forth napsal autor dávno. Stále poskytuje důkladný přehled o jazyce, ale není nejlepší volbou začít.

  • Příručka Forth Programmer’s Handbook (2007) od Elizabeth Rather a Edwarda Conklina: je to pokročilejší kniha o filmu Forth od dalších dvou průkopníků Forthu. Viz také Ratherova kniha, Forth Application Techniques (2006).

Další zdroje

  • Forth zájmová skupina: tento web obsahuje všechny druhy zajímavých informací, včetně starých historických dokumentů. Bohužel má také mnoho nefunkčních odkazů. Ale stále stojí za kontrolu.

  • Odkazy na programy Forth: Jedná se o skvělou sbírku skutečných příkladů programů, jako je tabulka a řešitelka sudoku.

  • Forth Google Group: Toto je velmi aktivní skupina uživatelů Forthu, kteří kladou otázky a zodpovídají je.

  • Forth Subreddit: nejedná se o strašně aktivní fórum, ale na něm stále existují znalí lidé.

Čtvrté implementace

V průběhu let došlo k mnoha implementacím Forthu. Forth zájmová skupina má dlouhou Forth Compiler Page. Takže pokud náhodou máte v garáži nastavení PDP-11, můžete si za to získat kompilátor Forth! Ale pro modernější systémy jsou zde běžnější možnosti.

bigFORTH

V polovině 80. let vyvinuli Dietrich Weineck, Georg Rehfeld a Klaus Schleisiek volksFORTH pro 16bitové stroje, jako jsou počítače IBM 8086 a 6502 Apple, Commodore a Atari..

Nakonec vytvořili 32bitovou verzi pro (16bitovou sběrnici) Atari ST na bázi 68000. Přestože volksFORTH postupoval, projekt do značné míry zemřel (i když byl později restartován).

Bernd Paysan se dostatečně zajímal o tuto verzi volksFORTH (do té doby označovanou jako turboFORTH), ale udělal z ní základ bigFORTH.

Jeho první verze byla vydána pro Atari ST v roce 1990. V roce 1995 byl port bigFORTH přenesen na 386 a následující rok byl k dispozici na Windows NT, OS / 2 a Linux.

Grafické rozhraní

V tu chvíli začal Paysan pracovat na MINOSu. (Technicky se jedná o „MINOS“, ale obvykle se označuje jako „MINOS“.)

Je to grafické rozhraní pro bigFORTH. Může být nejjednodušší myslet na to jako na „Visual bigFORTH“ jako Visual Basic, protože to je víceméně to, co to je. Byl poprvé vytvořen pro systém X-Windows. Ale brzy to bylo dostupné i pro Windows.

Zdá se, že vývoj na bigFORTH i MINOS se zastavil kolem roku 2010. Jsou však snadno dostupné a docela užitečné (bigFORTH vyhovuje ANSI). Ve skutečnosti je MINOS se spoustou legrace.

bigFORTH zdroje

Pokud chcete použít bigFORTH nebo pro něj dokonce vytvořit, budete mít všechny nástroje, které potřebujete:

  • Zdrojový kód: Toto je kód z posledního oficiálního vydání 22. března 2010, verze 2.4.

  • Balíček Debian: snadno nainstalovaný balíček pro jakoukoli distribuci Linuxu založenou na Debianu (např. Ubuntu, Mint). Nainstaluje se do / usr / local / bin a zahrnuje MINOS, i když se nazývá xbigforth.

  • Windows Samoinstalační spustitelný soubor: stejný jako balíček Debian, ale pro Windows. MINOS je dokonce pojmenován xbigforth.exe.

  • Dokumentace (PDF): tato téměř 300 stránková kniha funguje jako návod a reference, napsaný JL Bezemerem. Hodně z toho je na obecném Forthu a je z čeho pochází „A tak Forth…“.

  • Domovská stránka Bernda Paysana: tato stránka obsahuje spoustu zajímavých informací a příkladů souvisejících s Forthem. Obzvláště důležitá je značkovací jazyk založený na Paysanovi Forthovi.

  • repozitář bigFORTH: konečný cíl pro všechny vaše potřeby bigFORTH.

Gforth

Gforth je implementace GNU Forthu v GNU. Má výrazný rodokmen.

Projekt Gforth byl zahájen v roce 1992 velkým tvůrcem FORTH Berndem Paysanem a Antonem Ertlem, s podstatnými příspěvky Jens Wilke.

Jednalo se o kombinaci bigFORTH a mnohem starší fig-FORTH (viz níže). Historie je však zkroucená, protože bigFORTH pocházel z volksFORTH, který byl založen na fig-FORTH.

Vzhledem k tomu, že se jedná o projekt GNU, od té doby se na něm odvedlo mnoho práce. Nyní je plně kompatibilní s ANSI a dosáhl všech svých původních cílů. Poslední verze je 0.7.3, s poslední položkou (Paysan) 25. února 2013.

Pokud jde o bezplatné implementace Forthu, je Gforth nejčastěji používaným. Část toho je jen proto, že je součástí projektu GNU a jeho dostupnosti. Ale je to také proto, že je výkonné a rychlé.

Zdroje Gforth

Společnost Gforth má všechny zdroje, které potřebujete, abyste ji mohli použít na cokoli, co potřebujete:

  • Zdrojový kód: Tato stránka poskytuje zdrojový kód Gforth od verze 0.2.1 po aktuální, 0.7.3.

  • Debian balíčky: pro distribuci Debian Linuxu jsou k dispozici různé balíčky. V závislosti na vybraném balíčku budete možná muset nejprve nainstalovat jeden nebo více dalších balíčků.

  • Windows Samoinstalační spustitelný soubor: Toto je starší verze (0.7.0) Gforth, ale rychlý způsob, jak začít.

  • Dokumentace (PDF): Tato 250stránka platí pro verzi 0.7.0 Gforth. Je také k dispozici ve formátu HTML.

  • Gforth Repository: skoro vše, co souvisí s Gforthem, najdete zde.

pbForth

Zdá se, že pbForth již není podporován, ale je to tak zajímavá implementace Forthu, že se vyplatí vyzkoušet.

Jak jsme diskutovali, Forth byl vždy spojen s hardwarovou kontrolou. Nebylo tedy vůbec překvapivé, že pro robotickou sadu LEGO MINDSTORMS byla vytvořena implementace Forth – konkrétně 16bitová RCX, která vyšla v roce 1998.

Zdá se, že nikdy nebyl aktualizován pro práci s druhou generací řady NXT, která vyšla v roce 2006, ani se současnou MV3, která vyšla v roce 2013.

Přestože pro pbForth neexistují žádné oficiální stránky, stále je možné se o nich dozvědět a dokonce je používat. Může však existovat strmá křivka učení, protože není tolik informací. A samozřejmě byste potřebovali LEGO MINDSTORMS RCX (není těžké je použít).

NXT používá zcela odlišný (a 32bitový) procesor, takže pbForth by s ním rozhodně nepracoval. Přesto to může být zábava. A pokud se na to chystáte, můžete si ji představit do souprav druhé a třetí generace.

Zdroje pbForth

Jaké informace jsou k dispozici na běžném internetu, jsou obecně těsné a vždy odkazují na domovskou stránku pbForth, která není funkční alespoň od roku 2010. Většina z toho je k dispozici pouze díky internetovému archivu..

  • Historie robotiky LEGO: i když nejde o pbForth, poskytuje rychlý přehled o produktech LEGO MINDSTORMS.

  • Úvod do pbForth
    (PDF): tento 30stránkový průvodce vám pomůže začít s jazykem.

  • zdrojový kód phForth
    : Všimněte si, že pbForth je napsán v jazyce assembleru a Tcl, takže budete muset mít tyto nástroje k dispozici.

  • GUI systému Windows
    : tento soubor se spouští, i když to může být složitější. Pokud chcete pbForth pro Linux nebo Mac, budete muset použít zdrojový kód.

  • Domovská stránka phForth circa 2009
    : Tato stránka poskytuje odkazy na docela zajímavé informace o pbForth, zejména na půl tuctu ukázkových skriptů.

Další implementace

  • fig-FORTH: toto byla jedna z prvních implementací Forth, vytvořená Forth zájmovou skupinou. Jedná se o 16bitovou implementaci. Je k dispozici pro některé nádherné staré počítače, jako jsou Data General Eclipse a Alpha Micro, a také pro počítače založené na 8086 a 6502. Problém je v tom, že neexistují žádné spustitelné soubory – pouze kód jazyka sestavení. A ve většině případů pouze bitmapové soubory PDF kódu. Skutečný kód vypadá, že je k dispozici pouze pro 8088/8086, PDP-11 a 6800. (6800 je 8bitový procesor, takže zřejmě existuje 8bitová verze fig-FORTH.)

  • SP-Forth: Jedná se o bezplatnou implementaci Forth pro Windows a Linux.

  • 4tH: Toto je snadno použitelná implementace Forth, která je k dispozici pro širokou škálu hardwaru (včetně Raspberry Pi) a zahrnuje dobrou dokumentaci.

  • SwiftForth ™: Toto je kompilátor Forth z původní společnosti, která přivedla Forth na svět. Jedná se o komerční produkt, ale za rozumnou cenu.

souhrn

Forth je fascinující a neuvěřitelně užitečný programovací jazyk. To platí zejména, pokud chcete ovládat hardware. Pomocí zdrojů zde byste měli být na cestě.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map