Yacc
De Wikipedia, la enciclopedia libre
Yacc es una pieza de software para computadora que sirve como el generador del analizador sintáctico estándar en los sistemas Unix. Las siglas del nombre significan "Yet Another Compiler Compiler". 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 la notación de BNF. Yacc genera el código para el analizador sintáctico en el Lenguaje de programación C.
Yacc 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 otras 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 léxico del analizador, 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: The GNU version of 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
- Tutorial de Lex & Yacc en español.