Soy estudiante de tercer año de la carrera de Ingeniería de Software. A partir de este año, mi universidad ha introducido un nuevo curso llamado 'Construcciones de compiladores', que le enseña los conceptos básicos de la teoría de construir un compilador.
¿Cuál sería la ventaja del mundo real para un ingeniero de software de aprender sobre la construcción de compiladores?
Respuestas:
Hay un lado práctico para aprender la construcción del compilador. Ha habido varias ocasiones en las que he necesitado crear analizadores para implementar algún lenguaje de comando específico de la aplicación. Me permitió crear interfaces flexibles y programables para la aplicación.
También le da una mejor idea de por qué algunos idiomas están diseñados de la manera en que están, y por qué ningún idioma es perfecto.
Es un curso difícil, uno de los más difíciles en el plan de estudios. Cometí el error de tomarlo durante una sesión de verano; nunca tome un curso de compiladores en una sesión de verano, su cerebro explotará.
fuente
Oh es una buena Tómalo, no te arrepentirás.
Obtiene información sobre la magia de los lenguajes de programación, sus características comparativas, la transformación del código de alto nivel en su forma ejecutable. Comprenderá mejor muchas características del lenguaje, tendrá una visión más amplia de lo que es posible y cómo se hacen esas cosas. Lo verás todo con otros ojos.
Es aconsejable pasar tiempo en la universidad para aprender cosas fundamentales de CS. Lenguajes de programación concretos, herramientas y bibliotecas, todos van y vienen, pero la base permanece.
Además, si sobrevive al curso (siempre que sea grave), puede felicitarse por tener el cerebro adecuado para la programación. Realice algún proyecto práctico con esta teoría, menciónelo en su currículum y despertará mucho interés con buenos empleadores.
fuente
¡Seguro!
Puede que no sea un tema que usaría diariamente como una clase de bases de datos, por ejemplo, comprender los compiladores le dará una buena base.
Un ejemplo similar sería una clase de sistemas operativos. Puede que sea un programador y no piense en cómo funciona un sistema operativo todos los días, pero tener la base en él lo ayudará a largo plazo.
fuente
¡Si! El curso le dará una comprensión mucho más profunda sobre el análisis del lenguaje de programación, los tipos de datos y las funciones y cómo traducirlo al código de máquina para CPU específicas: s.
Esto, por sí solo, puede no ser de mucho uso diario práctico, pero le dará la confianza de que realmente sabe cómo funcionan las cosas . Esto es muy útil (hablando con experiencia aquí) cuando tienes que hacer una optimización de bajo nivel y encontrar esos errores realmente desagradables, lo que tiene a todos los demás perplejos.
fuente
Hay muchos rumores sobre los Idiomas específicos de dominio hoy en día. Y realmente valen la pena, su verdadero potencial aún no se ha explorado . Por lo tanto, las habilidades de construcción de los compiladores se volverán no solo importantes sino esenciales en el futuro. Paso aproximadamente el 60% de mi tiempo de desarrollo implementando compiladores eDSL, incluso si el problema actual no está directamente relacionado con los compiladores.
fuente
Vale la pena tomar un curso para comprender cómo se construyen las herramientas que utilizará durante toda una carrera de programación (por ejemplo, compiladores, intérpretes, analizadores) y cuáles son sus limitaciones.
También vale la pena hacerlo en un contexto académico, ya que expone los fundamentos interesantes y no las muchas complejidades del mundo real, que es complicado y está empantanado al tratar con lenguajes y arquitecturas heredadas, es decir, mucha complejidad. También es más probable que trabajes en todos los aspectos de un compilador en la construcción de uno completo para un curso, que en trabajar en uno en la industria.
fuente