Yacc: Porovnání verzí
m typo |
m typo |
||
Řádek 1: | Řádek 1: | ||
'''yacc''' je [[parser]] generátor vyvinutý Stephenem C. Johnsonem |
'''yacc''' je [[parser]] generátor vyvinutý Stephenem C. Johnsonem z [[AT&T]] pro [[Unix]]ové [[operační systém]]y. Tato zkratka znamená {{Cizojazyčně|en|"Yet Another Compiler Compiler"}} v překladu "Ještě další parser generátor". Yacc generuje [[parser]] (část [[překladač]]e, která má za úkol vygenerovat [[Lexikální analýza|lexikální]] a [[Syntaktická analýza|syntaktický analyzátor]] jazyka) z gramatiky, která obsahuje popis lexikálních symbolů pomocí regulárních výrazů (podobně jako [[Backus-Naurova forma|BNF]]). Yacc generuje [[Strojový kód|kód]] pro [[parser]] v [[C (programovací jazyk)|programovacím jazyce C]]. |
||
Yacc bylo dostupné jako implicitní parser generátor na většině unixových systémů. Později však bylo nahrazeno novějšími a kompatibilnějšími programy jako je [[Berkeley Yacc]], [[GNU bison]], [[MKS Inc.|MKS]] yacc a Abraxas pcyacc. Aktualizovaná verze původní verze od AT&T je nyní obsažena v projektu [[OpenSolaris]] společnosti [[Sun]]. Každá verze nabízí oproti původnímu yacc drobná vylepšení a doplňkové vlastnosti, ale základní koncept zůstal stejný. Yacc bylo také přepsáno pro další programovací jazyky jako je [[Ratfor]], [[Extended Fortran Language|EFL]], [[ML (programovací jazyk)|ML]], [[Ada (programovací jazyk)|Ada]], [[Java (programovací jazyk)|Java]], a [[Limbo (programovací jazyk)|Limbo]]. |
Yacc bylo dostupné jako implicitní parser generátor na většině unixových systémů. Později však bylo nahrazeno novějšími a kompatibilnějšími programy jako je [[Berkeley Yacc]], [[GNU bison]], [[MKS Inc.|MKS]] yacc a Abraxas pcyacc. Aktualizovaná verze původní verze od AT&T je nyní obsažena v projektu [[OpenSolaris]] společnosti [[Sun]]. Každá verze nabízí oproti původnímu yacc drobná vylepšení a doplňkové vlastnosti, ale základní koncept zůstal stejný. Yacc bylo také přepsáno pro další programovací jazyky jako je [[Ratfor]], [[Extended Fortran Language|EFL]], [[ML (programovací jazyk)|ML]], [[Ada (programovací jazyk)|Ada]], [[Java (programovací jazyk)|Java]], a [[Limbo (programovací jazyk)|Limbo]]. |
Verze z 16. 5. 2008, 22:11
yacc je parser generátor vyvinutý Stephenem C. Johnsonem z AT&T pro Unixové operační systémy. Tato zkratka znamená "Yet Another Compiler Compiler" v překladu "Ještě další parser generátor". Yacc generuje parser (část překladače, která má za úkol vygenerovat lexikální a syntaktický analyzátor jazyka) z gramatiky, která obsahuje popis lexikálních symbolů pomocí regulárních výrazů (podobně jako BNF). Yacc generuje kód pro parser v programovacím jazyce C.
Yacc bylo dostupné jako implicitní parser generátor na většině unixových systémů. Později však bylo nahrazeno novějšími a kompatibilnějšími programy jako je Berkeley Yacc, GNU bison, MKS yacc a Abraxas pcyacc. Aktualizovaná verze původní verze od AT&T je nyní obsažena v projektu OpenSolaris společnosti Sun. Každá verze nabízí oproti původnímu yacc drobná vylepšení a doplňkové vlastnosti, ale základní koncept zůstal stejný. Yacc bylo také přepsáno pro další programovací jazyky jako je Ratfor, EFL, ML, Ada, Java, a Limbo.
Parser vygenerovaný yacc vyžaduje ještě Lexikální analyzátor, jehož generátory jsou například Lex nebo Flex. Standard IEEE POSIX P1003.2 definuje funkci a požadavky jak na Lex tak i Yacc.
Některá verze AT&T yacc se postupem času staly open source aplikacemi. Otevřený zdrojový kód je dostupný například k různým implementacím distribucí Plan 9 a OpenSolaris.
Související články
- Lexikální analýza - Lexikální analyzátor rozdělí vstupní posloupnost znaků na lexémy, ty jsou poskytnuty ke zpracování syntaktickému analyzátoru
- Syntaktická analýza - proces analýzy posloupnosti formálních prvků s cílem určit jejich gramatickou strukturu vůči předem dané formální gramatice
- Flex - programovací nástroj k řešení úlohy lexikální analýzy, který generuje text v jazyce C.
- BNF - metasyntaxe používaná k vyjádření bezkontextové gramatiky, která se používá pro popis formálních jazyků
- GCC - sada kompilátorů vytvořených v rámci projektu GNU
Externí odkazy
- Tutorial pro lex/yacc/compiler napsaný Arnabem Chakrobarty. (v Angličtině)
V tomto článku byl použit překlad textu z článku yacc na anglické Wikipedii (číslo revize nebylo určeno).