Na sexta-feira, dia 20, na sala 2077 do Instituto de Ciências Exatas (ICEx), como parte da série de seminários avançados da pós-graduação promovida pelo Programa de Pós-Graduação em Ciência da Computação da UFMG, será realizada uma palestra com o professor J. Nelson Amaral, da University of Alberta, no Canadá. O tema da palestra será “Novos Desafios para a Disciplina de Design e Implementação de Compiladores”. O evento é aberto ao público e não requer inscrição prévia. Leia abaixo o resumo da palestra e saiba mais sobre o professor Amaral:
Título: Novos Desafios para a Disciplina de Design e Implementação de Compiladores
O projeto, a implementação e a otimização de compiladores evoluíram para abranger diversas técnicas de interesse geral para a disciplina de ciência da computação e a prática de programas de computação. A construção de compiladores utiliza gramaticais para especificar uma linguagem e criar ferramentas de linguagem, utiliza geradores automáticos de programas para análise sintática, emprega representações intermediárias multinível em camadas, abstrai o controle e o fluxo de dados em uma representação gráfica, requer a solução de múltiplos problemas complexos de otimização, depende de um sólido conhecimento da arquitetura do processador, da hierarquia da memória e dos princípios de localidade, e se beneficia de um profundo conhecimento de algoritmos e recursos de linguagens de programação.
A recente proliferação de linguagens de programação e frameworks específicos para aplicações, juntamente com o uso de aceleradores de alta eficiência, gerou novos desafios e oportunidades para o desenvolvimento de compiladores. Em muitos domínios, os desenvolvedores de compiladores agora têm a tarefa de criar código eficiente para um pequeno conjunto de aplicações críticas. Em alguns casos, valores que eram símbolos em compiladores tradicionais agora são constantes — por exemplo, limites de loop, parâmetros de modelo e formas de tensores. Da mesma forma, a geração de código frequentemente precisa ter como alvo aceleradores de hardware com unidades de aceleração restritas de tamanhos fixos. Para algumas tarefas, a construção de compiladores se assemelha mais à construção de bibliotecas especializadas. Essas mudanças no cenário da compilação exigem habilidades e técnicas diferentes dos desenvolvedores de compiladores em comparação à compilação tradicional, de linguagens de uso geral para processadores de uso geral. Muitos domínios exigem essas especializações, incluindo aprendizado de máquina, pipelines gráficos de ray tracing, núcleos tensores e computação quântica. Também há oportunidades para integrar ferramentas de aprendizado automatizado e busca avançada na geração de código. No entanto, a metodologia de teste tradicional também precisa se adaptar ao uso dessas ferramentas. Esta palestra argumentará que o treinamento de desenvolvedores de compiladores e a prática de desenvolvimento de compiladores devem se adaptar a essas mudanças.
J. Nelson Amaral, professor de Ciência da Computação na Universidade de Alberta, com doutorado pela Universidade do Texas em Austin, publicou sobre otimização de compiladores e computação de alto desempenho. Seus serviços à comunidade científica incluem a presidência geral da 23ª Conferência Internacional sobre Arquiteturas Paralelas e Técnicas de Compilação em 2014, da Conferência Internacional sobre Engenharia de Desempenho em 2020 e da Conferência Internacional sobre Processamento Paralelo em 2020. Entre seus prêmios, estão o de Engenheiro Distinto da ACM, IBM Faculty Fellow, IBM Faculty Awards, IBM CAS “Equipe do Ano”, Faculty of Science Excellent Teaching Award, o University of Alberta Graduate-Student Association Award for Excellence in Graduate Student Supervision, o University of Alberta Award for Outstanding Mentorship in Undergraduate Research & Creative Activities, o University of Alberta Remote Teaching Award 2020 COVID-19 e prêmios de destaque e melhor artigo em importantes conferências.