Portál AbcLinuxu, 3. května 2025 20:32

GNU Bison 3.7

GNU Bison, generátor syntaktických analyzátorů, byl vydán ve verzi 3.7, která jako stěžejní novinku přináší poskytování příkladů konfliktů v nejednoznačných gramatikách; další změny jsou vyjmenovány níže v oznámení vydání.

24.7.2020 01:11 | Fluttershy, yay! | Nová verze


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

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

24.7.2020 10:45 Zubr
Rozbalit Rozbalit vše Re: GNU Bison 3.7
Odpovědět | Sbalit | Link | Blokovat | Admin
Programuji 25+ let a presto nechapu co ten Bison je a nac je dobry. Az se nekdo uraci mi to vysvetlit tak prosim neco pro nas s IQ pod 130.
xkucf03 avatar 24.7.2020 11:55 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: GNU Bison 3.7

Psal jsi někdy parser nějakého jazyka nebo formátu?

Tyhle generátory to mají usnadňovat. Nicméně parsery lze psát i ručně (což může být někdy i jednodušší).

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
24.7.2020 16:08 Zubr
Rozbalit Rozbalit vše Re: GNU Bison 3.7
No jenze Bison neni parser ale jakysi generator syntaktickeho analyzatoru ? Co to generuje ? Nejaky genericky metajazyk kde stejny algoritmus zapsany jinym jazykem bude ve vysledku stejny (AST) ? Nebo je vysledkem uz nejaky assembler ?
Jendа avatar 24.7.2020 17:47 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: GNU Bison 3.7
Já si to už moc nepamatuju, ale generuje to céčko, kde si můžeš přidávat snippety kódu při různých událostech parsování (příklad: když navštěvuješ nebo opouštíš blok na obrázcích tady). Třeba jako že když to potká uzavírací závorku, tak to udělá printf("závorka!");. Nebo třeba pokud je to uvnitř výrazu a potká to foo + bar;, tak to zavolá tvoji funkci a jako parametr jí dá foo a bar. A ten jazyk připomíná učebnicový zápis bezkontextové gramatiky.
25.7.2020 13:07 Odin1918 | skóre: 6 | blog: Valhalla
Rozbalit Rozbalit vše Re: GNU Bison 3.7
Presne tak. Bud si to napisi sam, nebo pouziji yacc. Bison se mi nikdy moc nelibil. Stare dobre yacc. Asi bison pouziva kolibac, takze jen dobre, ze jsem to nikdy nepouzival.
Fluttershy, yay! avatar 25.7.2020 16:17 Fluttershy, yay! | skóre: 93 | blog:
Rozbalit Rozbalit vše Re: GNU Bison 3.7
🇵🇸Touch grass🇺🇦 ✊ ani boha, ani pána
25.7.2020 23:23 Odin1918 | skóre: 6 | blog: Valhalla
Rozbalit Rozbalit vše Re: GNU Bison 3.7
Dekuji za odkaz, ale ja jsem konzerva a yacc je zelezna kosile. :)
25.7.2020 15:59 BoneFlute | skóre: 3
Rozbalit Rozbalit vše Re: GNU Bison 3.7
S Bison nemám zkušenosti, a proto se ptám. V jakém vztahu je ke combinátorům ? V čem je rozdíl? Je Bison víc lowlevel, nebo je to jiná filozofie, nebo něco ještě jinak? Díky.
24.7.2020 12:28 okbobcz | skóre: 8
Rozbalit Rozbalit vše Re: GNU Bison 3.7
Asi jste nikdy nemusel programovat překladač nebo interpret programovacího jazyka. Bison je generátor kódu (C, C++, Java) parseru formálního jazyka definovaného gramatikou. Většina překladačů, interpretů začíná parsováním, kdy text kódu se transformuje do syntaktického stromu. Parsery mohou být ručně psaný (rekurzivní) nebo generovaný. U jednodušších jazyků není problém napsat parser ručně (Pascal, C). U složitějších jazyků to už problém je (dost pracné je pak takový parser udržovat nebo rozšiřovat).

Údržba, rozšiřování parseru definovaného gramatikou je mnohem jednodušší - zde je například SQL Parser v Postgresu https://github.com/postgres/postgres/blob/master/src/backend/parser/gram.y .

Dřív se používaly vlastní parsery pro načítání vlastních složitějších formátů. To je dnes spíš výjimka - častější je použít obecný formát XML nebo JSON, a k němu si vybrat z nabídky desítek hotových parserů.

Založit nové vláknoNahoru


ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.