Yacc

De Viquipèdia
Dreceres ràpides: navegació, cerca

Yacc és un programa informàtic per a generar analitzadors sintàctics. Les sigles del nom signifiquen Yet Another Compiler-Compiler, és a dir, "Altre generador de compiladors més". 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.

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 Pla 9 i d'OpenSolaris.

Bibliografia[modifica | modifica el codi]

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

Enllaços externs[modifica | modifica el codi]