¿La irrelevancia del diseño de compiladores?

Siempre encontré interesante el tema de la lingüística y su uso cotidiano en los idiomas, lo encontré aún más llamativo cuando vi que estaba estrechamente ligado a algunas temas de las ciencias computacionales, tal es el caso del diseño de compiladores. Si bien algunas herramientas del diseño de compiladores han sido útiles para nuevas implementaciones en procesamiento de lenguajes naturales, en la vida estudiantil sigue siendo un tema de respeto y algunas complejidades. 

Queda claro que dependiendo del desarrollo que se haya tenido como estudiante se le ve la complejidad a este tema, mientras algunos lo toman como un tópico intrincado hay otros que lo ven como una opción de estudio debido al interés y las aptitudes, sin embargo el uso en proyectos o en la vida profesional se vuelve poco probable de usar. Los principales motivos que puedo encontrar son los siguientes: 

  1. Hoy en día hay una gran diversidad de lenguajes, herramientas y tecnologías que salen día con día para hacer más eficiente el desarrollo de software, abarcando una gran cantidad de temas en donde se pudiera utilizar, por lo tanto uno como egresado o como estudiante toma a conveniencia el uso de algunas de estas herramientas para evitar consumir tiempo en cuestiones profundas como el diseño de un compilador. 
  2. El otro motivo que encuentro importante es en el vida profesional. Es posible que si entramos en un proyecto sea algo complicado que entremos en una fase de diseño, más si nuestra experiencia es limitada. En la mayoría de esos casos es preferible consultar expertos que ayudan en este desarrollo o utilizar herramientas ya anteriormente construidas. No obstante, considero que sí se podría entrar en un fase de diseño para el desarrollo de un lenguajes de dominio especifico, los cuales, en mi criterio, son ampliamente utilizados debido a la simpleza que genera en usuarios que no están directamente relacionados en el desarrollo de software o las ciencias computacionales. 

Desde mi perspectiva, quizá nunca lleguemos a diseñar enteramente un compilador o involucrarnos parcialmente en esta fase, pero si se puede hacer uso de algunas técnicas en el diseño de lenguajes de dominio específico o algún otro desarrollo. Asimismo, centrarse específicamente en el diseño de compiladores podría resultar engorroso para algunas generaciones puesto que es difícil entrar en un proyecto que este en este proceso o se enfoque directamente al diseño del mismo. Empero, las técnicas que se usan pueden ser ampliamente utilizadas para otros propósitos, tal es el caso de transpiladores, lenguajes de dominio específico, procesamiento de lenguaje natural, entre otros.

Como estudiante más allá de sentirme intrigado sobre las implementaciones en proyecto, me siento atraído por las técnicas que se utilizan, ya que pueden ser de gran ayuda para futuros proyectos, además de darme otro punto vista sobre como se puede resolver un problema. 

Artículos consultados

Debray, S. (s.f.). Making Compiler Design Relevant for Students who will (Most Likely) Never Design a Compiler. Recuperado Agosto 24, 2020, de http://34.212.143.74/s202013/tc3048/making_compiler_design_relevant_for_students.pdf

Comentarios

Entradas populares