Yacc
De Wikipedia, la enciclopedia libre
Yacc es un programa para generar analizadores sintácticos. Las siglas del nombre significan Yet Another Compiler-Compiler, es decir, "Otro generador de compiladores más". Genera un analizador sintáctico (la parte de un compilador que intenta darle sentido a la entrada) basado en una gramática analítica escrita en una notación similiar a la BNF. Yacc genera el código para el analizador sintáctico en el Lenguaje de programación C.
Fue desarrollado por Stephen C. Johnson en AT&T para el sistema operativo de Unix. Después se escribieron programas compatibles, por ejemplo Berkeley Yacc, GNU bison, MKS yacc y Abraxas yacc (una versión actualizada de la versión original de AT&T que también es software libre como parte del proyecto de OpenSolaris de Sun). Cada una ofrece mejoras leves y características adicionales sobre el Yacc original, pero el concepto ha seguido siendo igual. Yacc también se ha reescrito para otros lenguajes, incluyendo Ratfor, EFL, ML, Ada, Java, y Limbo.
Puesto que el analizador sintáctico generado por Yacc requiere un analizador léxico, se utiliza a menudo conjuntamente con un generador de analizador léxico, en la mayoría de los casos lex o Flex alternativa del software libre. El estándar de IEEE POSIX P1003.2 define la funcionalidad y los requisitos a Lex y Yacc.
La versión Yacc de AT&T se convirtió en software libre; el código fuente está disponible con las distribuciones estándares del Plan 9 y de OpenSolaris.
[editar] Véase también
- LALR parser: The underlying parsing algorithm in Yacc.
- GNU bison: Generador de analizadores sintácticos compatible con Yacc.
[editar] Referencia
- Stephen C. Johnson. YACC: Yet another compiler-compiler. Unix Programmer's Manual Vol 2b, 1979.
[editar] Enlaces externos
- Source code to AT&T yacc as used in OpenSolaris
- Berkeley Yacc: yacc variant written to avoid dependencies on any particular C compiler.
- Essence, an LR(1) parser generator for Scheme
- ML-Yacc a yacc versión for the Standard ML language.
- CL-Yacc, a LALR(1)parser generator for Common Lisp.
- Yecc a yacc versión for Erlang.
- Happy a yacc-like parser generator for Haskell.
- A Compact Guide To lex & yacc

