He oído que los "escritores de compiladores reales" hacen su propio analizador hecho a mano en lugar de usar generadores de analizadores sintácticos. También he escuchado que los generadores de analizadores no lo cortan para los idiomas del mundo real. Supuestamente, hay muchos casos especiales que son difíciles de implementar usando un generador de analizadores. Tengo mis dudas sobre esto:¿Los compiladores de producción usan generadores de analizadores?
- En teoría, un generador de analizadores GLR debe ser capaz de manejar la mayoría de los diseños de lenguaje de programación (excepto tal vez en C++ ...)
- Sé de al menos una lengua de producción que utiliza una generador de analizador sintáctico: Ruby [1].
- Cuando tomé mi clase de compiladores en la escuela, utilizamos un generador de analizadores.
Así que mi pregunta: ¿Es razonable escribir un compilador de producción usando un generador de analizador sintáctico, o está usando un generador de analizador considerado como una decisión de diseño deficiente por la comunidad de compiladores?
[1] https://github.com/ruby/ruby/blob/trunk/parse.y
programadores reales utilizan tablas de pan. – Woot4Moo
Pensé que usaban mariposas http://xkcd.com/378/ –
@Fichman touche mi amigo – Woot4Moo