Vés al contingut

Yacc

De la Viquipèdia, l'enciclopèdia lliure
Yacc

TipusLALR parser generator (en) Tradueix Modifica el valor a Wikidata
Versió inicial1970 Modifica el valor a Wikidata
Versió estable
valor desconegut Modifica el valor a Wikidata
Llicènciavalor desconegut Modifica el valor a Wikidata
Epònimyet another (en) Tradueix Modifica el valor a Wikidata
Característiques tècniques
Escrit enC Modifica el valor a Wikidata
Equip
Desenvolupador(s)Stephen C. Johnson Modifica el valor a Wikidata
Més informació
Stack ExchangeEtiqueta Modifica el valor a Wikidata

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.

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.

Bibliografia

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

Enllaços externs

[modifica]
  • Essence, un generador d'analitzadors LR(1) per a Scheme (anglès)
  • ML-Yacc, una versió de yacc per al llenguatge Standard ML (anglès)
  • CL-Yacc, un generador d'analitzadors LALR(1) per a Common Lisp (anglès)