Saltar al contenido

¿Cuál es la diferencia entre Flex/Lex y Yacc/Bison?

Comprende el código correctamente previamente a adaptarlo a tu proyecto si tdeseas aportar algo puedes decirlo en los comentarios.

Solución:

Hay algunas diferencias entre Lex y Flex, pero tienes que estar abusando de Lex para tener problemas con Flex. (Tengo un programa que abusa de Lex y, por lo tanto, no funciona con Flex). Esto es principalmente en el área de anticipación de entrada; en Lex, puede proporcionar su propio código de entrada y modificar el flujo de caracteres; Flex no te dejará hacer eso.

Yacc y Bison son bastante compatibles, aunque Bison tiene algunos trucos adicionales que puede hacer.

Probablemente no pueda encontrar copias legítimas de (las versiones originales de AT&T de) Lex y Yacc para instalar en Ubuntu. No necesariamente diría que es imposible, pero no estoy al tanto de eso. Flex y Bison están fácilmente disponibles y son equivalentes para la mayoría de los propósitos. También puede encontrar varios programas alternativos y aproximadamente equivalentes del mundo BSD.

Lex y Yacc son mantenidos por los licenciatarios de Unix SVRx: empresas como IBM (AIX), HP (HP-UX) y Sun (Solaris) tienen versiones modificadas de Lex y Yacc a su disposición. MKS también proporciona MKS Lex y MKS Yacc; sin embargo, el Yacc al menos tiene algunas extensiones no estándar.

Flex y Bison son gratis. (AT&T) Lex y Yacc no lo son.

Bison es la implementación/extensión GNU de Yacc, Flex es el sucesor de Lex. En cualquier caso, está bien (y se recomienda) usar bison / flex.

En la mayoría (¿todos?) de los sistemas Linux, “Lex” es en realidad un enlace simbólico a flex. Básicamente, es solo un nombre diferente a la versión gratuita.

Sección de Reseñas y Valoraciones

Al final de todo puedes encontrar las interpretaciones de otros creadores, tú aún tienes el poder dejar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *