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 14:44 | IT novinky

    Mozilla představuje Firefox Enterprise určený jako podnikový prohlížeč pro organizace s přísnými požadavky na bezpečnost, správu a dodržování předpisů. S profesionální podporou. Dostupný je zatím ve Francii, Německu, Rakousku a Švýcarsku.

    Ladislav Hagara | Komentářů: 1
    dnes 14:33 | Bezpečnostní upozornění

    Kybernetický útok zasáhl nejméně 150 supermarketů Intermarché a několik prodejen řetězců Leclerc a Coopérative U. Chladicí jednotky napadených obchodních domů byly nastaveny na nepřetržité odmrazování a teplota v nich mnohdy vystouala až nad 50°C. Škody napáchané na chlazeném a mraženém zboží budou patrně dosahovat miliónů eur.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 1
    dnes 04:00 | Komunita

    Stát Kalifornie zažaloval výrobce 3D tiskových filamentů Polymaker. Vrchní soud San Diego County tvrdí, že firma propagací svých výrobků mezi příznivci 3D tištěných zbraní podporovala výrobu takzvaných 'ghost guns' (DIY zbraní) a že její PLA filament pro 3D tiskárny lze za těchto okolností považovat za součást určenou k výrobě střelné zbraně. Žaloba požaduje mimo jiné finanční sankce a soudní zákaz činnosti, Polymaker se hájí tím, že filament je běžný a sám o sobě legální produkt. Celý text žaloby (PDF na Google Drive).

    ❗Červivý Hřib krade❗ | Komentářů: 14
    dnes 03:33 | Nová verze

    V červnu byla představena aplikace Myna pro převod řeči na text v prostředí desktopu Ubuntu. Včera byla Myna zpřístupněna širší komunitě Ubuntu formou technologické ukázky dostupné v Ubuntu 24.04 LTS, Ubuntu 26.04 LTS a Ubuntu 26.10 s GNOME na Waylandu.

    Ladislav Hagara | Komentářů: 0
    včera 21:11 | Komunita

    Ubuntu 27.04 bude Tenacious T-Rex.

    Ladislav Hagara | Komentářů: 0
    včera 20:44 | Nová verze

    Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.

    Ladislav Hagara | Komentářů: 0
    včera 17:22 | Humor

    Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 7
    včera 12:44 | Upozornění

    Část údajů uživatelů internetového supermarketu Rohlík byla odcizena. Kyberútočníci napadli nástroj zákaznické podpory Rohlíku, odcizili tak jména, e-mailové adresy, v některých případech také telefonní čísla nebo přepisy komunikace mezi klienty a zákaznickou podporou. Rohlík incident nahlásil příslušným orgánům a přijal příslušné opatření, aby zamezil podobným případům v budoucnosti, uvedla firma.

    Ladislav Hagara | Komentářů: 16
    včera 11:11 | IT novinky

    Aplikace eDoklady fungovala v obou volebních dnech stabilně a prakticky bez front. Digitální a informační agentura (DIA) odhaduje, že se digitálním dokladem prokázalo více než 100.000 voličů. Aplikaci si před volbami či během nich aktualizovalo 247.517 uživatelů. Nových registrací bylo 19.431 a do aplikace se přihlásilo 357.879 lidí. Největší nápor přišel bezprostředně po otevření volebních místností mezi 14. a 16. hodinou, kdy si

    … více »
    Ladislav Hagara | Komentářů: 11
    včera 00:55 | Pozvánky

    Začal semestr, začal i podzim a kromě hub rostou jako po dešti i veřejné dílny v Praze. Nedávno strahováci referovali o hackerspacu Bordel, nyní se otevřela dílna Dejvice Lab jen kousek od ČVUT. Na blížící Virtuální Bastlírně tak uslyšíte nejen report z návštěvy dílny HWLab, ale i řadu novinek, událostí a úsměvných momentů, které se za poslední měsíc ve světě techniky, ale i vědy udály. Připojte se tedy již v úterý 13.10. od 20:00 a zapojte se do

    … více »
    bkralik | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2840 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    Rozcestník

    Scheme snadno a rychle - 2. Gramatiky a tak...

    11.3.2007 14:35 | Přečteno: 1872× | Programování | poslední úprava: 12.3.2007 10:41

    v beznem clanku o programovacich jazycich je minimalne jedna kapitola venovana gramatikam a podobnym vecem. abych pravdu rekl, neni to tema ktere by me nejak extra rajcovalo a teoreticky by se bez nej i interpretr mohl obejit. ale budiz. muj posledni prispevek budiz ukazkou toho, jak nektere nastroje mam rad. premyslel, jsem jestli parser udelat v ruce nebo generovat. ale jelikoz mam v nadpisu "snadno a rychle" a ne "slozitejc a poradne", tak jsem se rozhodl nakonec pouzit generatory.

    gramatika scheme neni zavratne slozita ajak jsem rikal, bez problemu se da udelat v ruce, teda bez pouziti generatoru jako flex a bison, ale radsi jej pouzijeme. r5rs mluvi dokonce o tom, ze diky kvazikvotovani, se nejedna o bezkontextovou gramatiku a tudiz bison by na to mel byt kratky, ale kdyz se kvazikvotovani presune do standardni knihovny, uz tento problem odpada.

    2.1. Flex

    flex je generator lexikalnich analyzatoru, coz jsou funkce, ktere dokazi vzit jako vstup nejaky retezec a ten rozdelit na kousky (tokeny) a vracet jejich hodnoty. neni potreba nic svetoborneho, v zakladni verzi by stacily tokeny pro zavorky, tecku a symboly. v praxi se pak pouzivaji jeste zkratky pro kvotovani, tj. "'", "`", ",", ",@", ktere se prepisuji na (quote x), (quasiquote x), (unquote x) a (unquote-splicing x)

    definice muze vypadat nejak takhle

    :
    scheme.l:
    
    %{
    #include <string.h>
    #include "scheme.tab.h"
    %}
    
    INITIAL_CHAR    [[:alnum:]]|\+|\*|\-|\\|=|#|\?|\!|<|>|_|\/|~|:|%
    INNER_CHAR      [[:alnum:]]|\+|\*|\-|\\|=|#|\?|\!|<|>|_|\/|~|:|%|'|,|@|`|\.
    LEFT_PAREN      "("
    RIGHT_PAREN     ")"
    WHITE_SPACE     [[:space:]]
    QUOTE           "'"
    UNQUOTE         ","
    UNQUOTE_SPLICING "@"
    QUASIQUOTE      "`"
    DOT             "."
    SEMICOL         ";"
    
    %%
    
    {INITIAL_CHAR}{INNER_CHAR}* {
            yylval.symbol = GC_MALLOC(strlen(yytext) + 1);
            strcpy(yylval.symbol, yytext);
            return T_SYMBOL;
    }
    
    {LEFT_PAREN}    { return T_LEFT_PAREN; }
    {RIGHT_PAREN}   { return T_RIGHT_PAREN; }
    {SEMICOL}.*$    /* ignores comments */
    {WHITE_SPACE}+  /* ignores white space*/
    {QUOTE}         { return T_QUOTE; }
    {UNQUOTE}       { return T_UNQUOTE; }
    {QUASIQUOTE}    { return T_QUASIQUOTE; }
    {UNQUOTE}{UNQUOTE_SPLICING}     { return T_UNQUOTE_SPLICING; }
    {DOT}           { return T_DOT; }
    %%
    

    za pozornost maximalne stoji, ze cisla tokenu jsou brany z vystupu bisonu a pak dalsi definice, ktere se staraji o ignorovani komentaru. fakt bych nerad sel s touto tematikou nejak do hloubky, protoze o techto vecech byl uz napsan nejeden kilobyte textu.

    2.2. Bison

    pravidla pro sestaveni samotneho compileru jsou zase vcelku trivialni. a zase se nebudu zatezovat nejakou slozitou teorii a prenecham to povolanejsim.
    scheme.y:
    
    %{
    #include <stdlib.h>
    #include "types.h"
    #include "scheme.tab.h"
    
    #define YYERROR_VERBOSE
    
    scm_value * result = NULL;
    
    %}
    
    %union {
            char * symbol;
            scm_value * parsed;
    }
    
    %token <symbol> T_SYMBOL
    %token T_LEFT_PAREN
    %token T_RIGHT_PAREN
    %token T_QUOTE
    %token T_UNQUOTE
    %token T_UNQUOTE_SPLICING
    %token T_QUASIQUOTE
    %token T_DOT
    
    %type <parsed> expressions symbol symbols list quote quasiquote unquote unquote_splicing
    
    %start expressions
    
    %%
    
    expressions:    symbols { result = $1; }
    ;
    
    symbol: T_SYMBOL { $$ = scm_value_new_symbol($1); }
    | list
    | quote
    | quasiquote
    | unquote
    | unquote_splicing
    
    ;
    
    symbols: symbol { $$ = scm_value_new_pair($1, SCM_CONST_NIL); }
    | symbol T_DOT symbol { $$ = scm_value_new_pair($1, $3); }
    | symbol symbols { $$ = scm_value_new_pair($1, $2); }
    
    ;
    
    list:   T_LEFT_PAREN T_RIGHT_PAREN { $$ = SCM_CONST_NIL; }
    | T_LEFT_PAREN symbols T_RIGHT_PAREN { $$ = $2; }
    ;
    
    
    /* Quotation symbols */
    quote:  T_QUOTE symbol  { $$ = scm_value_new_pair(
                            scm_value_new_symbol("quote"),
                            scm_value_new_pair($2, SCM_CONST_NIL)); }
    ;
    
    quasiquote: T_QUASIQUOTE symbol { $$ = scm_value_new_pair(
                                scm_value_new_symbol("quasiquote"),
                                scm_value_new_pair($2, SCM_CONST_NIL)); }
    ;
    
    unquote: T_UNQUOTE symbol { $$ = scm_value_new_pair(
                             scm_value_new_symbol("unquote"),
                             scm_value_new_pair($2, SCM_CONST_NIL)); }
    ;
    %%
    

    vsimnete si, ze si zatim vystacime s pouzitim, jenom datovych typu -- PAIR, SYMBOL, NIL. zadna cisla, zadne booleovske hodnoty. to vsechno je az soucasti semanticke analyzy, ktere se budu venovat priste.

    uznavam, ze tato kapitola je hodne zalostna, ale o gramatikach a takovych tech vecech bylo napsano dost, obzvlast od fundovanejsich osob. dopriste se doufam polepsim.

           

    Hodnocení: 100 %

            špatné • dobré        

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

    Komentáře

    Vložit další komentář

    12.3.2007 10:20 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 2. Gramatiky a tak...
    OT: odkaz na bison je špatně ;-)
    When your hammer is C++, everything begins to look like a thumb.
    12.3.2007 10:41 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 - 2. Gramatiky a tak...
    diky, opraveno
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    12.3.2007 20:49 User682 | skóre: 38 | blog: aqarium | Praha
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 2. Gramatiky a tak...
    Kdyz uz jste nacli toto tema, tak by me zajimala jedna vec mimo.

    Nenasel nekdo nastroj, co umi vygenerovat "call tree" v jave do graphviz formatu ? Pripadne, aby ta vec umela generovat nejake vetveni podminek s volanim method ve stromu taktez v graphvizu.

    At to nepisu zbytecne. AST Stromy jsem jiz nejak poskladal, ale nejvice boli, jak z toho dostat nejakou rozumnou strukturu a nejak rozumne orezat zobrazovani prvku.

    thx bye gf
    10.6.2018 09:36 Thanos
    Rozbalit Rozbalit vše online
    Here the error code for the all use full to save the internet connection setting in windows so get this code hurry here 0x80072ee7 and save the all update online to thanks for the visit here.
    24.10.2019 10:53 Zaida Vargas
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 2. Gramatiky a tak...

    Thaksgiving is coming visit https://onsumo.com/thanksgiving-quotes/ for thanksgiving quotes

    21.1.2020 20:34 Wessel Jacobs
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 2. Gramatiky a tak...

    8 Ball Pool Cheats will let you buy all items for free. Below you will see all the cheats needed to hack 8 Ball Pool These Cheats for 8 Ball Pool work on all iOS and Android devices. You will also not need a jailbreak or rooted phone. Using our website you no longer need to download a hack tool, so it is safer. If you don't know how to use the hack for 8 Ball Pool hack tool then click here.

    8.4.2020 14:28 Sara Parker
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 2. Gramatiky a tak...
    Somehow, the programming language is the typical thing that may some need of experts. As a students we are not aware about the circumstances and challenges in programming and these can be reduce with programming coursework help online free that can be a suitable solution to the problems.
    13.6.2023 12:04 rogger202
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 2. Gramatiky a tak...
    Legal transcription services offer accurate and efficient conversion of audio or video recordings into written legal documents. Expert transcriptionists ensure precise documentation of legal proceedings, interviews, depositions, and more, maintaining confidentiality and adherence to legal terminology and standards."
    16.7.2024 10:44 Lauren
    Rozbalit Rozbalit vše Re: Scheme snadno a rychle - 2. Gramatiky a tak...
    Great insights into Scheme! For anyone looking to enhance their CV or resume, professional services like CV Folks can really make a difference. Thanks for sharing your expertise on this fascinating topic!

    Založit nové vlákno • Nahoru

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