He estado programando desde 1999 para el trabajo y la diversión. Quiero aprender cosas nuevas, y últimamente me he centrado en el análisis, ya que una gran parte de mi trabajo es leer, integrar y analizar datos. También tengo una gran cantidad de tareas repetitivas que creo que podría expresar en lenguajes específicos de dominio muy simples si la sobrecarga era lo suficientemente baja. Tengo algunas preguntas sobre el tema.Aprender más acerca de Parsing
- La mayor parte de mi código de análisis actual no define una gramática formal. Por lo general, hackeo algo en mi idioma de elección porque es fácil, sé cómo hacerlo y puedo escribir ese código muy rápido. También es fácil para otras personas con las que trabajo mantener. ¿Cuáles son las ventajas y desventajas de definir una gramática y generar un analizador real (como se haría con ANTLR o YACC) para analizar cosas en comparación con los hacks que la mayoría de los programadores utilizan para escribir analizadores?
- ¿Cuáles son las mejores herramientas de generación de analizador para escribir analizadores gramaticales en C++, Perl y Ruby? He observado ANTLR y no he encontrado mucho sobre el uso de ANTLRv3 con un objetivo de C++, pero por lo demás eso parece interesante. ¿Cuáles son las otras herramientas que son similares a ANTLR sobre las que debería leer?
- ¿Cuáles son los libros y artículos canónicos que alguien está interesado en aprender más sobre el análisis? Desafortunadamente, un curso de compiladores no formaba parte de mi educación, por lo que el material básico es muy bienvenido. He oído grandes cosas sobre el Dragon Book, pero ¿qué más hay por ahí?
Es curioso, en realidad iba a recomendar exactamente lo mismo, pero no podía recordar cómo se llamaba. +1 –