abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
16.8. 19:00 | Nová verze

Byla vydána verze 18.08.0 KDE Aplikací (KDE Applications). Přehled novinek v kompletním seznamu změn a na stránce s dalšími informacemi.

Ladislav Hagara | Komentářů: 0
16.8. 18:44 | Pozvánky

Spolek OpenAlt zve příznivce otevřených řešení a přístupu na 155. brněnský sraz, který proběhne v pátek 17. srpna od 18:00 na zahrádce restaurace Tanganika (Horova 35). V případě nepřízně počasí uvnitř. Tentokrát bude sraz pojat tématicky. Vzhledem k blížícímu se 50. výročí invaze vojsk Varšavské smlouvy do Československa proběhne malá výstava. Kromě literatury budou k vidění též originály novin z 21. srpna 1968, dosud nikde nezveřejněné fotky okupovaného Brna a původní letáky rozdávané v ulicích.

Ladislav Hagara | Komentářů: 0
16.8. 01:00 | Komunita

Měsíc po Slackware slaví 25 let také Debian. Přesně před pětadvaceti lety, 16. srpna 1993, oznámil Ian Murdock vydání "Debian Linux Release".

Ladislav Hagara | Komentářů: 10
15.8. 06:00 | Nová verze

Byla vydána nová verze 1.26 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Představení novinek také na YouTube.

Ladislav Hagara | Komentářů: 27
15.8. 03:00 | Nová verze

Po více než 3 měsících vývoje od vydání verze 2.12.0 byla vydána nová verze 3.0.0 otevřeného emulátoru procesorů a virtualizačního nástroje QEMU (Wikipedie). Přispělo 169 vývojářů. Provedeno bylo více než 2 300 commitů. Přehled úprav a nových vlastností v seznamu změn. Proč verze 3.0.0 a ne 2.13.0? Není to kvůli triskaidekafobii. QEMU letos v březnu slavilo 15 let od oznámení verze 0.1 a to je dle vývojářů dobrý důvod pro novou major verzi. Vývojáři mají v plánu zvyšovat major verzi jednou ročně, vždy s prvním vydáním v daném roce.

Ladislav Hagara | Komentářů: 3
14.8. 22:11 | Bezpečnostní upozornění

Intel potvrdil (INTEL-SA-00161) další bezpečnostní problém ve svých procesorech. Problém byl pojmenován L1 Terminal Fault aneb L1TF. Popis problému přímo od Intelu na YouTube. Jedná se o CVE-2018-3615 (SGX), CVE-2018-3620 (OS/SMM) a CVE-2018-3646 (VMM). Další informace na stránce Foreshadow nebo přímo v dnešním commitu do Linuxu.

Ladislav Hagara | Komentářů: 19
14.8. 12:33 | IT novinky

Po více než 4 letech bylo vydáno RFC 8446 popisující verzi 1.3 protokolu TLS (Transport Layer Security). Popis novinek i historie TLS například v příspěvku na blogu Cloudflare.

Ladislav Hagara | Komentářů: 0
14.8. 11:11 | Zajímavý software

V roce 1998 uvedla společnost Tiger Electronics na trh elektronickou hračku, malého chlupatého tvora s velkýma ušima, Furby. Furby patřil k nejžádanějším hračkám. Během tří let se jich prodalo více než 40 milionů. Furby již tenkrát reagoval na světlo, zvuk, polohu, doteky a přítomnost dalších Furby. Sám mluvil a pohyboval se. Firmware uvnitř simuloval postupný vývoj a učení. Zdrojový kód tohoto firmwaru byl zveřejněn na Internet Archive [Hacker News].

Ladislav Hagara | Komentářů: 21
14.8. 02:00 | Nová verze

Australská společnost Blackmagic Design oznámila vydání verze 15 svého proprietárního softwaru pro editování videa a korekci barev DaVinci Resolve běžícího také na Linuxu. Představení nových vlastností na YouTube. Základní verze DaVinci Resolve je k dispozici zdarma. Plnou verzi DaVinci Resolve Studio lze koupit za 299 dolarů. Před rokem to bylo 995 dolarů.

Ladislav Hagara | Komentářů: 0
13.8. 21:00 | Zajímavý projekt

Cílem projektu DXVK bylo vytvořit vrstvu kompatibility mezi Direct3D 11 a Vulkanem a začlenění této vrstvy do Wine. Direct3D 10 nad Vulkanem bylo možné řešit mezikrokem pomocí vrstvy DXUP překládající Direct3D 10 na Direct3D 11. Vývojáři DXVK se rozhodli přímo podporovat Direct3D 10. Podpora byla začleněna do hlavní větve na GitHubu.

Ladislav Hagara | Komentářů: 4
Používáte zařízení („chromebook“, „chromebox“ či tablet) s ChromeOS?
 (7%)
 (4%)
 (13%)
 (77%)
Celkem 199 hlasů
 Komentářů: 9, poslední 14.8. 21:03
    Rozcestník

    Forthovské eso

    27.7. 01:14 | Přečteno: 1628× | Výběrový blog | poslední úprava: 27.7. 01:14

    V mých minulých zápiscích několikrát zaznělo poněkud praštěné jméno počítače, které se dnes pojí nejčastěji s přídavnými jmény jako obskurní či neúspěšný. Ale stejně tak se k němu hodí slovo brilantní a úplně nejvíc mu sluší přídavné jméno jediný - jediný domácí mikropočítač, který si si dovolil narušit nadvládu BASICu a své uživatele vrhl přímo do zásobníkového světa programovacího jazyka Forth. Tím počítačem byl Jupiter Ace.

    Když se na začátku osmdesátých let naplno rozjížděla horečka kolem domácích mikropočítačů, řekl si Richard Altwasser, v té době zaměstnanec Sinclair Research, který se mimo jiné podílel na návrhu plošného spoje počítače ZX81 a grafického režimu ZX Spectra, že z toho zlatého dolu by si mohl něco natěžit pro sebe a ne jen dřít na Cliva Sinclaira. Spojil se se Stevem Vickersem, který smýšlel podobně. Ten, ač nebyl přímo zaměstnanec Sinclair Research, toho s jejich počítači měl společného víc než dost. Byl zodpovědný za rozšířenou verzi BASICu v počítači ZX81 a napsal většinu ROM ZX Spectra.

    Když se ZX Spectrum dostalo do výroby a oni si tak konečně mohli vydechnout po hektických měsících práce plných brutálních časových termínů, rozhodli se dát svým zaměstnavatelům sbohem a založili vlastní společnost nazvanou Jupiter Cantab a naplno se pustili do práce na novém počítači. Oba to byli mistři svého oboru a na jejich výtvoru to bylo rozhodně znát. S přihlédnutím k možnostem, jaké měli, se jedná jak po hardwarové, tak po softwarové stránce o dílo naprosto brilantní.

    V roce 1980 Sinclair Research začal prodávat ZX80 složený z jednadvaceti integrovaných obvodů. Jednalo se o velice chytře řešený počítač vzniklý s ohledem na co nejnižší cenu. Tomu odpovídaly i parametry. Čtyři kilobyty ROM stačily jen na základní implementaci BASICu a ani s jedním kilobytem RAM si novopečení majitelé nemohli vyskakovat. O generování černobílého videosignálu se staral přímo samotný procesor. To znamenalo, že v okamžiku, kdy bylo potřeba, aby dělal něco užitečnějšího, žádná data do frekvenčního modulátoru posílat nestíhal a obraz se tak i při pouhém psaní na klávesnici velice nepříjemně zhášel. ZX80 ani v podstatě neměl žádnou obrazovou paměť. Pro generování obrazu využíval předdefinovanou tabulku znaků z ROM.

    O rok později (5. března 1981) na trh vstoupil jeho levnější nástupce - ZX81. Nabízel dvojnásobek ROM s BASICem, který zvládal reálná čísla a příkazy pro pseudografiku v rozlišení 64x48 generovanou ve skutečnosti pomocí speciálních znaků textového režimu. Cenu se podařilo snížit především díky tomu, že se všechny integrované obvody krom procesoru, ROM a RAM podařilo implementovat pomocí jediného zákaznického obvodu ULA, takže počítač obsahoval pouhé čtyři chipy. Problém s blikáním obrazu byl vyřešen tak, že procesor práci vykonával jen v čase, kdy nemusel generovat video signál, tedy v době, kdy elektronový paprsek obrazovky směřoval zpět na začátek řádku či do levého horního rohu.

    Altwasser si do návrhu svého nového počítače nemohl dovolit začlenit žádný zákaznický obvod, ale i tak potřeboval jeho cenu udržet co nejníže. Přitom chtěl nabídnout to, co ZX81 nabídnout nedokázalo - stabilní obraz a přitom mít k dispozici plný výkon procesoru. Jeho návrh sestával z 28 chipů. Procesor Z80A, 2 ROM chipy, každý o kapacitě 4 kB, 6 chipů se statickou RAM po 512 bytech a zbylých 19 integrovaných obvodů byla standardní levná TTL logika. Vybaven byl i bzučákem pro generování zvuku, což ZX81 obcházelo přes port magnetofonu. Součástky, z nichž byl navržen, výrazně usnadňovaly návrh a sestavení prototypu.

    Zmínku si zaslouží i klávesnice. Ta narozdíl od počítačů ZX nebyla membránová. Byla tvořena plošným spojem a kontakt zajišťovala gumová tlačítka na spodní straně opatřená vodivým inkoustem. Jinak svým vzhledem, počtem kláves, rozložením i komfortem psaní silně připomínala klávesnici ZX Spectra.

    Základním prvkem Altwasserova návrhu (schéma) bylo oddělení video RAM a tabulky znaků od RAM, kterou počítač běžně využíval. Počítač měl k dispozici 1kB RAM, kde byly uloženy bitmapy 128 znaků o rozlišení 8x8 bodů. Tyto znaky se načítaly z ROM (z níž tedy ukously stejně velkou kapacitu) při startu počítače. Tabulka obsahovala krom písmen, čísel a základních symbolů i několik pseudografických znaků. Používat bylo možné 256 znaků, ale druhou polovinu tvořily pouhé dopočítané inverzní varianty.

    Jupiter Ace používal textový režim s rozlišením 32x24 znaků, které byly uloženy v 1 kB dedikovaném pro video RAM. Protože ji nezabraly celou, byl zbytek použit pro vstupní buffer (PAD) jazyka Forth nebo pro práci s magnetickými páskami. K dispozici byl tedy jen textový monochromatický režim, ale protože bylo možné všechny znaky upravovat dle libosti, dala se tak skutečná bitmapová grafika částečně nahradit. Vlastně bylo možné v šestině plochy obrazovky vykreslit úplně cokoliv. Zmíněná TTL logika neustále počítala adresu ve video RAM, kterou je zrovna nutné poslat na obrazovku, četla data z tabulky znaků a postupně odesílala bity příslušného řádku znaku.

    Procesor měl dvě možnosti, jak s grafickými paměťmi pracovat. Ta preferovaná byla počkat na dlouhé přesuny paprsku, až řídící logika nebude potřebovat data číst. To samozřejmě přístup do video RAM citelně zpomalovalo. Druhá možnost byla se na sběrnici neomaleně nacpat hned, což však mohlo a také vyvolávalo poruchy obrazu v podobě náhodných bílých čar (základní pozadí bylo černé). Oba kilobyty video RAM byly do paměťového rozsahu procesoru namapovány dvakrát a právě to, do jakého rozsahu přistupujete, určovalo míru kultivovanosti vašeho chování.

    Krom osmi kilobytů ROM a zmíněných dvou kilobytů věnovaných grafice a vstupnímu bufferu, byl Jupiter Ace vybaven ještě jedním kilobytem statické RAM, kterou měl procesor k dispozici plně pro vlastní potřeby (kvůli způsobu zadrátování byla do paměťového rozsahu namapována hned čtyřikrát). Malou část z ní bylo nutné použít pro systémové proměnné, takže na uživatele nakonec zbývalo 960 bytů. Čímž se dostáváme k softwarové výbavě tohoto mikropočítače, kterou měl na starosti druhý z jeho tvůrců, Steve Vickers.

    Tomu se podařilo svého kolegu přesvědčit, že pro jejich stroj je tím pravým zabudovaným programovacím jazykem Forth. Úvaha to rozhodně nebyla zcestná. Forth byl jednodušší na implementaci, takže mohl být k dispozici dříve, jedná se o svým způsobem kompilovaný jazyk, takže je mnohem rychlejší. V dokumentaci později uváděli, že desetinásobně oproti BASICu. Programy v něm jsou také paměťově úspornější než obdobné v Sinclair BASICu, což znamenalo, že 1 kB paměti v Jupiteru ACE měl reálně odpovídat asi dvěma až čtyřem kilobytům pro počítače konkurence. Navíc je Forth jazyk, který podporoval rozumné strukturování programů i pokročilé techniky meta-programování. Forth představoval šanci odlišit se od konkurence, zacílit na zákazníky, kteří toužili po dospělejším programování a zároveň vymáčknout z dostupného hardwaru maximum.

    Altwasser se nechal pro Forth přesvědčit a tak práce na jeho implementaci mohly začít. Základem se stal de facto standard Forth-79, který však bylo pro potřeby jejich počítače částečně upravit. Tohoto úkolu se Vickers zhostil na jedničku. Nově bylo potřeba pojmout především způsob ukládání a reprezentace programu, protože Forth byl navržen pro práci s blokovými zařízeními. Aby bylo možné programy dodatečně upravovat a ty přitom nezabíraly více paměti, než bylo nezbytně nutné, byla již přeložená slova dle potřeby zpětně dekompilována. Ztratilo se tím původní odsazování, ale nikoliv komentáře, jména funkcí a podobně.

    Kvůli velikosti ROM vypustil z Forthu méně důležitá slova, která však bylo možné snadno nahradit. Naopak bylo nutné implementovat některá nová slova pro potřeby ovládání počítače a v poskytnout některé operace běžné v BASICu. Tato implementace Forthu dovolovala volitelně vypínat či zapínat základní kontrolní mechanismy, takže když jste měli dostatečně odladěný program, mohli jste ho nebo jeho část nechat běžet asi o čtvrtinu rychleji. Pak jste ale například nemohli jeho běh přerušit klávesovou zkratkou.

    Jupiter Ace se dostal do do prodeje 22. září 1982 za necelých 90 liber včetně daně a poštovného (dobová reklama v časopise), protože se zasílal svým zájemcům poštou. Byl o dvacet liber dražší než ZX81. Altwasser s Vickersem měli spíše konzervativní odhad možných prodejů, očekávali odbyt asi tisíce kusů měsíčně. Bohužel i ten však zůstal nenaplněn. Tento počítač byl komerční neúspěch, který se nepodařilo zvrátit ani vylepšenému modelu Jupiter Ace 4000, jež používal vstřikované plasty a dovoloval interní ROM nahradit verzí z cartridge. Za jepičí život Forthovského esa se ho vyrobilo jen 5800 kusů. Altwasser, jehož rodina se v době vydání tohoto počítače rozrostla o nového člena, neměl chuť pokračovat ve zjevně marném podnikání a jejich zadlužená společnost Jupiter Cantab vyhlásila v listopadu 1983 úpadek.

    Příčiny neúspěchu Jupiter Ace není těžké najít. Mezi dobovými recenzenty počítač nebudil zvláštní nadšení. Krom nepříliš kvalitních vakuem formovaných plastů kritizovali především malou RAM, kterou sice bylo možné rozšířit přídavným modulem, ale ten celkovou cenu katapultoval do hladiny, kde se už pohybovalo mnohem lépe vybavené ZX Spectrum. Právě ZX Spectrum, které se na trhu objevilo o necelého půl roku dříve jako nástupce ZX81 za cenu 125 liber ve verzi s 16 kB dynamické RAM (případně 175 liber za 48 kB), pro Jupiter Ace představovalo těžkou konkurenci. Spectrum ho se svou ULA morálně převyšovalo nejméně o jednu generaci.

    Jupiter Ace přišlo na trh o rok později, než by potřebovalo k tomu, aby mohlo do počítačové historie zasáhnout výrazněji. Což je samozřejmě úvaha zcela zcestná, protože kdyby existovalo o rok dříve, vypadalo by pravděpodobně úplně jinak. Jeho autoři mohli zúročit zkušenosti nabyté z návrhu ZX Spectra. Mohlo konkurovat jen ZX81, které se prodávalo jako housky v krámě a těšilo se rozsáhlé softwarové i dokumentační podpoře. Jupiter Ace chtělo zaujmout především Forthem, ale i ten byl u recenzentů přijímán spíše s rozpačitým pokrčením rameny než jásavým zvoláním, že v něm je nesporně budoucnost domácích mikropočítačů.

    Altwasser s Vickersem nebyli žádní hlupáci a měli oprávněné pochybnosti o dostatečnosti hardwarové specifikace svého výtvoru. Zároveň ale věděli, že navrhli dobrý stroj, což byla nesporně pravda, a tak se prostě rozhodli to zkusit. Jako první iterace nové platformy tvořilo Jupiter Ace dobrý základ. Kdyby jeho prodeje šly lépe, mohli si v dalších verzích možná dovolit zákaznické obvody či třeba lepší klávesnici. Ale z dnešního pohledu se jeví stejně nepravděpodobné, že by přestáli následující kolaps trhu s mikropočítači.

    Jupiter Ace se díky velké podobnosti s počítači Sinclair a dobré zdokumentovanosti těší relativně dobré podpoře simulátorů, takže je velice snadné si práci s ním alespoň částečně vyzkoušet. Pokud toužíte po nefalšovaném fyzickém prožitku, budete si za něj muset připlatit, protože Jupiter Ace je dnes poměrně vzácný kus hardwaru, který je díky své jedinečné softwarové výbavě vyhledávaným sběratelským kouskem. Další možnost je si postavit vlastní klon, což je díky Altwasserově přímočaré konstrukci nevyužívající žádné speciální chipy relativně jednoduhé.

    Zkusme se na chvíli vžít do role školáka, kterému rodiče koupili pod stromeček nějakým nedopatřením či v dobré víře Jupiter Ace. Vickers sepsal kvalitní manuál, který zároveň slouží i jako učebnice Forthu s řadou cvičení a zajímavých technických detailů. I v tomto směru odvedli dobrou práci. Otázkou je, nakolik stravitelné čtení to bylo pro mladší čtenáře, ale když vezmeme v potaz, že většina z nich neměla mysl ovlivněnou předchozími zkušenostmi s počítači a programováním, mohlo to pro ně být v některých ohledech snazší než dnes pro nás.

    Forth je totiž jazyk, který by si ostudu neudělal ani v kategorii esoterických programovacích jazyků. Triviální příklad pro ilustraci z knihy. Chceme vytvořit slovo, které k proměnné daného jména přičte nějaké číslo. Tedy nejdříve na zásobník uložit zvolený inkrement, jméno proměnné a pak zavolat slovo, které jsme si pojmenovali (z dobrých důvodů) +!. Používá se pak jako:

    73 SHARE +!

    Jedna z možných implementací ve Forthu vypadá takto:

    : +!
      SWAP OVER @ + SWAP !
    ;
    

    Představte si, že mezi OVER a @ přidáte jeden DUP. I když dobře chápete význam jednotlivých použitých slov, chce to hodně zkušeností a procvičenou představivost k tomu, aby člověk tuto chybu odhalil jediným krátkým pohledem. To se přitom jedná o velmi krátce implementované slovo (taková by ideálně měla být všechna).

    Nechci tím říct, že by Forth byl write-only jazyk. Dají se v něm napsat pěkné přehledné výborně strukturované programy, ale začátečník takové psát asi nebude. Svoji sílu Forth ukazuje naplno až ve vyšších úrovních abstrakce. Jeho křivka učení není tak strmá jako u BASICu, jeho hlavního tehdejšího konkurenta.

    Uvedený příklad ilustruje ještě jednu důležitou vlastnost Forthu. V žádné dobové implementaci BASICu ho nenapíšete. Vyžaduje podporu ukazatelů. Je toho ještě mnoho, v čem Forth nad BASICem exceluje. Krom opravdového strukturovaného programování můžete překrývat původní implementaci předdefinovaných slov svou vlastní dle libosti nebo přímo rozšiřovat překladač samotný, což je vlastnost, která mu dává obrovské možnosti.

    Editor, který jste měli v Jupiter Ace k dispozici, byl velice skromný, podobný tomu u Spectra. Mohli jste editovat jen jednotlivá slova samostatně a pokud jste je chtěli vidět v kontextu ostatních, museli jste si je před tím sami vypsat na obrazovku. Občas bylo nutné pročistit si slovník, protože editovaná slova se ukládala jako kopie těch původních. S formátováním nebyl důvod si lámat hlavu, protože jste o něj stejně přišli. Odsazování však dekompilátor dodal automaticky. Psaní programů sice nebylo moc pohodlné, ale úplná katastrofa to také nebyla.

    V diskusi pod minulým článkem o BASICu se probíralo, jak jednoduché tenkrát oproti dnešku bylo na osmibitech vyrobit prográmek, který se zeptal uživatele na délku dvou stran, velikost úhlu a vykreslil daný trojúhelník. V Jupiter Ace to jednoduché nebylo. Ve 142 základních slovech definovaných v ROM chyběla přímá alternativa BASICovského příkazu INPUT. Ten šel velice snadno nahradit, ale mnohem horší to bylo s kreslením čar. Základní systém zvládal jen kreslení jednoho jediného bodu, takže slova na vykreslení přímky pro želví grafiku jste si už museli napsat sami. Přesněji řečeno, opsat z manuálu, kde byla uvedena jako jedno ze cvičení. Pro ochutnávku je sem uvádím:

    : SGN
      0> DUP + 1 -
    ;
    
    : DRAW 1
      ROT ROT OVER SGN OVER SGN
      4 ROLL ABS 4 ROLL ABS
      OVER OVER <
      ROT ROT 3 PICK
      IF
        SWAP
      THEN
    ;
    
    : DIAG
      6 PICK 6 PICK
    ;
    
    : SQUARE
      4 PICK
      IF
        0 6 PICK
      ELSE
        6 PICK 0
      THEN
    ;
    
    : STEP
      15408 C@ + SWAP
      15407 C@ + SWAP
      9 PICK PLOT
    ;
    
    : DRAW
      DRAW1 2 PICK DUP 2 /
      SWAP ?DUP
      IF
        0
        DO
          OVER + DUP 4 PICK >
          IF
            3 PICK - DIAG
          ELSE
            SQUARE
          THEN 
          STEP
        LOOP
      THEN
      7 0
      DO
        DROP
      LOOP
    ;
    

    Čísla 15407 a 15408 jsou adresy systémových proměnných, které obsahují souřadnice posledního bodu, kam se vypisovalo na obrazovku. Určitě by si zasloužila vlastní slova. Detaily toho, co přesně tento prográmek dělá, jsou v manuálu zevrubně popsány. Sluší se říct, že ZX81 na tom s kreslením čar nebylo o nic lépe a napsat funkčně podobný podprogram jste si museli také.

    Bylo toho více, co ve Forthu Jupiteru Ace v základu nebylo. Například podpora proměnných ukládajících řetězce. Na to bylo nutné si vytvořit rozšířením překladače nebo si příslušný kód opsat z manuálu a uložit na pásku k dalšímu použití. Člověk tak byl vyloženě nucen do tajů Forthu pronikat stále hlouběji. Jako zařízení, které vám mělo pomoci naučit se Forth, Jupiter Ace fungoval skvěle. S malou RAM, kterou byl vybaven, toho o mnoho víc zvládat nemohl. I nadšený zájemce o Forth brzy narazil na limity, které sebou malá paměť přináší.

    Nadšených zájemců o Forth ale mnoho nebylo a i ti měli i jiné možnosti. I pokud nechtěli příliš utrácet, ZX Spectrum třeba s Abersoft Forthem z roku 1983 za dvacet liber představovalo lepší investici. Lidé, kteří si domů pořizovali domácí mikropočítače, většinou nevěděli, k čemu jim vlastně budou dobré. S jedinou výjimkou, jak ilustruje hezká scéna s prodavačem z filmu Micro Men. I drtivá většina programů pro Jupiter Ace, co se dochovaly do dnešních dnů, jsou hry. Výjimkou je třeba tabulkový procesor, který samozřejmě dovoluje psát vzorce ve Forthu (manál). Jupiter Ace pro producenty her přirozeně nebyl příliš perspektivní platforma, což ji pomohlo rychle pohřbít.

    Proč ji po tolika letech zkoušet alespoň virtuálně exhumovat? Krom pěkného hardwarového návrhu je tím důvodem právě Forth. Sice je to programovací jazyk, který dnes leží na pokraji zájmu, ale v jedné pozitivní vlastnosti se mu pravděpodobně žádný jiný rovnat nemůže. Je to jazyk s nejelegantnějším bootstrappingem, jaký byl kdy stvořen. I když v něm nikdy nenaprogramujete víc než Hello World, rozhodně se podívejte třeba na detailně okomentovaný didaktický zdrojový kód k JohnesForthu, který ukazuje, jak se dá z pár instrukcí assembleru doslova vydupat kompilátor vyššího programovacího jazyka, který je navíc z velké části napsán sám v sobě. Věřte, nebudete litovat.

    Pokud dáváte přednost "archeologii", můžete se začíst i do výpisu ROM přímo z Jupiter Ace nebo zdrojových kódů Abersoft Forthu.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    27.7. 12:48 X
    Rozbalit Rozbalit vše Re: Forthovské eso
    svoji prvni vyplatu jsem dostal za programovani na tomto stroji. a to byly uz devadesata leta
    Bedňa avatar 27.7. 23:02 Bedňa | skóre: 34 | blog: Žumpa | Horňany
    Rozbalit Rozbalit vše Re: Forthovské eso
    Túto históriu by som si rád niekde prečítal v tvojom blogu. Nepíšeš niekde?
    KERNEL ULTRAS video channel >>>
    27.7. 12:59 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: Forthovské eso
    Diky za post, zajimave cteni, ale mozna bys mohl uvazit udelat z toho clanek?

    Jinak on by mozna ten Forth tak strasny nebyl.. kdyby si nekdo dal namahu a naprogramoval v tom treba ty graficke priklady, ktere jsou v tom manualu k ZX Spectru.

    Zda se mi, ze je to klasicky priklad Worse is Better.

    V mem pripade je to casto psychologie. Kdyz chci mit neco prilis dokonale, tak nad tim moc premyslim a k nicemu to nevede. Ale kdyz si jen hraji, tak toho nakonec dosahnu vic. Mozna to plati i pro autory a zaky programovacich jazyku.
    27.7. 20:13 Miloslav Ponkrác
    Rozbalit Rozbalit vše Re: Forthovské eso
    V okamžiku, kdy se rozhodli pro Forth namísto Basicu - tak vše pohřbili.

    Díval jsem se na schéma toho počítače - je to zcela klasický počítač bez zvláštního nápadu či invence nebo náznaku jakékoli kreativity či chytrosti. Prostě mainstreamové schéma učebnicového typu. Tehdy ovšem nebyly součástky k tomu, aby se to dalo udělat levně - leda ty zákaznické obvody.

    Vůbec ta počáteční éra počítačů byla zakletá. Řadě návrhářů se moc líbilo, když počítač generuje i videosignál - a tak letí cena šíleně dolů. Ať už ZX80, ZX81, nebo náš Ondra. Ale takový počítač je pomalý a fakticky nepoužitelný.

    Mně by třeba zajímalo, proč nenavrhli v tehdejší době - když už to chtěli udělat pořádně - počítač se dvěma procesory. Jeden hlavní a druhý, který se bude starat jen o videoginál a grafiku. Tak jako třeba Amiga nebo dnešní počítače, ale samozřejmě v menším. Asi ty procesory tehdy byly velice drahé na tento koncept.

    Forth pro běžné lidi opravdu strašný je. Zatímco k Basicu sednete a tváří se k laikům přívětivě a i rychle něco naprogramují, u Forthu tomu tak není. Forth prostě není přívětivý. Blbým slovem ve Forthu se dá rozhodit zásobníku sandál natolik, že to celé spadne. Forth navíc nemá mnoho věcí vyřešeno: Neumí rozumně pracovat s texty, jakmile jde na různé datové typy, začíná to být s Forthem sranda, atd. Forth není pro laiky určen.

    Dokonalé věci se dají udělat dobře a úspěsně. Ale je třeba mít nadprůměrné znalosti a kreativitu. Většina lidí dělá dokonalost jen tak, že to nabublá o bloatware. Nevyužívají triků a hlubokých znalostí součástek a jejich vedlejších efektů, netrikují, nehrají si s tím.
    27.7. 21:57 Pavel Křivánek | skóre: 26 | blog: Kvičet nezávaznou konverzaci
    Rozbalit Rozbalit vše Re: Forthovské eso
    Mně by třeba zajímalo, proč nenavrhli v tehdejší době - když už to chtěli udělat pořádně - počítač se dvěma procesory. Jeden hlavní a druhý, který se bude starat jen o videoginál a grafiku. Tak jako třeba Amiga nebo dnešní počítače, ale samozřejmě v menším. Asi ty procesory tehdy byly velice drahé na tento koncept.
    Myslím, že v ceně procesoru ten hlavní důvod v té době už nebyl, ta byla pod deset dolarů. Ostatně, třeba disketové mechaniky pro Commodore samostatný procesor 6502 měly. Otázka je, jestli by to skutečně stálo za to. Potřeboval by miniaturní, ale samostatnou RAM, která v té době byla pekelně drahá. K tomu ještě video RAM a řešit společný přístup s hlavním procesorem. Předpokládám, že procesor pro video by nastartoval první, zkopíroval si program do své paměti a pak pustil druhý. Samostatná ROM by vše zase prodražila a zkokmplikovala. Možná těch zádrhelů je tam víc.
    Mír je, když se střílí jinde.
    27.7. 23:01 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Forthovské eso
    a řešit společný přístup s hlavním procesorem

    To byl možná největší kámen úrazu. Ono třeba i u Spectra byl měřitelný rozdíl, jestli program běžel v dloních 32 KB paměti nebo v těch 16 KB, jejichž část byla použitá jako videopaměť, takže do ní přistupovala i ULA.

    27.7. 23:37 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Forthovské eso
    jestli program běžel v dloních 32 KB paměti

    Oprava: …v horních 32 KB paměti…

    28.7. 10:53 JS1 | skóre: 2 | blog: intuition_pump
    Rozbalit Rozbalit vše Re: Forthovské eso
    Nemyslim si, ze to co popisujes jsou pro Forth neprekonatelne problemy. Zajimave je, ze Forth nebyl tak popularni, ale HP kalkulacky s RPN nebo treba Karel ano. Podle me je to jen otazka, jak to ucit. Zacatecnik ma proste tendenci psat spagetovy kod.

    Nebylo by tezke napsat pro Forth "typechecker" (ve stylu Forthu), prace s textem je jen otazka knihovny.
    28.7. 13:29 Radovan
    Rozbalit Rozbalit vše Re: Forthovské eso
    27.7. 20:15 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Forthovské eso
    Zda se mi, ze je to klasicky priklad Worse is Better.
    Ja bych nebyl tak kriticky. Kazdy jazyk je potreba vnimat v konkretnim kontextu. BASIC vnimany bez kontextu je priserny jazyk, v kontextu prvniho jazyka pro primitivni pocitac a uplne laiky, to neni zase tak spatne. Jak jsme se bavili v te predchozi diskuzi, ta primocarost byla asi zasadni pro jeho rozmach. Forth je sice kvalitnejsi jazyk (vnimano bez kontextu), ale jako uvodni jazyk pusobi trochu desive a na programatora klade vyrazne vetsi naroky.

    Osobne jsem ty hezke stranky Forthu byl schopen ocenit az po 20+ letech prace s pocitaci. ;-]
    Ale kdyz si jen hraji, tak toho nakonec dosahnu vic. Mozna to plati i pro autory a zaky programovacich jazyku
    To bezesporu.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    27.7. 23:08 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Forthovské eso
    Osobne jsem ty hezke stranky Forthu byl schopen ocenit az po 20+ letech prace s pocitaci. ;-]

    Já to mám spíš obráceně. Byly doby (vlastně už to bude tak 30 let), kdy mi různé exotické jazyky jako Forth, Prolog nebo Lisp připadaly cool. Dnes už se na ně dívám spíš skepticky.

    Grunt avatar 28.7. 08:06 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Forthovské eso
    jedná se o svým způsobem kompilovaný jazyk, takže je mnohem rychlejší.
    Jakože zadám řádek, fláknu do RETURNu a ono to zkompiluje řádek do strojového kódu a uloží do paměti?
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    28.7. 08:56 Pavel Křivánek | skóre: 26 | blog: Kvičet nezávaznou konverzaci
    Rozbalit Rozbalit vše Re: Forthovské eso
    Forth je na pomezí interpretovaného a kompilovaného jazyka. Nemá interpret jako jeden velký swith ve smyčce, ale Forthovský program je vlastně chytře vymyšlená soustava nepřímých skoků mezi rutinami ve strojovém kódu.

    Když se použije třeba slovo +, tak se do programu vloží adresa místa, které odkazuje na rutinu ve strojovém kódu operující se zásobníkem. Pokud voláte vlastní slovo, tak se do programu vloží adresa, která odkáže na rutinu, která začne interpretovat adresy (tedy nepřímo skákat na jimi odkazované adresy) uložené v tom slově.

    Během kompilace řádku se jednoduše ve spojitém seznamu slov podle jména najde příslušná adresa a vloží se do programu. Ty adresy jsou pak zadrátované a pro běh programu není už třeba jména slov znát.
    Mír je, když se střílí jinde.
    Grunt avatar 28.7. 09:29 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Forthovské eso
    Jediné slovo: Wow!
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    Grunt avatar 28.7. 08:24 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Forthovské eso
    Jo a ještě bych se zeptal na cenu. K čemu by se dala přirovnat tehdejší hranice sta liber dnes? Ono totiž později klesla i ta cena spektra pod tuto hranici (musela pokud to chtěl Sinclair prodávat) přitom mi to nepřijde nějak extrémně moc. I pro běžnou domácnost v tehdejší době.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    28.7. 09:16 Pavel Křivánek | skóre: 26 | blog: Kvičet nezávaznou konverzaci
    Rozbalit Rozbalit vše Re: Forthovské eso
    Statisticky to přibližně pětina tehdejší hrubé měsíční průměrné mzdy bílého zaměstnance, což samo o sobě moc vypovídající údaj není, protože ho je nutné vidět v kontextu ostatních cen. Myslím, že pro tehdejšího Brita by se to dalo přirovnat asi hodnotě asi 10 až 12 tisíc korun pro Čecha dnes.
    Mír je, když se střílí jinde.
    Grunt avatar 28.7. 09:28 Grunt | skóre: 23 | blog: Expresivní zabručení | Lanžhot
    Rozbalit Rozbalit vše Re: Forthovské eso
    Já si zas našel tohle a ač průměr, nepřijde mi to tak moc. Jen dodám že v časopise PPK v roce 1998 (myslím) bylo něco jako nejlevnější počítač (nějaké Pentium v toweru) a bylo to skoro dvacet litrů, což opravdu nebylo málo.
    Na co 64-bitů když to jde i s jedním? | 80.78.148.5 | Hack (for) free or Die Hard!
    28.7. 20:03 marbu | skóre: 29 | blog: hromada | Brno
    Rozbalit Rozbalit vše Re: Forthovské eso
    Díky za zápisek. Kdysi jsem na root.cz četl o Forthu seriál od Pavla Tišnovského. Forth (imho) patří do kategorie technologií, o kterých je fascinující číst něco o historii nebo se s nimi naučit pracovat na úrovni jednochubých příkladů (např. napsat funci pro faktoriál). Ale seriózně pracovat s Forthem bych dnes asi nechtěl :)
    I think warning here is a bug. The biggest cloud service provider. There is no point in being so cool in a cold world.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.