Tato třída jazyků je docela zajímavá, článek se také čte dobře - ale tvary interpreter,interpreteru, interpretery mě bodají do očí. Už půl století se v češtine používají tvary interpret, interpretu, interprety.
To jsou puvodni anglicke nazvy, ale diky za upozorneni, priste si na to dam vetsi pozor. Zajimave je, ze u "compileru" se vic hlidam a napisu radeji prekladac, ale u interpretu me ta ceska verze jaxi nesedi (pripomina mi to zpevaky) :-)
To je zajímavá historka. Mí chlebodárci si před zadáním špatně obhlídli terén, takže jsme na začátku vývoje zjistili, že to, co děláme, už v podstatě existuje v hodně pokročilé fázi vývoje - projekt jménem Smee. U něj nám moc nevyhovovala licence, tak jsme kontaktovali autora a zjistli, že ten projekt se nyní vyvijí pod křídly IBM a od poslední veřejně publikované verze na něm bylo značně zapracováno a chyby, které jsme hlásili, byly již opraveny. Autor byl pro otevřenější licenci, ale k tomu je potřeba to protáhnout přes právníky IBM. Mezitím vyhráli jednu inovation award, což jim přilákalo hodně nových zákazníků a vývojové kapacity se musely přesunout na přizpůsobování stávajícho systému jejich specifickým potřebám a vývoj nových verzí včetně pokročilé práce s JavaScriptem musel zatím ustoupit.
Roll si "saha" o uroven niz do zasobniku. Takze swap "rotuje" dve nejvyssi polozky, rot tri nejvyssi polozky a roll ctyri nejvyssi polozky. Dal, resp. niz nema cenu jit, protoze - jak rika Leo Brodie - zasobnik neni pole :-)
trochu offtopic - nepripada vam to trochu divne? netusite proc se nerozhodli pojmenovat to treba rot 2, rot 3, rot 4.... rot N?
ad leo brodie: zasobnik neni pole? muzete me navest na nejakou jeho uvahu o tom proc "zasobnik neni pole"? ... zatim nevidim duvod proc by zasobnik nebylo pole, lepe linearni jednosmerny seznam ktery by nedovolovat tolik co pole ... ale taky nevim co tim myslel :)
Je to tak pojmenovane z historickych duvodu, odvozeno je to z Forthovskych slov. Logicke to z tohoto pohledu (pro lidi, co na zasobnikove jazyky prisli "zvenku) urcite neni, ovsem stejne jako "car" a "cdr" v Lispu nebo argc a argv v Cecku se to stale pouziva. Redefinice vsak neni slozita, muzete si slova pojmenovat treba rot2 nebo klidne i 2rot :-)
Leo Brodie (viz Starting Forth a Thinking Forth, mozna to maji i v Rootovske knihovnicce) to myslel tak, ze se zasobnik ma pomoci operatoru primo vyuzivat pouze do urcite hloubky. Maximum co si programator dokaze bezchybne zapamatovat jsou ctyri az pet polozek, potom je to uz prilis slozite (napriklad dup ci drop vlastne "zamichaji" vsemi polozkami).
Samozrejme implementacne neni problem "sahat" kamkoli, dokonce jsou pro to ve Forthu prislusna slova (tusim nth? - vidite ani nevim, nikdy jsem to nepouzil), ale neni to doporucovano, nikoli zakazano. (problem s tim muzou mit jeste zasobnikove procesory, ktere nekolik prvnich polozek maji v kesi, ale to je jiz trosku slozitejsi).
Mimochodem, pokud vas tyto jazyky opravdu zajimaji, tak si toho Brodieho proctete. Thinking Forth byla nove prepsana pod GPL-like licenci, takze se to da na netu najit. Neni to jen o Forthu ale o filozofii programovani obecne, hodne to pripomina moderni XP.