Piensan que antes de escribir compiladores hay que entender la arquitectura de computadoras y saber qué debe generar un compilador para producir código máquina eficiente. En escuelas y universidades cada vez se le da menos importancia a la arquitectura de computadoras y a la programación de sistemas, pero este conocimiento es importante para conseguir los mejores trabajos en la industria.
Un usuario mencionó un curso específico que le ayudó a pasar entrevistas para equipos de ingeniería de compiladores en empresas MANGA (Meta, Apple, Nvidia, Google, Amazon). El currículo de sistemas de cómputo de bajo nivel de la Universidad de Waterloo ya era excelente, y además estaba contribuyendo a proyectos de compiladores de código abierto, pero este curso le ayudó a responder las preguntas más difíciles durante las entrevistas.
Sienten que faltan materiales académicos profundos sobre optimización avanzada de compiladores. Muchos cursos son de nivel introductorio, y para aprender técnicas realmente interesantes hay que meterse a fondo en el código fuente de compiladores de código abierto populares.
El campo de los compiladores no ha avanzado mucho en unos 30 años. Dieron clases en la Universidad de Perugia entre 2004 y 2006, y el material que usaban entonces ya tenía entre 15, 20 o 25 años. Parece que últimamente sí ha habido algunos cambios.
Les da gusto que exista un curso para aprender temas avanzados a su propio ritmo. Querían una carrera como ingeniero de compiladores, pero en donde viven no hay muchas oportunidades de formación ni de trabajo. El mercado laboral en EE. UU. es muy competitivo y no saben cómo entrar. La única experiencia que tienen es un curso que llevaron en la licenciatura.
También incluye la "teoría unificada de recolección de basura", para que los estudiantes puedan tener una comprensión correcta del conteo de referencias (RC) y la recolección de basura por rastreo (GC).
Es básicamente lo mismo que se cubría en un curso general de construcción de compiladores al que asistieron hace 20 años. Hay algunos papers nuevos enlazados que vale la pena revisar. Como no han visto código fuente de compiladores en 18 años, sienten que se quedaron atrás en profiling y optimización basada en trayectorias. También suponen que, al ver ML, debe haber técnicas SIMD más avanzadas.
CS 6120 es un curso de doctorado sobre implementación de lenguajes de programación impartido por Adrian Sampson en la Universidad de Cornell. Se preguntan si este curso es muy avanzado.
Tomaron este curso en línea durante un verano hace algunos años y aprendieron mucho. Comparten que fue muy interesante enviar un PR sobre un pequeño problema en Bril IR y corregirlo junto con el profesor.
1 comentarios
Comentarios en Hacker News