Forth programovací jazyk
Forth je počítačové programovací prostředí vyvinuté Chuckem Mooreem pak u nás národní rozhlasová hvězdářská observatoř (NRAO) během šedesátých lét, a později formoval jako programovací jazyk v 1977, a standardizovaný ANSI v 1994. To uvádí oba interaktivní provádění příkazů (dělat to vhodný jako shell pro systémy, které chybějí formálnější operační systém), stejně jako schopnost sestavit sledy příkazů do závitového kódu pro pozdnější popravu. Jeho jméno je odvozeno z pana Moorea má víru, že to bylo “fourth-generační počítačový jazyk” na počítači jehož souborový systém dovolil jen pět-identifikátory dopisu.
Dále nabídne stát-osamoceně programovací prostředí, sestávat z hromada orientovaný interaktivní postupný interpret/kompilátor. Programování je děláno tím, že rozšíří jazyk s ' slova (termín používal pro dále subrutiny), který se stát částí jazyka jednou definovaný. Forth je obvykle realizován s vnitřním interpretem trasování nepřímo navlékalo strojový kód, které výnosy extrémně stlačují a rychle kód vysoké úrovně, který může být kompiloval rychle. Charakter určoval obrazovku/blokovat mechanismus a standard editor zapsaný Forth, poskytovat mechanismus souboru pro vytvářet a ukládat Forth zdrojový kód. Není tam žádné pojetí ' objektový kód ' (pre-kompiloval definice) v Forthovi: definice, které jsou vyžadovány jsou sestaveny na místě.
Náležitý k jednoduchosti přidávat a používat malé strojové kódové definice k jazyku a používat ty v interaktivní vysoké úrovni programovací prostředí, Forth jazyk byl populární jako jazyk vývoje pro vestavěné systémy a jako prostředek pro kontrolu nástroje. Struktura vnitřního tlumočníka je podobná moderním RISC procesorům a procesory, které používají Fortha jak programovací jazyk byli vytvoření. Náležitý k modulární rozšiřitelné povaze Fortha, který připustí, např., pro objekt orientované programování, také mnoho aplikací vysoké úrovně, takový jako Hulvát systémy byly zapsány dále.
Forth spoléhá se těžko na explicitním použití zásobníkové datové struktury a Obrácené polské notace (nebo RPN, také použitý na pokročilých kalkulačkách od Hewlett-Packard). Tento zápis je také nazýván postfixovou notací, protože operátor následuje jeho operands, jak protilehlý k více obyčejný infixová notace kde operátor přijde mezitím jeho operands. Odůvodnění pro postfixovou notaci je že to je blíže ke strojovému jazyku počítač bude nakonec používat, a should proto být rychlejší vykonat. Například, jeden mohl dostat výsledek matematického výrazu tato cesta:
25 10 * 50 + .Tato příkazová řádka nejprve dá čísla 25 a 10 na implikované hromadě; “*” příkaz násobí dvě čísla na vrcholu zásobníku a nahrazuje je jejich produktem; pak číslo 50 je umístěn na hromadě, a “+” příkaz přidá to k předchozímu produktu; konečně,”.” příkaz tiskne výsledek k terminálu uživatele. Dokonce jazykové tektonické poměry jsou hromada-umístěný. Například:
300
Tento kód definuje nové slovo (znovu ' slovo ' je termín užitý na subrutinu) volal “FLOOR5” používat následující příkazy: “DUP” jednoduše kopíruje číslo na hromadě;”C programovací jazyk):: FLOOR5 DUP 5
floor5 int (int v) {jestliže (v
Forth stal se velmi populární v 80-tých letech, protože to bylo dobře vhodné k malým mikropočítačům toho času, být velmi výkonný v jeho použití paměti a snadný splnit na novém stroji. Přinejmenším jeden domácí počítač, Britové Eso Jupitera, měl Forth v jeho ROM- domácí OS. Jazyk je ještě použit v mnoha malých počítačových zařízeních (volal vestavěné systémy) dnes pro efektivita vyvozuje.
Forth je také neslavný jako bytí jeden první, a nejjednodušší rozšiřitelné jazyky. To je, programátoři mohou snadno upravit vlastnosti jazyka k problému. Bohužel, roztažnost také pomáhá chudým programátorům psát nesrozumitelný kód. Jazyk nikdy dosáhl širokého komerčního použití, snad protože to získalo si pověst jak “psát jediný” jazyk po několika společnostech měl závady výrobku způsobily, když velmi důležitý programátor odešel.
Zodpovědné společnosti mluvit jazykem, takový jako Forth Inc, stal se vědomý problému a oslovoval to s vnitřními kulturami, které zdůraznily recenze kódu.
Většina Forth systémů zahrnuje specializovaného montéra, který produkuje spustitelná slova. Slova jazyka symbolických instrukcí obvykle skončí makrem nazvaný “příště” který indexuje interpreta adresy k příštímu slovu, a vykoná to.
Klasické Forth systémy používají žádný operační systém. Místo toho, aby uložil kód v souborech, oni uloží to jako zdroj-kód v blokách disku psaných k fyzickým diskovým adresám. Toto je příhodnější než to zní, protože čísla přijdou být známý. Také, Forth programátoři přijdou být důvěrně obeznámen s datovými strukturami jejich disků, jen tím, že edituje disk. Forth systémy používají jediné slovo “blok” překládat množství 1K bloku prostoru na disku do adresy vyrovnávací paměti obsahovat údaje. Forth systém automaticky řídí vyrovnávací paměti.
Klasické Forth systémy jsou také multitasking. Oni používají zvláštní slovo, “se pozastavit” uložit všechny důležité registry k aktuálnímu zásobníku, lokalizovat příští úkol, a obnovit všechny registry. Úlohy jsou organizovány jako scratchpad, oblast pro proměnné používané úlohou a zásobníky pro tu úlohu. Obvyklý způsob, jak hledat spustitelnou úlohu má skočit k plánu, který je provázaný seznam sestávat z skokových instrukcí. Když softwarová přerušovací instrukce nahradí skok, úloha začne běžet. Tento systém je pozoruhodně účinný. V dále programovací třídě, deset uživatelů bylo podporované na 8MHz PDP-11, s každým uživatelem operovat ven méně než 4K RAM a sdílení jediná disketa. V systému telefonu, tisíc úloh (jeden na telefon) byl podporován na malém Nova minipočítači.
Struktura základních údajů Fortha je “slovník,” to mapuje “slova” ke spustitelnému kódu nebo jiným pojmenovaným datovým strukturám.
Obecná struktura slovníkového hesla sestává z hlavy a ocasu. Hlava obsahuje jméno, data dělení, bajt příznaku, ukazatel na kód se sdružil se slovem, a někdy jiný, nepovinný ukazatel na data se sdružil se slovem. Ocas má údaje.
Bajt příznaku v hlavě slovníkového hesla rozlišuje slova s “kompilovat čas” chování. Nejvíce jednoduchá slova vykonají stejný kód zda oni jsou napsaní na příkazové řádce, nebo vložený v kódu. Slova kompilačního času mají zvláštní smysly uvnitř kódu Fortha. Klasické příklady kompilovat čas slova jsou kontrola-struktury. Všichni Forthových kontrolních struktur, a téměř všichni jeho kompilátora být uskutečněn jak slova kompilačního času.
Když slovo je čistě spustitelné, ukazatel kódu jednoduše ukáže na kód. Když slovo je proměnná nebo struktura ostatních dat, ukazatel kódu ukáže na kód sdílený s jinými proměnnými toho typu a ukazatel dat ukáže na oblast dat pro ten specifický druh proměnné.
Počítačové programy v Forthovi
Slova psaná v Forthovi obvykle překládají do seznamů adres jiných slov, který šetří velmi velká množství prostoru. Kód vykonaný těmito slovy je “interpret adresy.” adresové interpretové laně jen dost snaží se být schopný vykonat nejnižší úroveň slov, který být zapsán jazyk symbolických instrukcí.
Forth používá dva zásobníky pro každé vykonání úkolu. Zásobníky jsou stejné šířka jako indexový registr počítače, tak že oni mohou být používáni donést a uložit adresy. Jeden zásobník je hromada parametru, zvyklý na data povolení ke slovům. Jiná hromada je hromada spojení, zvyklý na slova hnízda a obchodní lokální proměnné. Tam jsou spisovná slova k datům pohybu mezi hromadami a přístupovým proměnným.
Forth interpret se zlepšuje formuluje jednoho v době ve slovníku, a vykoná jejich kód. Základní algoritmus má prohledávat řadu znaků pro non-prázdné místo, non-kontrola-znakový řetězec. Jestliže tento řetězec je ve slovníku a to není slovo kompilačního času (označené v příznakovém bajtu), kód je vykonán. Jestliže to není ve slovníku, to může být číslo. Jestliže to konvertuje k číslu, číslo je tlačeno na hromadě parametru. Jestliže to nekonvertuje, pak interpret tiskne řetězec, následovaný otazníkem, a zahazuje zbytek řady textu.
Forth kompilátor produkuje slovníková hesla. Jiný než to, to pokusí se simulovat stejný účinek, který by byl vytvořený tím, že napíše text do interpreta.
Velké tajemství ke splnění dále je natively překládat to, tak že to překládá sebe. Základní schéma má mít kompilátora definovaného v termínech nemnoho slov, která zpřístupňují územní kód. Pak, jedna definice slov kompiluje k normální oblasti paměti. Další definice překládá na disk, nebo k nějaké zvláštní pamětové oblasti. Jak jeden adaptuje kompilátora? Jeden recompiles to s novými definicemi. Některé systémy dokonce definovaly nízkoúrovňová slova komunikovat s ladícím programem na různém počítači, stavět Forth systém v různém počítači.
Jedno tradiční použití Forth programovacího jazyka je v Otevřeném firmwaru, BIOS-systém nahrazení se vyvíjel Slunce Microsystems.
Viz též Joy programovací jazyk.
- bashforth je volně dostupná implementace, vyžadovat spravedlivý flám k běhu
Externí odkazy
Některé volně dostupné Forth implementace:
- PFE -- Přenosné Forth prostředí
- Gforth -- GNU Forth jazyk prostředí
- kForth -- Malý Forth interpret psaný v C + +
- SP-Forth (SPF) -- OpenSource Forth pro Win32
- Informace o Forthovi pro 8-domov kousku-počítač (Atari, Apple, ZX-80,...)
Forth společenství
- Tam je Forth-specifické wiki u http://www.forthfreak.net/wiki/
- Jeden může setkat se na IRC, irc.freenode.net, kanál # dále. To se připojí z Evropy, irc.eu.freenode.net je přednostní.