Consideram que, antes de escrever um compilador, é preciso entender arquitetura de computadores e saber o que o compilador precisa gerar para produzir código de máquina eficiente. Escolas e universidades vêm dando cada vez menos importância à arquitetura de computadores e à programação de sistemas, mas esse conhecimento é importante para conseguir os melhores empregos do setor.
Um usuário mencionou um curso específico que o ajudou a passar em entrevistas para equipes de engenharia de compiladores nas empresas MANGA (Meta, Apple, Nvidia, Google, Amazon). O currículo de sistemas de computação de baixo nível da Universidade de Waterloo já era excelente, e ele já contribuía para projetos de compiladores open source, mas esse curso o ajudou a responder as perguntas mais difíceis durante as entrevistas.
Há a sensação de que faltam materiais acadêmicos aprofundados sobre otimização avançada de compiladores. Muitos cursos são introdutórios e, para aprender técnicas realmente interessantes, é preciso mergulhar fundo no código-fonte de compiladores open source populares.
A área de compiladores não evoluiu muito ao longo de cerca de 30 anos. Houve aulas na Universidade de Perugia entre 2004 e 2006, e o material usado na época já tinha 15, 20 ou 25 anos. Parece que houve mudanças mais recentemente.
Há satisfação por existir um curso para aprender tópicos avançados no próprio ritmo. Havia o desejo de seguir carreira como engenheiro de compiladores, mas na região onde mora não há muitas oportunidades de estudo e trabalho. O mercado de trabalho nos EUA é muito competitivo, e não está claro como entrar nele. A única experiência foi uma disciplina cursada durante a graduação.
Também inclui uma "teoria unificada de coleta de lixo", para que os alunos possam ter uma compreensão correta de contagem de referências (RC) e coleta de lixo por rastreamento (GC).
É basicamente o mesmo conteúdo abordado em um curso geral de construção de compiladores feito há 20 anos. Alguns artigos novos foram linkados e valem a pena ser vistos. Depois de 18 anos sem olhar código-fonte de compiladores, há a sensação de estar defasado em profiling e otimização baseada em caminhos. Além disso, ao ver ML, surge a suposição de que existam técnicas de SIMD mais avançadas.
CS 6120 é um curso de doutorado sobre implementação de linguagens de programação ministrado por Adrian Sampson, da Universidade Cornell. Há curiosidade sobre o quão avançado esse curso é.
Alguém compartilhou que fez esse curso online durante um verão alguns anos atrás e aprendeu muito. Enviar um PR para um pequeno problema no Bril IR e corrigi-lo junto com o professor foi algo muito interessante.
Há curiosidade sobre a existência de algum curso prévio a este.
1 comentários
Comentários do Hacker News