Yacc és un programa informàtic per a generar analitzadors sintàctics. Les sigles del nom signifiquen Yet Another Compiler-Compiler, és a dir, "Encara un altre generador de compiladors". Genera un analitzador sintàctic (la part d'un compilador que comprova que l'estructura del codi font s'ajusta a l'especificació sintàctica del llenguatge) basat en una gramàtica analítica escrita en una notació similar a la BNF. Yacc genera el codi per a l'analitzador sintàctic en el Llenguatge de programació C.

Infotaula de programariYacc
Desenvolupador(s)Stephen C. Johnson modifica
Versió inicial1970 modifica
Escrit enC modifica
Tipuscompiler-compiler (en) Tradueix, utilitat UNIX i programari lliure modifica
LlicènciaLucent Public License (en) Tradueix modifica
EpònimYet another (en) Tradueix modifica
Més informació
Stack ExchangeEtiqueta modifica

Berkeley Yacc (en) Tradueix modifica

Va ser desenvolupat per Stephen C. Johnson en AT&T per al sistema operatiu Unix. Després es van escriure programes compatibles, per exemple Berkeley Yacc, GNU bison, MKS yacc i Abraxas yacc (una versió actualitzada de la versió original d'AT&T que també és programari lliure com a part del projecte d'OpenSolaris de Sun). Cadascun ofereix millores lleus i característiques addicionals sobre el Yacc original, però el concepte ha seguit sent igual. Yacc també s'ha reescrit per a altres llenguatges, incloent Ratfor, EFL, ML, Ada, Java, i Limbo.

Ja que l'analitzador sintàctic generat per Yacc requereix un analitzador lèxic, s'utilitza sovint conjuntament amb un generador d'analitzador lèxic, en la majoria dels casos lex o Flex, alternativa del programari lliure. L'estàndard de IEEE POSIX P1003.2 defineix la funcionalitat i els requisits a Lex i Yacc.

La versió Yacc d'AT&T es va convertir en programari lliure; el codi font està disponible amb les distribucions estàndards del Plan 9 i d'OpenSolaris.

BibliografiaModifica

  • Stephen C. Johnson. YACC: Yet another compiler-compiler. Unix Programmer's Manual Vol 2b, 1979.

Enllaços externsModifica