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í
×
    dnes 03:33 | Nová verze

    Open-source hra Shattered Pixel Dungeon (Wikipedie) byla vydána ve verzi 4.0.0. Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | IT novinky Ladislav Hagara | Komentářů: 2
    včera 17:44 | IT novinky

    Společnost System76 představila pracovní stanici Thelio Mira AI s předinstalovaným Pop!_OS s prostředím COSMIC nebo Ubuntu. Nakonfigurovat lze až s 16jádrovým CPU AMD Ryzen 9 9950X, 192 GB DDR5 RAM, dvěma GPU NVIDIA RTX Pro 6000 a 192 GB GPU pamětí.

    Ladislav Hagara | Komentářů: 3
    včera 17:00 | Komunita

    DigitalOcean je sponzorem nadace Omacom Foundation stojící za linuxovou distribucí Omarchy. Přislíbená částka je 3 miliony dolarů, tj. 1 milion dolarů ročně po dobu tří let.

    Ladislav Hagara | Komentářů: 2
    8.9. 21:11 | Zajímavý software

    Na stránkách PostgreSQL bylo představeno LibreDB Studio. Jedná se o open-source self-hostované SQL IDE pro (nejenom) PostgreSQL v prohlížeči. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 3
    8.9. 16:00 | Nová verze

    Byla vydána nová verze 12.0 media serveru Jellyfin (Wikipedie). Přehled novinek v poznámkách k vydání. Pro vyzkoušení je k dispozici Demo Server. Jellyfin je fork media serveru Emby, původně Media Browser.

    Ladislav Hagara | Komentářů: 0
    8.9. 04:44 | Bezpečnostní upozornění

    V MikroTik RouterOS bylo nalezeno šest zranitelností společně pojmenovaných MikroTrick umožňujících útočníkovi, pokud má přístup k SSH, získat plnou kontrolu nad zařízením bez nutnosti autentizace. Ve verzích RouterOS 7.25beta3, 7.24.2, 7.23.4 a 6.49.21 je již opraveno.

    Ladislav Hagara | Komentářů: 8
    8.9. 04:00 | Nová verze

    Byla vydána verze 9.5 open source unixového operačního systému NetBSD (Wikipedie). Přehled novinek v poznámkách k vydání. Jedná se poslední vydání řady NetBSD 9. Doporučen je přechod na NetBSD 11 nebo NetBSD 10.

    Ladislav Hagara | Komentářů: 0
    7.9. 21:44 | IT novinky

    Akční adventura State of Mind je na portále GOG.com zdarma, akce trvá do 10. září.

    ʚĭɞ 🍉 | Komentářů: 2
    7.9. 13:22 | IT novinky

    Na Kickstarteru běží kampaň na podporu malého robotický psa Petoi Quaddle. Postaven je na ESP32-S3. V několika variantách. S řadou senzorů. Programovat lze pomocí Pythonu, C++ nebo i vizuálních bloků. Zkoušet a trénovat lze v simulátoru.

    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (4%)
     (21%)
     (29%)
     (7%)
     (6%)
     (2%)
     (14%)
     (21%)
    Celkem 2631 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník


    Vložit další komentář
    15.3.2007 10:35 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 3. Vyhodnocovani
    Hezký, ale bez těch kontinuací to prostě není ono.

    Asi bych neprovokoval kdybych před měsícem nečetl zhruba totéž (a možná lépe) v PAIP :)
    15.3.2007 11:03 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: Scheme snadno a rychle - 3. Vyhodnocovani
    diky, ale myslim, ze nez bych presel ke kontinuacim, tak by bylo lepsi vysvetlit jeste implementaci alespon lambda vyrazu ;-]

    nicmene ta knizka vypada fakt dobre a uderne (tj. nechtel bych s ni byt uderen) a nepochybuju, ze tam to bude vysvetlene lip... prece jen je to knizka, kterou autor pripravoval delsi dobu a to co tady prezentuju je vybor z mojich poznamek k diplomce.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    15.3.2007 12:24 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 3. Vyhodnocovani
    Prostředí jsou hierarchicky uspořádány - pokud použiju pro lexikální proměnné něco jako alist a povolím opakování klíče, tak mi stačí jedno takové prostředí, ne? Případný overhead vyhledávání lexikální proměnné podle symbolu se při kompilaci stejně ztratí.

    "pokud ani tam neni, je bud vyhodnocen na svou prirozenou vazbu (napriklad cislo se vyhodnoti na cislo)" - to jako že ve Scheme můžu převázat i čísla? Myslil jsem, že se vyhledávají jen symboly...

    Jinak ta kniha se mi docela líbila, je psaná v lehce archaickém CL, ale ve dvou kapitolách se právě implementuje Scheme (jednou jako interpreter, podruhé jako kompilátor). Ta implementace v CL je asi snazší než v C, aspoň parsování moc místa věnováno nebylo :)
    15.3.2007 14:31 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: Scheme snadno a rychle - 3. Vyhodnocovani
    s tim alistem (pokud tim myslite "asociativni seznam") nevim, nevim... v pripade dynamickeho rozsahu platnosti promenych by to asi slo pouzit, ale v pripade lexikalniho by to asi zlobilo zejmena s uzavery, protoze kazdy lambda vyraz musi mit odkaz na prostredi sveho vzniku.

    u tech cisel jsem to formuloval trochu nestastne, aby to bylo koser, melo by tam byt "symbol cisla se vyhodnoti na prislusne cislo", jinak pokud se zarazite nad obratem (define 0 1) - nektere interpretry to umi (je v tom proste ta elegance, ze nic neni absolutni), ale je fakt, ze vetsina interpretru tento konstrukt zavrhuje, protoze to ma sve konsekvence na vykon aplikace... nicmene podivam se jeste do r5rs jak to ma byt doopravdy.

    s tou knihou jste me docela navnadil... zacinam zvazovat, ze bych po 5 letech zjistil, kde je knihovna...
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    15.3.2007 15:26 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 3. Vyhodnocovani
    Proč by to nefungovalo lexikálně? Když interpretuji třeba let, tak pro výrazy uvnitř vazby přidám do prostředí na začátek nové proměnné - a ty jsou pak soukromé pro daný lexikální rozsah, vnější prostředí je nevidí (vzhledem k tomu že má odkaz na původní seznam, tedy pouze nějaký konec nového).
    15.3.2007 15:59 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: Scheme snadno a rychle - 3. Vyhodnocovani
    a co v pripade?
    (define (make-closure x)
            (lambda () (set! x (+ x 1)) x))
    (define closure1 (make-closure 10))
    (define closure2 (make-closure 20))
    
    nedokazu si to nejak moc dobre pomoci toho listu predstavit. minimalne by to mel byt strom...
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    15.3.2007 16:04 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: Scheme snadno a rychle - 3. Vyhodnocovani
    kdyz nad tim tak premyslim, tak by to v tomto pripade mel byt dokonce obecny orientovany graf
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    15.3.2007 16:22 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 3. Vyhodnocovani
    Pořád mi přijde, že v tom nevidím problém:
    (eval '(make-closure 10) env) =>
      (eval '(lambda () (set! x (+ x 1)) x)) (cons '(x . 10) env))
    (eval '(make-closure 20) env) =>
      (eval '(lambda () (set! x (+ x 1)) x)) (cons '(x . 20) env))
    
    Každá closure má svoji vlastní verzi x.

    Tedy pro interpreter, pro kompilátor by bylo potřeba mít v alistu ne hodnotu, ale nějaký odkaz na skutečné místo kde ta data budou.

    Co přehlížím?
    15.3.2007 16:34 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: Scheme snadno a rychle - 3. Vyhodnocovani
    spis by me zajimalo, jak ten seznam bude vypadat po zavolani
    (define closure1 (make-closure 10))
    (define closure2 (make-closure 20))
    
    diky lexikalnimu rozsahu musi byt prostredi z (make-closure) zachovane... a nemuzu prijit na to, jak by v tom seznamu byly usporadane, aby fungovalo vyhledavani... nicmene toto by fungovalo moc dobre pri dynamickem rozsahu...
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    15.3.2007 17:07 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 3. Vyhodnocovani
    Po zavolání obou define bude prostředí stejné jako před ním (pokud tedy předpokládám, že obě define vážou do globálních proměnných, které jsou mimo).

    Při vyhodnocování lambdy se musí samozřejmě uložit do výsledného uzávěru i stav prostředí v místě, kde se lambda nachází - tedy nakonec bude prostředí env stejné jako předtím, avšak v každém uzávěru bude odkaz na (cons '(x 10/20) env).

    No, vlastně je výsledné prostředí, nazíráno globálně, opravdu strom. :) Ale v každém určitém místě je z něj vidět jen seznam.
    15.3.2007 20:19 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: Scheme snadno a rychle - 3. Vyhodnocovani
    vyborne, takze vlastne oba dva myslime totez, ale trosku jinak to popisujeme a implementujeme. hierarchicke usporadani prostredi je opravdu ten seznam symbolu o kterem tady delsi dobu diskutujeme ;-] (je to spravne, dukaz z obou stran overen ;])

    presto bych se dal radsi drzel terminu prostredi a jako takovy jej samostatne implementoval... kod bude citelnejsi... a ted nevim do jake miry se bude snaz implementovat samotne volani, uzavery a podobne veci... tak me napada jedna vec... pokud budou vsechna prostredi jeden velky seznam, nedovoli to ukladat symboly do ruznych datovych struktur... a co jsem si tak hral s optimalizacemi, tak pokud pocatecni prostredi (cca 30 polozek) je implementovane jako spojovy seznam misto hash tabulky ma to docela vyznamne dusledky na vykon.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    16.3.2007 10:22 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 3. Vyhodnocovani
    Dobře :) Rozdíl jsem viděl v tom, že při evaluaci prohledávám pouze dvě prostředí - jedno lexikální (které je při diskutované implementaci z pohledu evaluátoru vždy seznam), a jedno počáteční (hash nebo cokoliv jiného), a nějakou jinou hierarchičností se v evaluátoru nezabývám.

    Jinak počáteční prostředí jako seznam opravdu není vhodné - těch položek tam bude skoro v každém rozumném případě mnohem více než třicet (funkce...). Ale pro lexikální proměnné to obyčejně není tak zlé (a pokud je, tak je možná stejně načase kompilovat).

    Snad se konečně přibližuju terminologií - českou jakožto správný amatér neznám, a i tu anglickou spíš od CL než od scheme.
    16.3.2007 11:00 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: Scheme snadno a rychle - 3. Vyhodnocovani
    dival jsem se jeste na ty promenne a r5rs moc jasne o oddeleni semantiky a syntaxe cisel nemluvi (konkretne vubec). pro zajimavost jsem si zkusil presunout interpretaci cisel uz do parseru a zlepseni bylo jenom 10%. tech 10% stoji za to ozelet svet, kde se snadno kazda nula muze stat jednickou ;-]
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    16.3.2007 11:10 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 3. Vyhodnocovani
    A #f můžu taky převázat?

    Jinak u těch čísel bude asi rozdíl ve výkonnosti tím větší, čím je efektivnější implementace - pokud budu mít kompilátor, který pozná číslo a rovnou ho jako číslo uloží, tak by to měl být větší rozdíl než u interpreteru. Pokud bude umět kompilátor constant folding, tak to zvedne rozdíl. Pokud kompilátor bude umět nahradit (= 0 ...) specifickou instrukcí. Pokud bude umět provádět loop unrolling (dobře, ve scheme nějakou rekurzivní variantu). Pokud bude provádět partial evaluation. Atp. U prostého evaluátoru se ten rozdíl ztratí, ale u "průmyslového" překladače bych to viděl jako zásadní. (I když to je možná rozdíl v důrazu mezi Scheme a CL - elegance a obecnost vs. efektivita. Portable program v CL třeba nesmí předefinovat ani standardní fuknce, a implementace mají právo na to spoléhat)
    16.3.2007 11:44 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: Scheme snadno a rychle - 3. Vyhodnocovani
    proc ne? zijeme ve svobedne zemi! ;-] a ten rozdil mezi interpretrem scheme a kompilatorem cl je fakt znacny. kompilator cl jde pouzit i na skutecne nasazeni (kdyz clovek zkousne, ze vypada jak exot) interpretr schemu je zase genialni na hrani si s novymi prvky jazyka nebo vyhodnocovani, protoze se fakt vleze na par stovek radku.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    16.3.2007 12:02 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: Scheme snadno a rychle - 3. Vyhodnocovani
    jeste jsem si uvedomil, ze moznost prevazani #f a #t vlastne odpovida i pojeti logiky, kdy se jedna o pouhe symboly (syntakticke struktury), ktere je nutne ohodnotit.... v praxi to zadne pouziti moc nema... ale nekdo mozna je schopen ocenit, ze se jazyk podoba vic teorii nez realnemu poznani.... ;-]
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    15.3.2007 12:35 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 3. Vyhodnocovani
    Jinak pro úplnost asi klasická kniha ohledně implementace Scheme je Lisp in Small Pieces , ale tu jsem bohužel nečetl (i když jsem ji tu v Londýně v knihkupectví ještě viděl)

    Založit nové vláknoNahoru

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

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