Berkeley Yacc - Berkeley Yacc
Původní autoři | Robert Corbett |
---|---|
Vývojáři | Thomas Dickey |
První vydání | 2. září 1989[1] |
Stabilní uvolnění | 20200330 / 30. března 2020 |
Úložiště | |
Napsáno | ANSI C89 |
Operační systém | Unixový |
Typ | Analyzátor generátoru |
Licence | veřejná doména |
webová stránka | neviditelný ostrov |
Berkeley Yacc (byacc) je Unix generátor analyzátoru navržen tak, aby byl kompatibilní s Yacc. To bylo původně napsáno Robertem Corbettem a vydáno v roce 1989.[2] Díky své liberální licenci a protože byla rychlejší než AT&T Yacc, rychle se stala nejpopulárnější verzí Yacc.[3] Má výhody zápisu ANSI C89 a bytí veřejná doména software.
Obsahuje funkce, které nejsou v Yaccu k dispozici, například reentrancy, která je implementována způsobem, který je široce kompatibilní s GNU Bison.[4][5]
Dějiny
V roce 1985 vytvořil Robert Corbett originál Generátor analyzátoru LALR na základě příspěvku DeRemera a Pennella z roku 1982.[6] Corbett to napsal jako součást svého výzkumu směrem k Ph.D. dostal od University of California, Berkeley v červnu 1985.[7][8] Původně se jmenoval Byson a byl nekompatibilní s Yacc ale později byl přejmenován na Bison a stal se základem GNU Bison.
Později v roce 1985 Corbett odvodil další generátor syntaktických analyzátorů LALR kompatibilní s Yacc, původně pojmenovaný Zeus, ale následně přejmenovaný na Zoo.[9] Corbett zveřejnil zdrojový kód pro Zoo v Diskusní skupina Usenet ale zůstalo to většinou bez povšimnutí až později v září 1989, kdy Corbett zveřejnil v diskusní skupině comp.compilers o umístění zdrojového kódu na FTP server.[1] Diskutovalo se o přejmenování a do října 1989 se stal známým jako Berkeley Yacc (byacc).[10]
V roce 1995 vyvinul Chris Dodd společnost BtYacc, a ustoupit derivát Berkeley Yacc na podporu analýzy kontextově citlivé jazyky jako C ++,[11][12] na základě dokumentu Merrilla z roku 1993, který popisuje podobné úpravy jako AT&T Yacc.[13][14] To nabízí ustoupit a sémantická disambiguace pro analýzu nejednoznačná gramatika. Pravidlo analyzované, ale odmítnuté sémantickou informací lze vrátit zpět, aby analyzátor mohl zkusit jiné pravidlo.[15][16] Bylo však také kritizováno za to, že potřebuje bezplatné zkušební akce s vedlejšími účinky a nepružné řešení konfliktů snižujících posun.[17]
V roce 1997 převzal údržbu BtYacc Vadim Maslov na podporu a COBOL analyzátor vyvinutý jeho společností.[18] Do roku 1999, poslední verze 3.0, byla převedena na C ++, již nepodporuje od C.[19]
V roce 2000, Thomas E. Dickey, portován Berkeley Yacc do VMS k usnadnění přenosu cín do VMS. Poté, co se mu nepodařilo najít jiného správce, udržuje Dickey od února 2002 Berkeley Yacc.[20] Významnou aktualizací byl převod z K&R C. na ANSI C89.[20]
V roce 2014 integroval Tom Shields zpětné sledování BtYacc do Berkeley Yacc, což účinně zahrnovalo BtYacc a opět podporovalo C (místo pouze C ++) ve vydáních Dickey od dubna 2014.[21]
Viz také
- GNU Bison - další bezplatná softwarová náhrada za Yacc, která sdílí stejného autora jako Berkeley Yacc.
Reference
- ^ A b Corbett, Robert (2. září 1989). "Generátor analyzátoru PD LALR (1)". Diskusní skupina: kompilátory. Usenet: 1989září[email protected]. Citováno 2017-08-26.
- ^ Doug Brown; John Levine; Tony Mason (říjen 1992), lex a yacc (2. vyd.), O'Reilly Media
- ^ John Levine (srpen 2009), flex & bison, O'Reilly Media
- ^ „Berkeley Yacc“. invisible-island.net. Archivováno od původního dne 2020-10-19. Citováno 2020-11-10.
... podpora reentrantního kódu, který se vyvinul v byacc do bodu, kdy jej lze porovnat a vyladit proti bizonům.
- ^ „Berkeley Yacc Změnit protokol, viz záznam“ 06.06.2010 Andres.Meji"". 2010-06-07. Archivováno od původního dne 2020-11-10. Citováno 2020-11-10.
- ^ DeRemer, Frank; Pennello, Thomas (říjen 1982). „Efektivní výpočet sad LALR (1) Look-Ahead“ (PDF). ACM Trans. Program. Lang. Syst. ACM. 4 (4): 615–649. doi:10.1145/69622.357187. ISSN 0164-0925. Citováno 2017-08-26.
- ^ Corbett, Robert (24. září 1998). „Re: Kdokoli rozšířil MAXTABLE v analyzátorech yacc?“. Diskusní skupina: kompilátory. Usenet: [email protected]. Citováno 2017-08-26.
- ^ Corbett, Robert Paul (červen 1985). Statická sémantika a zotavení po chybě kompilátoru (Ph.D.). University of California, Berkeley. DTIC ADA611756.
- ^ Corbett, Robert (6. září 1989). "Pojmenujte ten generátor analyzátoru PD". Diskusní skupina: kompilátory. Usenet: [email protected]. Citováno 2017-08-26.
- ^ Corbett, Robert (3. října 1989). „Berkeley Yacc (nová verze)“. Diskusní skupina: kompilátory. Usenet: [email protected]. Citováno 2017-08-26.
- ^ Dodd, Chris (7. března 1995). „BTYACC - yacc se zpětným sledováním a zděděnými atributy“. Diskusní skupina: kompilátory. Usenet: [email protected]. Citováno 2020-05-18.
- ^ „README.txt“. BtYacc: BackTracking Yacc. Siberovy systémy. Citováno 2020-05-14.
- ^ „README.BYACC“. Backtracking yacc. GitHub. Citováno 2020-05-14.
- ^ Merrill, Gary H. (1. srpna 1993). "Analýza gramatik jiných než LR (k) pomocí yacc". Softw. Cvič. Exp. 23 (8): 829–850. CiteSeerX 10.1.1.14.1958. doi:10.1002 / spe. 4380230803. ISSN 0038-0644. Citováno 2020-05-14.
- ^ „btyacc (1)“. Debian stretch - Debian Manpages.
- ^ Dodd, Chris (13. února 2019). „ChrisDodd / btyacc“. GitHub.
- ^ Thurston, Adrian D .; Cordy, James R. (2006). „Backtracking LR Algorithm for parsing Ambiguous Context-Dependent Languages“ (PDF). V Erdogmus, Hakan; Stroulia, Eleni; Stewart, Darlene A. (eds.). Sborník příspěvků z konference 2006 v Centru pro pokročilá studia společného výzkumu, 16. – 19. Října 2006, Toronto, Ontario, Kanada. CASCON 2006. s. 39–53. CiteSeerX 10.1.1.518.7094. doi:10.1145/1188966.1188972. Citováno 2020-05-14.
- ^ Maslov, Vadim (8. října 1997). „Je k dispozici verze 1.1 BtYacc (Backtracking Yacc)“. Diskusní skupina: kompilátory. Usenet: [email protected]. Citováno 2020-05-18.
- ^ „BtYacc: BackTracking Yacc Parser Generator“. Siberovy systémy. Citováno 2020-05-18.
- ^ A b „BYACC - BERKELEY YACC“. invisible-island.net. Archivováno z původního dne 06.06.2002. Citováno 2020-11-10.
- ^ „Release t20140407“. ThomasDickey / byacc-momentky. GitHub. Citováno 2020-05-18.
externí odkazy
Tento Unix související článek je a pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |